I created a request/response protocol but it is unfamiliar to the PLC programmer, who is using the terms cyclic, acyclic, and telegrams (which are all new to me!).
I'd like to learn what it is that a PLC programmer expects in terms of communication to/from devices, so that I can better accommodate him. Can anyone provide examples?
There's been good discussion of Modbus TCP, and I think that's potentially a good direction for you to go (if your customer is willing). Since I didn't see anyone actually define the terms you're unfamiliar with, I figured I'd include some background. Apologies if this is below your level, making some assumptions.
All PLC logic is based on the scan cycle, a big loop of code. The basic version is that each scan, it reads the inputs, executes all the code once, and then writes the outputs. Then it does it all over again. Each scan is typically between 1 and 50 milliseconds.
- Cyclic: Many PLCs control devices out in the field (motors, pushbuttons, indicator lights, etc). The data to/from those devices are sent at a defined cycle. Every X milliseconds (often 2/3/8ms) each device sends a packet of data to the controller, and the controller sends the data to the device.
- Acyclic: Sometimes there is extra data that is only sent occasionally, as needed. This could be sending a request to another system for new recipe parameters at the end of each part, or responding to a request from another system like an HMI (industrial GUI) to display.
- Telegram: This is a defined set of data used in communication. It is usually cyclic. The entire telegram (often 10 bytes or less) is transferred every time, even if certain parts of the data may not be useful this message. In the example of a drive controlling a motor, the PLC will send a command telegram (enable, run, speed setpoint, etc), and the drive will respond with a status telegram (enabled, running, actual speed, etc). Even if the drive isn't moving, it still sends back that the speed is 0, because it's in the defined telegram.