The software platform supports various protocols, such as Modbus, OPC UA, and AB Rockwell ControlLogix, to ensure compatibility with a wide range of industrial devices. In addition to the larger set of protocols provided, it is possible also to create new Protocol Drivers with the Driver Toolkit.
When creating new drivers, or doing advanced diagnostics in existing ones, it is important to have the deep understand on how a communication protocols for industrial devices works. This Section provides that background.
On this page:
Protocols define the rules and message formats that govern device communication. Each external device follows specific communication rules established by its manufacturer or protocol creator. These rules dictate the structure of TX messages (sent from the platform to the device) and RX messages (sent from the device to the platform). Users select the appropriate protocol for the device they want to connect to and configure the necessary communication drivers to enable communication.
The platform supports multiple communication protocols, each with specific characteristics and benefits suited to different applications. Here are descriptions of some commonly used protocols:
A serial protocol that uses a master-slave architecture to communicate with external devices. It operates on a request-response basis, where the master device sends a request to the slave device and waits for a response before sending the next request. Modbus supports various data types, including bits, bytes, integers, and floats. See Modbus Master Protocol and Modbus Slave Protocol for examples on the configuration and addresses for that protocol.
It is a platform-independent protocol based on web services. It uses a client-server model to communicate with external devices and supports advanced security and encryption to protect transmitted information. See OPC UA Client Communication Driver on how to configure the network addresses and Points addresses to that protocols.
This protocol is used to communicate with devices in the ControlLogix family from Rockwell Automation. It uses a master-slave architecture and supports various data types, including bits, bytes, integers, and floats. The ControlLogix protocol is widely used in the industry and is relatively easy to implement. See AB Rockwell ControlLogix and CompactLogix devices on how to configure the network addresses and Points addresses to that protocols.
There are several other communication protocols available to connect to external devices using the software. Each protocol has its own specific characteristics and benefits that may be more suitable for different applications, or reflect standards used by hardware vendors. |
The following organization is created when mapping address to the Tags in the Application.
Address Syntax
Different protocols will have distinct ways to identify its internal elements, but essentially in all protocols, there an Address, which will mapped, for read or write, to a variable in the Solution
Read Groups and Write Groups are crucial for managing communication between the platform and external devices. They contain information about tags and communication operands, organizing and optimizing the data exchange process. A Read Group reads data from devices, while a Write Group writes data to devices. These groups are dynamically created based on the tags' configuration, such as Access Type, Polling Rate, and addresses, and are managed by the communication driver.
Efficient communication is vital for the performance of any industrial automation system. Several strategies can optimize communication between the platform and external devices, including:
The Read On Display Access Type setting enables communication only when data is displayed on the screen. This can improve performance for data that doesn't require constant updates or historical storage. Read Groups and Write Groups are created during the Devices Module startup without considering the Access Type. When a screen opens, the platform checks if any points have the Read On Display setting and are linked to the tags of the open screen. Points with Read On Display Access Type that are not displayed on the screen are disabled, and the associated group is only turned off if all its points are disabled.
Understanding how the Read On Display Access Type works is essential for efficient communication, as it helps reduce unnecessary data exchange. To learn more, see Access Types.
Communication messages are the foundation of data exchange between the platform and external devices. They transmit information from one entity to another, following a specific communication protocol. There are two types of communication messages:
Both types contain a series of bytes, each with its specific meaning, following the rules established by the chosen communication protocol. Message types can include:
Each device manufacturer and communication protocol creator defines communication message rules. These messages are called TX and RX. TX messages go from the software platform to the device, and RX messages go from the device to the software platform. Each entity in this “conversation” needs to know the communication protocol to understand what the TX and RX messages mean. Each byte within the message has a specific meaning.
To better understand the communication process, let's analyze Modbus TCP/IP, a widely used protocol in industrial automation that allows data exchange between various devices through a TCP/IP network. This protocol uses a client-server model, where the client (the platform) sends requests to the server (the device) to read or write data.
Understanding the structure of a specific protocol is important for advanced scenarios, where performance optimization, or network level diagnostics is necessary
Consider the following fictitious communication protocol definition:
Based on this communication protocol definition, the fowling TX and RX lines are valid.
That means the TX is composed by:
02[STX]
05[CMD RD]
31 [Integer]
00 00 [Start Address : 0]
04[Quantity: 4 bytes]
0D [ETX]
The RX was composed by:
02 [STX]
06 [ACK ANSWER]
31 [Integer]
00 00 [Start Address : 0]
04 [Quantity: 4 bytes (two operands integer)]
00 00 [Operand 1 with data value 0]
00 00 [Operand 2 with data value 0]
0D [ETX]
In this section: