Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Overview

FactoryStudio is an industrial automation software that allows the creation of SCADA and HMI applications to monitor and control industrial processes in real-time. It is based on a client-server architecture and supports multiple communication protocols including Modbus, OPC UA, and AB Rockwell ControlLogix. Each external device used with FactoryStudio has its own set of communication rules defined by the manufacturer or protocol creator. These rules are used to create TX messages (sent from FactoryStudio to the device) and RX messages (sent from the device to FactoryStudio). Each byte within these messages has a specific meaning.

In order for FactoryStudio to communicate with external devices, communication drivers need to be configured. The software offers various types of drivers, each with their own characteristics and configuration requirements. In addition, FactoryStudio offers advanced visualization features such as real-time graphics, animations, and customizable screens. It supports various data types including text, numbers, images, and videos.


On this page:

Table of Contents
maxLevel3


Key Concepts

Communication protocol

A set of rules that defines how external devices communicate with FactoryStudio.

TX message

A message sent from FactoryStudio to the external device.

RX message

A message sent from the external device to FactoryStudio.

Byte

The basic unit of information used in TX and RX messages.

Communication driver

Software that enables communication between FactoryStudio and an external device.

External device

Any device or software used in conjunction with FactoryStudio, such as PLCs, sensors, actuators, among others.


Communication Protocols

FactoryStudio supports multiple communication protocols, including Modbus, OPC UA, and AB Rockwell ControlLogix. Each protocol has its own specific characteristics and benefits that may be more suitable for different applications.

Modbus

Characteristics: 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 next request. Modbus supports various data types, including bits, bytes, integers, and floats.

Benefits: Modbus is widely used in the industry and is relatively easy to implement. It supports a wide variety of devices, including PLCs, sensors, and actuators.

OPC UA

Characteristics: 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 and supports advanced security and encryption to protect transmitted information.
Benefits: OPC UA offers interoperability between different platforms and devices, allowing them to easily communicate with each other. It also offers enhanced security compared to other protocols.

AB Rockwell ControlLogix

Characteristics: 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.

There are several communication protocols available to connect to external devices using FactoryStudio software. Each protocol has its own specific characteristics and benefits that may be more suitable for different applications.

For more information related to a specific protocol, go to: Communication Drivers - v10 - Tatsoft LLC


Simulation Driver

The TSimulator simulation driver is a communication protocol that allows users to generate random values in a variety of data types for testing and validation purposes. It is designed to be used with the FactoryStudio Device Module and provides a set of 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 that the simulation value can reach, as well as other options such as string length for the STRING type or ramp step for the RAMP type.

For more information related to the Simulator protocol configuration, acess: TSimulator Auto Generated Values.


Detailed Functionality

In the detailed functionality, we will delve into the main features and functions of the device module in FactoryStudio. We will discuss communication messages, provide a protocol example, explain ReadGroups and WriteGroups, examine communication optimization, and elaborate on the ReadOnDisplay AccessType.

Communication Messages

Communication messages are the foundation of data exchange between FactoryStudio and external devices. They are used to transmit information from one entity to another, following a specific communication protocol. There are two types of communication messages: TX messages (sent from FactoryStudio to the device) and RX messages (sent from the device to FactoryStudio). Both types of messages contain a series of bytes, each with its specific meaning, following the rules established by the chosen communication protocol. Message types can include command, response, alarm, and status messages.

Protocol Example

To better understand the communication process, let's analyze a real-world protocol, Modbus TCP/IP. This protocol is widely used in industrial automation and allows the exchange of data between various devices through a TCP/IP network.

Modbus TCP/IP uses a client-server model, where the client (FactoryStudio) sends requests to the server (the device) to read or write data. The request and response messages contain the following elements:

  • Transaction Identifier (2 bytes): A unique number that helps match requests and responses.
  • Protocol Identifier (2 bytes): A constant value (0x0000) for Modbus.
  • Length Field (2 bytes): Specifies the length of the remaining message.
  • Unit Identifier (1 byte): The address of the remote device.
  • Function Code (1 byte): Indicates the requested action (read, write, etc.).
  • Data (variable): Contains the data to be read or written, or error information.

Understanding the structure of a specific protocol is essential to properly configure communication between FactoryStudio and external devices.


