=====PLC Communication and Configuration for MIStudio and TransSECS===== MIStudio/MIX and TransSECS applications can communicate to and from a variety of PLCs with drivers which include Modbus/TCP, Modbus/RTU, Modbus RTU over TCP, Modbus ASCII, Mitsubishi MELSEC, Siemens S7 (CP243 and CP242), Omron Fins, EtherNet/IP (for Allen-Bradley and Omron EtherNet/IP), and a few others. Conceptually, all communication to PLCs is through a "Device Server" (sometimes referred to as a DeviceServer). For example, to communiate with a Modbus/TCP PLC, there is a ModbusTCPDeviceServer Bean on the palette of MIStudio, or for TransSECS Devices, using the Devices node you will add a "ModbusTCPDeviceServer". Each Device Server is configured for the properties needed to communicate with the PLC, such as the IP Address. Each individual address or register in the PLC uses an individual "PLC Server" which is configured to use a Device Server. Each server bean is configured with various parameters, the most important of which is the address or register value. ====PLC Addressing==== see [[PLCAddressingForAllProducts|PLC Addressing for MIStudio and TransSECS]] ====Triggering PLC Beans==== When triggering PLC reads (using the trigger input in MIStudio, or using .triggerRead in scripts) it is best practice to set the property "triggerOnThread" to false. It defaults to true for regular timebase-based reads. If you leave this property as true (so it reads on the same thread as the trigger logic) then you could find that the read values are delayed (the result of the trigger read is the last value in the server, not a new value).