Overview
The platform supports multiple communication protocols, including Modbus, OPC UA, and AB Rockwell ControlLogix. Each external device used with the software platform has its own communication rules defined by the manufacturer or protocol creator. These rules are used to create TX messages, sent from the software platform to the device, and RX messages, sent from the device to the software platform. Communication drivers must be configured for the software platform to communicate with external devices. On this page, you find an overview of important communication protocol information.
On this page:
Terminology
When dealing with communication protocols, you need to have some concepts clear to understand how they work. Check the definition of key concepts used throughout the documentation and inside the platform.
- Communication protocol: A set of rules that defines how external devices communicate with the software platform.
- Communication driver: A software designed for data transmission between the software platform and an external device following the device communication protocol.
- TX message: A message sent from the software platform to the external device.
- RX message: A message sent from the external device to the software platform.
- Byte: The basic unit of information used in TX and RX messages.
- External device: Any device or software used with the software platform, such as PLCs, sensors, and actuators, among others.
Communication Protocols
The platform supports multiple communication protocols. Each one has specific characteristics and benefits that may suit different applications. The below list describes some of the most used communication protocols, providing brief descriptions.
- Modbus: Modbus is a serial protocol that uses a master-slave architecture to communicate with external devices. It is request-response based, meaning the master device sends a request to the slave device and waits for a response before sending the subsequent request. Modbus supports various data types, including bits, bytes, integers, and floats. See Modbus Master Protocol and Modbus Slave Protocol for more details.
- OPC UA: OPC UA (Open Platform Communications Unified Architecture) is a platform-independent protocol based on web services. It uses a client-server model to communicate with external devices. It supports advanced security and encryption to protect transmitted information. See OPC UA Client Communication Driver for more details.
- AB Rockwell ControlLogix: The AB Rockwell ControlLogix 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 for more information.
- TSimulator: The TSimulator simulation driver is a communication protocol that allows users to generate random values in various data types for testing and validation purposes. It is designed to be used with the Device Module. It provides flexible options that allow users to create accurate and customized simulations for their systems. TSimulator supports multiple data types, including BOOL, INTEGER, FLOAT, STRING, RAMP, and SINE. For each data type, the user can configure the minimum and maximum value the simulation value can reach and other options, such as string length for the STRING type or ramp step for the RAMP type. Access the TSimulator Auto Generated Values page for additional information about the Simulator protocol configuration.
There are several other communication protocols available to connect to external devices using the software. Access the Communication Drivers page for additional information about the options available in the platform.
Detailed Functionality
Communication Messages
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:
- TX messages: Sent from the software to the device.
- RX messages: Sent from the device to the software.
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 the following types:
- Command
- Response
- Alarm
- Status
To understand the communication process better, let's analyze the Modbus TCP/IP, a real-world protocol. The Modbus TCP/IP is widely used in industrial automation and 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. The image below describes the structure of the protocol's message.
Where:
- Transaction ID (2 bytes): This unique number helps match requests and responses.
- Protocol ID (2 bytes): This is a constant value (0x0000) for Modbus.
- Length Field (2 bytes): Specifies the length of the remaining message.
- Unit ID (1 byte): The address of the remote device.
- Function Code (1 byte): Indicates the requested action, such as read or write.
- Data (variable): Contains the data to be read or written or error information.
Understanding a specific protocol's structure is essential to properly configuring communication between FactoryStudio and external devices. Each device manufacturer and communication protocol's creator defines communication message rules. These messages are called TX and RX. TX messages are the messages that go from FactoryStudio to the device, and the RX messages are the messages that go from the device to FactoryStudio. Each entity related to this “conversation” needs to know the communication protocol to understand what the TX and RX messages mean. Each byte within the message has a meaning. Let us consider the following fictitious communication protocol definition:
[STX] [CMD] [OPR] [STA] [CNT] <DATA> [ETX]
Where:
[STX]: Is the start Message (02 hexa).
[CMD]: Is the Command (04 hexa for a Read Action, 05 hexa for a Write Action or 06 hexa for Ack Answer).
[OPR]: Is the operand (31 hexa for an Integer or 32 hexa for a Float)
[STA]: Is the start Address Beginning address to read or write (two bytes)
[CNT]: Is the counter of the quantity of bytes in the data packet to read or write (one byte)
<DATA>: Is the data bytes related to the content read or write (each operand can have 2 or 4 bytes)
[ETX]: Is the end Message (0D hexa)
Based on the above fictitious communication protocol definition, the following statements are true:
- If the CNT is a single byte that indicates the number of bytes and the FF hex means 255, a communication block can have a maximum of 255 bytes. Thus, each TX / RX can transmit a maximum of 127 (integer) or 64 (floats), the operand limits per communication block. The CNT, or 255 in this case, is the MaximumBlockSize, defined as the maximum size of the communication block. As defined by the communication protocol, the user generally cannot customize the Maximum block size.
- Since a device's available operands can be much larger than the MaximumBlockSize, multiple TX/RX exchanges can be required to read or write on all the data.
- In a TX/RX, a read dataset is called a ReadGroup. Each ReadGroup contains information regarding FS Tags and communication operands. Consequently, the number of operands must be less than the maximum block size.
- ReadGroups and WriteGroups are created during the device module startup. Also, the Points settings are sorted, and the Groups are sequentially created by considering whether or not two different points can be in the same communication TX/RX. The information considered is Node, Address (Operand, Address, Name), MaximumBlockSize, Read/Write Command, and Polling Time.
Read Groups and Write Groups
Read Groups and Write Groups are essential for managing communication between the platform and external devices. They contain information about tags and communication operands and are responsible for 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 then managed by the communication driver.
Communication Optimization
Efficient communication is crucial for the performance of any industrial automation system. Several strategies can be implemented to optimize communication between FactoryStudio and external devices, such as:
- Grouping tags with similar polling rates and access types.
- Combining sequential addresses in a single request message reduces the number of messages.
- Adjusting the MaximumBlockSize parameter according to the device's capabilities.
- Using multiple communication channels to prioritize specific requests or handle different devices concurrently.
Read On Display Access Type
The Read On Display Access Type is a setting that 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 device 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 AccessType 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 information, see Access Types.
In this section: