Hi Cesar, I could send you the TIA Portal program, that I use for testing. (It’s generally just a DB Block with pre-defined constant values). With that the issues I am having should be reproducible. As I mentioned before. I spent so much time trying to track them down and with my s7-light I’m no longer having issues, so I’ll stick with that.
Just if you want to try to solve them in the s7 ... give me a ping and I’ll send it to you. Chris Von: Cesar Garcia <cesar.gar...@ceos.com.ve> Datum: Freitag, 23. Mai 2025 um 07:41 An: dev@plc4x.apache.org <dev@plc4x.apache.org> Betreff: Re: [DISCUSS] Should we switch the names of the S7 drivers? Hi, I tried checking the connection parameters with an S7-300 and found that the number of transactions requested for this device is 5. From my memory, I remembered that the maximum is 2. Compare this parameterization with other software: 1. *KepWare*: max-amq-caller=1 max-amq-callee=1, not configurable 2. *DirectLink*: max-amq-caller=1 (default) max-amq-callee=1 (default) maximum 2 3. *WinCC*: max-amq-caller=2 max-amq-callee=2 4. *Snap7*: max-amq-caller=1 max-amq-callee=1 I tested the S7 driver with max-amq-caller=1 and max-amq-callee=1, and the driver works without any issues, I tested the S7 driver with max-amq-caller=2 and max-amq-callee=2, and the driver works without any issues, but during subsequent startups, the following issue may appear, which points to this section of code, but don't crash. 1533 .handle(p -> { 1534 // Finish the request-transaction. 1535 transaction.endRequest(); 1536 1537 try { 1538 future.complete(p); 1539 } catch (Exception e) { 1540 logger.warn("Error sending 'write' message: '{}'", e.getMessage(), e); 1541 } My recommendation is: 1. that the driver's default value for max-amq-calle and max-amq-callee be 1, and that the user increase it according to their requirements. This can be done immediately. 2. Check the transaction manager to evaluate why it returns "p = null." It should take longer since it's part of the SPI. Tomorrow I can try it with S7-400 and S7-1200 to see what results we get. My modifications, which are very few, are at https://github.com/apache/plc4x/tree/fix/s7hmux If you try it and get the same results, I'll merge it. Mis modificaciones I'll let you know the results. El jue, 22 may 2025 a las 15:29, Christofer Dutz (<christofer.d...@c-ware.de>) escribió: > Another result is this: > > - run number 12 of 100 > using order: %DB4:70:DATE, %DB4:17:USINT, %DB4:396:WSTRING(10), > %DB4:140:STRING(10), %DB4:914:RAW_BYTE_ARRAY[11], %DB4:2:WORD, > %DB4:16:SINT, %DB4:58:TIME, %DB4:1:BYTE, %DB4:138:WCHAR, %DB4:908:CHAR[5], > %DB4:0.0:BOOL, %DB4:20:UINT, %DB4:72:TIME_OF_DAY, %DB4:50:LREAL, > %DB4:18:INT, %DB4:26:UDINT, %DB4:136:CHAR, %DB4:46:REAL, %DB4:22:DINT, > %DB4:4:DWORD, > - Read OK (48 ms) > 21:27:21.342 [plc4x-tm-thread-3] ERROR > o.a.p.j.s.c.DefaultNettyPlcConnection - unknown error, close the connection > java.lang.NullPointerException: Cannot invoke > "io.netty.channel.ChannelPromise.setUncancellable()" because > "entry.promise" is null > at > io.netty.channel.ChannelOutboundBuffer.addFlush(ChannelOutboundBuffer.java:160) > at > io.netty.channel.AbstractChannel$AbstractUnsafe.flush(AbstractChannel.java:892) > at > io.netty.channel.embedded.EmbeddedChannel$EmbeddedUnsafe$1.flush(EmbeddedChannel.java:1158) > at > io.netty.channel.DefaultChannelPipeline$HeadContext.flush(DefaultChannelPipeline.java:1319) > at > io.netty.channel.AbstractChannelHandlerContext.invokeFlush0(AbstractChannelHandlerContext.java:935) > at > io.netty.channel.AbstractChannelHandlerContext.invokeFlush(AbstractChannelHandlerContext.java:921) > at > io.netty.channel.AbstractChannelHandlerContext.flush(AbstractChannelHandlerContext.java:907) > at > io.netty.channel.ChannelDuplexHandler.flush(ChannelDuplexHandler.java:127) > at > io.netty.channel.AbstractChannelHandlerContext.invokeFlush0(AbstractChannelHandlerContext.java:937) > at > io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:957) > at > io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:982) > at > io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:950) > at > io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:1000) > at > io.netty.channel.DefaultChannelPipeline.writeAndFlush(DefaultChannelPipeline.java:974) > at > org.apache.plc4x.java.spi.Plc4xNettyWrapper$1.sendToWire(Plc4xNettyWrapper.java:100) > at > org.apache.plc4x.java.spi.internal.DefaultSendRequestContext.handle(DefaultSendRequestContext.java:108) > at > org.apache.plc4x.java.spi.internal.DefaultSendRequestContext.handle(DefaultSendRequestContext.java:1) > at > org.apache.plc4x.java.s7.readwrite.protocol.S7ProtocolLogic.lambda$42(S7ProtocolLogic.java:1533) > at > org.apache.plc4x.java.spi.transaction.RequestTransactionManager$TransactionOperation.run(RequestTransactionManager.java:225) > at > java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572) > at > java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) > at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) > at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) > at java.base/java.lang.Thread.run(Thread.java:1583) > 21:27:21.347 [plc4x-tm-thread-3] WARN i.n.c.AbstractChannelHandlerContext > - Failed to mark a promise as failure because it has succeeded already: > DefaultChannelPromise@1161d65(success) > java.lang.NullPointerException: Cannot invoke > "io.netty.util.concurrent.Promise.tryFailure(java.lang.Throwable)" because > "p" is null > at > io.netty.util.internal.PromiseNotificationUtil.tryFailure(PromiseNotificationUtil.java:64) > at > io.netty.channel.ChannelOutboundBuffer.safeFail(ChannelOutboundBuffer.java:754) > at > io.netty.channel.ChannelOutboundBuffer.remove0(ChannelOutboundBuffer.java:339) > at > io.netty.channel.ChannelOutboundBuffer.failFlushed(ChannelOutboundBuffer.java:691) > at > io.netty.channel.AbstractChannel$AbstractUnsafe.close(AbstractChannel.java:733) > at > io.netty.channel.AbstractChannel$AbstractUnsafe.close(AbstractChannel.java:619) > at > io.netty.channel.embedded.EmbeddedChannel$EmbeddedUnsafe$1.close(EmbeddedChannel.java:1103) > at > io.netty.channel.DefaultChannelPipeline$HeadContext.close(DefaultChannelPipeline.java:1299) > at > io.netty.channel.AbstractChannelHandlerContext.invokeClose(AbstractChannelHandlerContext.java:755) > at > io.netty.channel.AbstractChannelHandlerContext.close(AbstractChannelHandlerContext.java:733) > at > io.netty.channel.ChannelDuplexHandler.close(ChannelDuplexHandler.java:79) > at > org.apache.plc4x.java.spi.Plc4xNettyWrapper.close(Plc4xNettyWrapper.java:139) > at > io.netty.channel.AbstractChannelHandlerContext.invokeClose(AbstractChannelHandlerContext.java:757) > at > io.netty.channel.AbstractChannelHandlerContext.close(AbstractChannelHandlerContext.java:733) > at > io.netty.channel.DefaultChannelPipeline.close(DefaultChannelPipeline.java:943) > at > io.netty.channel.AbstractChannel.close(AbstractChannel.java:279) > at > io.netty.channel.embedded.EmbeddedChannel.close(EmbeddedChannel.java:608) > at > io.netty.channel.embedded.EmbeddedChannel.close(EmbeddedChannel.java:592) > at > org.apache.plc4x.java.s7.readwrite.protocol.S7ProtocolLogic.onDisconnect(S7ProtocolLogic.java:267) > at > org.apache.plc4x.java.spi.Plc4xNettyWrapper.userEventTriggered(Plc4xNettyWrapper.java:220) > at > io.netty.channel.AbstractChannelHandlerContext.invokeUserEventTriggered(AbstractChannelHandlerContext.java:398) > at > io.netty.channel.AbstractChannelHandlerContext.invokeUserEventTriggered(AbstractChannelHandlerContext.java:376) > at > io.netty.channel.AbstractChannelHandlerContext.fireUserEventTriggered(AbstractChannelHandlerContext.java:368) > at > io.netty.channel.ChannelInboundHandlerAdapter.userEventTriggered(ChannelInboundHandlerAdapter.java:117) > at > org.apache.plc4x.java.spi.connection.DefaultNettyPlcConnection$1$1.userEventTriggered(DefaultNettyPlcConnection.java:258) > at > io.netty.channel.AbstractChannelHandlerContext.invokeUserEventTriggered(AbstractChannelHandlerContext.java:398) > at > io.netty.channel.AbstractChannelHandlerContext.invokeUserEventTriggered(AbstractChannelHandlerContext.java:376) > at > io.netty.channel.AbstractChannelHandlerContext.fireUserEventTriggered(AbstractChannelHandlerContext.java:368) > at > io.netty.channel.ChannelInboundHandlerAdapter.userEventTriggered(ChannelInboundHandlerAdapter.java:117) > at > org.apache.plc4x.java.s7.readwrite.protocol.S7HMuxImpl.userEventTriggered(S7HMuxImpl.java:208) > at > io.netty.channel.AbstractChannelHandlerContext.invokeUserEventTriggered(AbstractChannelHandlerContext.java:398) > at > io.netty.channel.AbstractChannelHandlerContext.invokeUserEventTriggered(AbstractChannelHandlerContext.java:376) > at > io.netty.channel.AbstractChannelHandlerContext.fireUserEventTriggered(AbstractChannelHandlerContext.java:368) > at > io.netty.channel.DefaultChannelPipeline$HeadContext.userEventTriggered(DefaultChannelPipeline.java:1375) > at > io.netty.channel.AbstractChannelHandlerContext.invokeUserEventTriggered(AbstractChannelHandlerContext.java:396) > at > io.netty.channel.AbstractChannelHandlerContext.invokeUserEventTriggered(AbstractChannelHandlerContext.java:376) > at > io.netty.channel.DefaultChannelPipeline.fireUserEventTriggered(DefaultChannelPipeline.java:862) > at > org.apache.plc4x.java.s7.readwrite.protocol.S7HPlcConnection.close(S7HPlcConnection.java:245) > at > org.apache.plc4x.java.spi.connection.DefaultNettyPlcConnection$1$2.exceptionCaught(DefaultNettyPlcConnection.java:268) > at > io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:346) > at > io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:325) > at > io.netty.channel.AbstractChannelHandlerContext.fireExceptionCaught(AbstractChannelHandlerContext.java:317) > at > io.netty.channel.ChannelInboundHandlerAdapter.exceptionCaught(ChannelInboundHandlerAdapter.java:143) > at > org.apache.plc4x.java.s7.readwrite.protocol.S7HMuxImpl.exceptionCaught(S7HMuxImpl.java:156) > at > io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:346) > at > io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:325) > at > io.netty.channel.AbstractChannelHandlerContext.fireExceptionCaught(AbstractChannelHandlerContext.java:317) > at > io.netty.channel.DefaultChannelPipeline$HeadContext.exceptionCaught(DefaultChannelPipeline.java:1324) > at > io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:346) > at > io.netty.channel.AbstractChannelHandlerContext.invokeFlush0(AbstractChannelHandlerContext.java:944) > at > io.netty.channel.AbstractChannelHandlerContext.invokeFlush(AbstractChannelHandlerContext.java:921) > at > io.netty.channel.AbstractChannelHandlerContext.flush(AbstractChannelHandlerContext.java:907) > at > io.netty.channel.ChannelDuplexHandler.flush(ChannelDuplexHandler.java:127) > at > io.netty.channel.AbstractChannelHandlerContext.invokeFlush0(AbstractChannelHandlerContext.java:937) > at > io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:957) > at > io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:982) > at > io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:950) > at > io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:1000) > at > io.netty.channel.DefaultChannelPipeline.writeAndFlush(DefaultChannelPipeline.java:974) > at > org.apache.plc4x.java.spi.Plc4xNettyWrapper$1.sendToWire(Plc4xNettyWrapper.java:100) > at > org.apache.plc4x.java.spi.internal.DefaultSendRequestContext.handle(DefaultSendRequestContext.java:108) > at > org.apache.plc4x.java.spi.internal.DefaultSendRequestContext.handle(DefaultSendRequestContext.java:1) > at > org.apache.plc4x.java.s7.readwrite.protocol.S7ProtocolLogic.lambda$42(S7ProtocolLogic.java:1533) > at > org.apache.plc4x.java.spi.transaction.RequestTransactionManager$TransactionOperation.run(RequestTransactionManager.java:225) > at > java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572) > at > java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) > at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) > at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) > at java.base/java.lang.Thread.run(Thread.java:1583) > > Von: Christofer Dutz <christofer.d...@c-ware.de> > Datum: Donnerstag, 22. Mai 2025 um 21:25 > An: dev@plc4x.apache.org <dev@plc4x.apache.org> > Betreff: AW: [DISCUSS] Should we switch the names of the S7 drivers? > Also running the ManualS71200DriverTest with s7 instead of s7-light > results in the following after several rounds: > > - run number 88 of 100 > using order: %DB4:908:CHAR[5], %DB4:20:UINT, %DB4:2:WORD, > %DB4:22:DINT, %DB4:914:RAW_BYTE_ARRAY[11], %DB4:72:TIME_OF_DAY, > %DB4:4:DWORD, %DB4:26:UDINT, %DB4:140:STRING(10), %DB4:70:DATE, > %DB4:16:SINT, %DB4:17:USINT, %DB4:138:WCHAR, %DB4:0.0:BOOL, > %DB4:396:WSTRING, %DB4:136:CHAR, %DB4:50:LREAL, %DB4:58:TIME, %DB4:18:INT, > %DB4:1:BYTE, %DB4:396:WSTRING(10), %DB4:140:STRING, %DB4:46:REAL, > Exception in thread "main" org.opentest4j.AssertionFailedError > at > org.junit.jupiter.api.AssertionUtils.fail(AssertionUtils.java:46) > at org.junit.jupiter.api.Assertions.fail(Assertions.java:161) > at > org.apache.plc4x.test.manual.ManualTest.run(ManualTest.java:245) > at > org.apache.plc4x.java.s7.readwrite.ManualS71200DriverTest.main(ManualS71200DriverTest.java:114) > Caused by: java.util.concurrent.ExecutionException: > org.apache.plc4x.java.api.exceptions.PlcProtocolException: Error reading > at > java.base/java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:396) > at > java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2073) > at > org.apache.plc4x.test.manual.ManualTest.run(ManualTest.java:193) > ... 1 more > Caused by: org.apache.plc4x.java.api.exceptions.PlcProtocolException: > Error reading > at > org.apache.plc4x.java.s7.readwrite.protocol.S7ProtocolLogic.lambda$17(S7ProtocolLogic.java:332) > at > java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:863) > at > java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:841) > at > java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510) > at > java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2194) > at > org.apache.plc4x.java.s7.readwrite.protocol.S7ProtocolLogic.lambda$38(S7ProtocolLogic.java:1339) > at > java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:863) > at > java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:841) > at > java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510) > at > java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2194) > at > org.apache.plc4x.java.s7.readwrite.protocol.S7ProtocolLogic$TransactionErrorCallback.accept(S7ProtocolLogic.java:2348) > at > org.apache.plc4x.java.s7.readwrite.protocol.S7ProtocolLogic$TransactionErrorCallback.accept(S7ProtocolLogic.java:1) > at > org.apache.plc4x.java.spi.Plc4xNettyWrapper.lambda$8(Plc4xNettyWrapper.java:273) > at > org.apache.plc4x.java.spi.netty.NettyHashTimerTimeoutManager.lambda$0(NettyHashTimerTimeoutManager.java:55) > at > io.netty.util.HashedWheelTimer$HashedWheelTimeout.run(HashedWheelTimer.java:713) > at > io.netty.util.concurrent.ImmediateExecutor.execute(ImmediateExecutor.java:34) > at > io.netty.util.HashedWheelTimer$HashedWheelTimeout.expire(HashedWheelTimer.java:701) > at > io.netty.util.HashedWheelTimer$HashedWheelBucket.expireTimeouts(HashedWheelTimer.java:788) > at > io.netty.util.HashedWheelTimer$Worker.run(HashedWheelTimer.java:501) > at java.base/java.lang.Thread.run(Thread.java:1583) > Caused by: java.util.concurrent.TimeoutException > at > org.apache.plc4x.java.spi.netty.NettyHashTimerTimeoutManager.lambda$0(NettyHashTimerTimeoutManager.java:54) > ... 6 more > > Von: Christofer Dutz <christofer.d...@c-ware.de> > Datum: Donnerstag, 22. Mai 2025 um 20:50 > An: dev@plc4x.apache.org <dev@plc4x.apache.org> > Betreff: AW: [DISCUSS] Should we switch the names of the S7 drivers? > Hi Cesar, > > so I just changed my test connection string in > ManualS71200DriverWithBlockOptimizerTest from s7-light to s7, and it > constantly fails on the first request. > > Reading all items together in random order > - run number 0 of 100 > using order: %DB4:914:RAW_BYTE_ARRAY[11], %DB4:58:TIME, > %DB4:46:REAL, %DB4:17:USINT, %DB4:138:WCHAR, %DB4:70:DATE, %DB4:4:DWORD, > %DB4:140:STRING(200), %DB4:908:CHAR[5], %DB4:136:CHAR, %DB4:1:BYTE, > %DB4:0.0:BOOL, %DB4:16:SINT, %DB4:72:TIME_OF_DAY, %DB4:2:WORD, > %DB4:50:LREAL, %DB4:18:INT, %DB4:396:WSTRING(100), %DB4:26:UDINT, > %DB4:20:UINT, %DB4:22:DINT, > 20:48:24.259 [plc4x-app-thread-2] WARN > o.a.p.j.s.r.protocol.S7ProtocolLogic - Got an error response from the PLC. > This particular response code usually indicates that we sent a too large > packet or would be receiving a too large one. Please report this, as this > is most probably a bug. > Exception in thread "main" org.opentest4j.AssertionFailedError: Tag: > %DB4:914:RAW_BYTE_ARRAY[11] ==> expected: <OK> but was: <ACCESS_DENIED> > at > org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:151) > at > org.junit.jupiter.api.AssertionFailureBuilder.buildAndThrow(AssertionFailureBuilder.java:132) > at > org.junit.jupiter.api.AssertEquals.failNotEqual(AssertEquals.java:197) > at > org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:182) > at > org.junit.jupiter.api.Assertions.assertEquals(Assertions.java:1156) > at > org.apache.plc4x.test.manual.ManualTest.run(ManualTest.java:200) > at > org.apache.plc4x.java.s7.readwrite.ManualS71200DriverWithBlockOptimizerTest.main(ManualS71200DriverWithBlockOptimizerTest.java:114) > > So I guess I’ll not quite remove the light version just yet. > > Chris > > Von: Cesar Garcia <cesar.gar...@ceos.com.ve> > Datum: Donnerstag, 22. Mai 2025 um 19:21 > An: dev@plc4x.apache.org <dev@plc4x.apache.org> > Betreff: Re: [DISCUSS] Should we switch the names of the S7 drivers? > Hi Chris, > > You did an excellent job with the optimizer. We'll be testing it out. > > I'll keep you posted with any details. > > Thank you very much, > > El jue, 22 may 2025 a las 11:28, Christofer Dutz (< > christofer.d...@c-ware.de>) > escribió: > > > Hi Cesar, > > > > well I guess we’ll leave them both in for now and not do any renaming ... > > the main difference, I guess is also the different default optimizer. > > > > You can currently run the S7 with the new optimizer, but you have to > > explicitly tell it to do so, and the S7-Light will use the new optimizer > > and you can make it use the old one, via config option. > > We should probably let both run for a while and I’ll inspect if I am > > seeing improvements with the full version. Right now I am hesitant to > drop > > the s7-light as it was such a hastle to get things runnig smoothly. > > > > Chris > > > > > > Von: Cesar Garcia <cesar.gar...@ceos.com.ve> > > Datum: Donnerstag, 22. Mai 2025 um 16:57 > > An: dev@plc4x.apache.org <dev@plc4x.apache.org> > > Betreff: Re: [DISCUSS] Should we switch the names of the S7 drivers? > > Hi Chris, > > > > I've already tested the S7 versions and fixed a bug it was experiencing. > > > > I've compared both drivers (S7 and S7-light) and the failure rate is > > currently the same. > > Identifying the bug is quite difficult in both cases due to their > > architecture and the randomness of the occurrence. > > I can tell you that the bug is outside the S7Mux, so the problem isn't > with > > the driver's pub/sub capabilities. > > > > In my particular use case, a name change would affect computers that are > > currently running 24/7 at a high transfer rate, so I'm very attentive to > > the details. > > > > There are many hours of testing, and more to go, so I need to focus on > one > > problem, not two. > > > > Sorry, but -1, > > > > Best regards, > > > > El mié, 21 may 2025 a las 3:22, Christofer Dutz (< > > christofer.d...@c-ware.de>) > > escribió: > > > > > Hi all, > > > > > > as some of you might know, I recently introduced a „s7-light“ driver in > > > the S7 which is basically a stripped down version of our normal s7 > > driver. > > > I did that, as I found many issues in combination with the parts that > > were > > > intended for the pub/sub stuff for some of the S7 300 models. > > > This resolved all of my remaining issues and seems to have resolved all > > > problems people I was in direct contect with and just now also the ones > > > with the NiFi bug. > > > > > > So my question here is: Should re rename the „s7-light“ to „s7“ and > > rename > > > the „s7“ to something „s7-pubsub“ or alike? The reason is, that I think > > > most people will try the normal „s7“ as this seems to be the place to > go > > > instead of the „light“ version. This could cause many people to run > into > > > problems. With all S7 400, 1200, 1500 and Logo models, the s7-light > > > currently has all you need and all you can use. Also can you use it > with > > > the 300 models. Only if you want to use this pub/sub mechanism, that > only > > > works on S7-300 does it make a difference (feature-wise) to use the > „s7“. > > > > > > What do you think? > > > > > > Chris > > > > > > > > > > -- > > *CEOS Automatización, C.A.* > > *GALPON SERVICIO INDUSTRIALES Y NAVALES FA, C.A.,* > > *PISO 1, OFICINA 2, AV. RAUL LEONI, SECTOR GUAMACHITO,* > > > > *FRENTE A LA ASOCIACION DE GANADEROS,BARCELONA,EDO. ANZOATEGUI* > > *Ing. César García* > > > > *Cel: +58 414-760.98.95* > > > > *Hotline Técnica SIEMENS: 0800 1005080* > > > > *Email: support.aan.automat...@siemens.com > > <support.aan.automat...@siemens.com>* > > > > > -- > *CEOS Automatización, C.A.* > *GALPON SERVICIO INDUSTRIALES Y NAVALES FA, C.A.,* > *PISO 1, OFICINA 2, AV. RAUL LEONI, SECTOR GUAMACHITO,* > > *FRENTE A LA ASOCIACION DE GANADEROS,BARCELONA,EDO. ANZOATEGUI* > *Ing. César García* > > *Cel: +58 414-760.98.95* > > *Hotline Técnica SIEMENS: 0800 1005080* > > *Email: support.aan.automat...@siemens.com > <support.aan.automat...@siemens.com>* > -- *CEOS Automatización, C.A.* *GALPON SERVICIO INDUSTRIALES Y NAVALES FA, C.A.,* *PISO 1, OFICINA 2, AV. RAUL LEONI, SECTOR GUAMACHITO,* *FRENTE A LA ASOCIACION DE GANADEROS,BARCELONA,EDO. ANZOATEGUI* *Ing. César García* *Cel: +58 414-760.98.95* *Hotline Técnica SIEMENS: 0800 1005080* *Email: support.aan.automat...@siemens.com <support.aan.automat...@siemens.com>*