Streaming I/O:
PLCIO can now communicate directly with Ethernet I/O Bus Terminals using the EtherNet/IP protocol in a new mode called Streaming I/O. In Streaming I/O, inputs are constantly received from the remote device using Multicast Networking, and outputs are constantly transmitted--without acknowledgments or replies. Each output packet from PLCIO refreshes the device's entire set of outputs, providing for a stateless communications protocol.
Initial support is provided for two EtherNet/IP-based Bus Terminals:
* Beckhoff BK9105
* Phoenix Contact FL IL 24 BK ETH/IP-PAC
Use the new "cipio" module to communicate with I/O Bus Terminals.
Unsolicited Polling:
Two new API functions are added in this release: plc_fd_set() and plc_fd_isset(), which mirror the equivalent UNIX functions FD_SET() and FD_ISSET(). These functions supply the PLCIO application with the internal file descriptors used in PLCIO modules to listen for requests from the PLC. This allows the programmer to use a single select() call to poll for PLC-specific events, right alongside application-specific events.
Other Features:
- The "cipab" module is now split into two: "cipab", which handles PLC-5 or SLC 5/00 communications directly over EtherNet/IP, and "cipdh", which handles SLC 5/00 communications via Data Highway Plus over EtherNet/IP.
- Unified the CIP-style modules under a common CIP communications library, adding the following new features:
- Connected Messaging option for extra reliability.
- Proper EtherNet/IP Route Path specification using the Path=xxx keyword.
- Added new global variable 'j_plcio_open_timeout', which when set to a nonzero value, overrides the timeout for subsequent plc_open() calls (in milliseconds).
- Added 'j_sequence' to the PLCSLAVE structure to report the sequence number that is received with a Streaming I/O packet.
- Fixes and features for the "cip" module:
- Added support for tag sizes greater than 64KB. - Added support for tag, program, and structure names up to 40 characters. - Reading aliases to tags now return the correct data in all cases.
- The "showcip -s" command now displays the correct C structure for built-in ControlLogix types, such as MESSAGE, where issues existed with placement of padding and hidden structure members.
- PLCIO modules now have version information, which prevents users from accidentally loading modules using a newer or older libplc.so.