Exchange of data between SoftPLC and Domat systems may be required from the following reasons:
Every process station is a server in the Ethernet network, and accepts client connections over a communication protocol. Clients may be e.g. the engineering tool (SoftPLC IDE, Domat IDE), SCADA (RcWare Vision, see figure), HMI panels (HT101, HT200), or any other program communicating over SoftPLC Link protocol for the SoftPLC controllers, or SSCP protocol for Domat controllers. However, a client may be another PLC, too – both SoftPLC and Domat PLC do have both communication protocols, SoftPLC Link and SSCP, implemented.
If the values originate in Domat and shall be communicated to a SoftPLC controller, the easiest way is to insert a SSCP channel in the SoftPLC project, attach as a client to the Domat PLC, and read the values into SoftPLC variables. As a list of available variables with their identifiers (GUIDs) in Domat PLC there is a .vlist file, which is located in the [project_name]\bin folder after project build. The file is available in two formats, with Unicode and UTF-8 coding.
Note that this communication is only supported at IPLC501, IPLC510, MXPLC-L. Platforms IPLC201, IPLC301, MXPLC do not provide this option. For these platforms, use Communication from SoftPLC to Domat as described below please.
If the Domat variable is structured (array etc.), parameters Offset and Length may be used to specify the position of the requested data in the structure. Variables may be Read only or Write only: the Write variables are stored in RAM in the Domat runtime, with periodic saving in the Flash memory. Variables defined in Domat as RETAIN are written directly to NVRAM. Similarly, go for other variables in the PLC. Only one connection to Domat runtime is established even for more variables. If there are more Domat PLCs to connect to, every PLC shall have a separate SSCP channel.
If there is an existing SoftPLC system and Domat PLCs are added, the data from existing SoftPLC controllers may be integrated in Domat.
Similarly, add more variables, and more Devices if there are more SoftPLCs to communicate to. Note that for the Write variables the SoftPLC runtime does not tell between connections from a HMI panel or SCADA (which means that the changed variables may be written into EEPROM immediately, as the changes are not very frequent), or from another runtime (which is writing periodically in short intervals, which would destroy the EEPROM after some time). For this reason, all variables in SoftPLC are saved in EEPROM about every 30 minutes.
Every controller has a limited capacity of resources for incoming connections. This has to be considered when designing the communication topology. One coneection should be reserved for servicing and program upload from the IDE. Number of variables within one connection is not limited, however, at hundreds of variables the response time will be longer.
SoftPLC runtime: For IPLC201, IPLC301, and MXPLC there is a limitation to maximum 5 incoming connections. For IPLC501, IPLC510, MXPLC-L, and Windows SoftPLC Runtime it is recommended not to exceed about 20 connections.
Domat runtime: Process stations based on FreeRTOS (IMIO10x, ICIO20x, mark100, mark150/xxx, mark12x) accept maximum 5 connections from SSCP clients. Process stations with Linux operating system (markMX.2, markMX, mark320, mark220) accept up to 20 connections at a time.
For design of communication between different systems, use basically the same rules as for communication within a single system: it should not be used for critical signals and datapoints within a control loop (e.g. supply air temperature and heating valve control in an AHU). The communication would not work if there are problems in the network. To make the controls safer, use datapoints which indicate communication problems (CommError for a communication channel), or define a default variable value for case of a communication error in SoftPLC (Use default value on comm error in Variable properties).