Hi,

The last weeks I did some cleanup on the ADS protocol implementation.
While it seems to work fine there is still one implementation where im not 
quite sure how to implement this properly with Netty: The ADS/AMS serial 
protocol implementation.
https://infosys.beckhoff.com/content/1033/tcadsamsserialspec/html/tcamssericalspec_sample.htm?id=60692407917020132
 
<https://infosys.beckhoff.com/content/1033/tcadsamsserialspec/html/tcamssericalspec_sample.htm?id=60692407917020132>
As you can see in the above protocol the communication is like this: 

Terminal --> PLC : Request of 2 bytre data
PLC --> Terminal : Acknowledge:
PLC sends data:
Terminal --> PLC  : Acknowledge:

So what we need to do is to throttle the outgoing traffic to a single message 
where each message needs to fulfill the above lifecycle. My first attempts 
implement this with a Thread blocking behavior failed as this blocks the worker 
thread in Netty which is a really bad idea. Christopher gave me the hint using 
a queue (like in the S7 package fragmentation) but this doesn’t seem to work 
the way I need it (Prepend messages for retry and ack etc). So for me this 
means digging some more into natty and have a look at similar protocol 
implementations.

If anyone has an idea or experience implementing a low level protocol bouncing 
(SEND-ACK) let me know. :)

Sebastian

Reply via email to