Hi,
For a scientific instrumentation project, we will be using a Simotion controller, S120, ET200S stations and maybe an S7-300. The idea is that all "lower level" control is performed by the Simotion (+PLC) and that all "higher level" logic is performed by a Linux distributed control system (with most software written in Python and C/C++). This would give us the best of the two worlds: we can benefit from reliable industrial hardware control, and we can reuse nearly all of our custom Linux software.
The one thing that we have our doubts about (probably because we have little experience with it), is the communication between the Linux DCS and the Simotion controller. We would like to send and receive about 20 integers (32 bit) at a rate of 10 Hz, and a larger amount of data (say 200 values of 32 bits) at a rate of at least 2 Hz.
For the Simotion, I think we have two options:
- OPC XML-DA
- custom TCP or UDP communication
Some questions:
- do you see any difficulties we may encounter (i.e. concerning the amount of data transferred at the defined rates)?
- for the TCP or UDP communication, how would that look like in reality? From what I have read on this forum, I'm assuming that we need to write our own protocol? Is it possible to turn the Simotion into a "server", which will return data (TCP or UDP) if we send a predefined command to it?
- Which of the two options would you prefer? A nice open source OPC XML-DA package for Python is available online, so I'm guessing that this would be the "cleanest" solution. However I'm guessing that OPC XML-DA is a lot slower than simple TCP or UDP communication, and maybe we need the speed?
Thank you very much for any advice,
Wim
For a scientific instrumentation project, we will be using a Simotion controller, S120, ET200S stations and maybe an S7-300. The idea is that all "lower level" control is performed by the Simotion (+PLC) and that all "higher level" logic is performed by a Linux distributed control system (with most software written in Python and C/C++). This would give us the best of the two worlds: we can benefit from reliable industrial hardware control, and we can reuse nearly all of our custom Linux software.
The one thing that we have our doubts about (probably because we have little experience with it), is the communication between the Linux DCS and the Simotion controller. We would like to send and receive about 20 integers (32 bit) at a rate of 10 Hz, and a larger amount of data (say 200 values of 32 bits) at a rate of at least 2 Hz.
For the Simotion, I think we have two options:
- OPC XML-DA
- custom TCP or UDP communication
Some questions:
- do you see any difficulties we may encounter (i.e. concerning the amount of data transferred at the defined rates)?
- for the TCP or UDP communication, how would that look like in reality? From what I have read on this forum, I'm assuming that we need to write our own protocol? Is it possible to turn the Simotion into a "server", which will return data (TCP or UDP) if we send a predefined command to it?
- Which of the two options would you prefer? A nice open source OPC XML-DA package for Python is available online, so I'm guessing that this would be the "cleanest" solution. However I'm guessing that OPC XML-DA is a lot slower than simple TCP or UDP communication, and maybe we need the speed?
Thank you very much for any advice,
Wim