Protocol Example 2

Communication protocols exist so that there can be communication between two entities. In our case, we are talking about FactoryStudio and other external devices used in the field; mainly PLCs, but they can be other types of devices or software. 

Each device manufacturer and/or creator of a communication protocol defines the rules of communication messages. 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 a fictitious communication protocol definition, for example:


Protocol: [STX] [CMD] [OPR] [STA] [CNT] <DATA> [ETX]

Where:

  • [STX] Start Message : 02 hexa
  • [CMD] Command : 04 hexa — Read Action, 05 - hexa Write Action, 06 – Ack Answer
  • [OPR] Operand :  31 hexa — Integer (2bytes) , 32 hexa– Float (4bytes)
  • [STA] Start Address — Beginning address to read or write (two bytes)
  • [CNT] Counter — Quantity of bytes in the data packet to read or write (one byte) 
  • <data> - data bytes related to the content read or write (each operand can have 2 or 4 bytes)
  • [ETX]  End Message –– 0D hexa

 

Based on this definition, we could say that the TX and RX below are valid:

  • TX: 02 05 31 00 00 04 0D (FS send to Device)
  • RX: 02 06 31 00 00 04 00 00 00 00 0D (Device answer to FS)

This means - TX:

02[STX]

05[CMD RD]

31 [Integer]

00 00 [Start Address : 0]

04[Quantity: 4 bytes]

0D [ETX]

This means  - RX:

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]


After analyzing this fictitious protocol, we can conclude:

  • Since the CNT is a single byte that indicates the number of bytes and the FF hex means 255 bytes, a block of communication can have a maximum of 255 bytes. Thus, each TX / RX can transmit a maximum of 127 (integer) or 64 (floats), which are the operands limits per communication block. The CNT, or 255 in this case, is what we call the MaximumBlockSize, which is defined as the maximum size of the communication block. As defined by the communication protocol, the user generally cannot customize the MaximumBlockSize.
  • Since a device's available operands can be much larger than the MaximumBlockSize, multiple TX/RX exchanges can be required for it 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 amount of operands must be less than the MaximumBlockSize.
  • ReadGroups and WriteGroups are created during the device module startup. Also, the Points settings are sorted, and the Groups are sequentially created by taking into account the information of whether or not two different points can be in the same communication TX/RX. The information taken into account is: Node, Address (Operand, Address, Name), MaximumBlockSize, Read/Write Command, Polling Time.


ReadGroups and WriteGroups

ReadGroups and WriteGroups are essential elements for managing communication between FactoryStudio and external devices. They contain information about FactoryStudio tags and communication operands and are responsible for organizing and optimizing the data exchange process.

A ReadGroup is responsible for reading data from devices, while a WriteGroup is responsible for writing data to devices. These groups are dynamically created based on the tags' configuration, such as AccessType, 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 to reduce the total number of messages.
  • Adjusting the MaximumBlockSize parameter according to the device's capabilities.
  • Using multiple communication channels to prioritize certain requests or handle different devices concurrently.

By implementing these strategies, you can significantly improve the communication performance and overall responsiveness of your system.

Device execution in FactoryStudio is a critical aspect of managing industrial automation systems. The software is designed to efficiently handle communication with various external devices, ensuring seamless data exchange and smooth operation. By utilizing features such as ReadGroups and WriteGroups, FactoryStudio organizes and optimizes communication processes. Furthermore, through the implementation of communication optimization strategies, the software significantly enhances overall system performance and responsiveness. With FactoryStudio, users can effectively manage their automation devices, resulting in a more reliable and efficient industrial automation environment.

ReadOnDisplay AccessType

The ReadOnDisplay AccessType 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.

During the device module startup, ReadGroups and WriteGroups are created without considering the AccessType. When a screen is opened, FactoryStudio checks if any points have the ReadOnDisplay setting and are linked to the tags of the open screen. Points with ReadOnDisplay AccessType that are not displayed on the screen are disabled, and the associated group is only disabled if all its points are disabled.

Understanding how the ReadOnDisplay AccessType works is essential for efficient communication, as it helps reduce unnecessary data exchange.

To learn more about ReadOnDisplay AccessType, acess: OnDisplayOrServer AccessType.



In this section...

Page Tree
root@parent
spacesV10