The Automationdirect Ethernet communications module allows the PC to write and read the PLC memory without special code in the PLC. This led to the idea of using a “dual port” memory model, where machine status is communicated between the PLC and the man or machine interface on the PC thru the PLC’s memory, requiring no special hand shaking or communications code. This allows the same flexibility with equipment protection code by also storing equipment protection limits in the dual port memory: it can be located in the PC, the local PLC, or in a second PLC that connected on the Ethernet network. The software is therefore organized into three sections, the hardware input or output section, the man or machine interface, and equipment protection.
The hardware input and output module’s responsibility is to keep the dual port memory and the hardware status synchronized. Tables containing hardware setpoints are written to output channels, and the status of input channels are written to “readback” tables in the dual port memory. Preliminary these code versions are hardwired: the number and types of hardware channels are fixed, as well as the corresponding addresses in the dual port memory. The code will be upgraded to a more flexible architecture as long as the increase in complexity does not impact the effectiveness of the equipment protection modules.
Input and output configuration will be based on a combination of the PLC’s input and output module probing and a table driven mapping between each channel and a dual port memory location. This table would be provided by the PC, and correspond to the channel mapping as recorded in the PostgreSQL database. This would also provide the benefit of allowing all PLC CPUs in the facility to run the same code, regardless of I/O configuration or specific hardware task.