PLC control software acts as a DirectNet master through any RS232 port and consists of three main parts, a PLC driver with a state machine control block, a device support module, and a common serial driver.
The support module of device is initialized during the IOC startup procedure. Standard OUT and INP fields of EPICs records contain the PLC name to communicate with. The name has to be unique for each PLC connected to the IOC. The name is used by software to spawn PLC data client tasks which deal with the control device data requests.
All input records share a common data cache to reduce the amount of DirectNet traffic. It could be generated by multiple reads of the same or nearby PLC memory locations. The data is kept by the data cache together with its time stamp and is handled by a Data Cache Manager (DCM). The DCM examines the cached data for the relevant location when an input record is processed. It will compare the age of data with the scan period of the record. If the data is new then the cache data is returned immediately finishing the record processing. Otherwise the request is sent to the PLC for new data via the PLC Data Client corresponding.
The records of output have access to only the PLC general data storage area. It is to ensure that the memory words written to the PLC output space by the ladder logic can not be changed by output records. The IOC maintains its own value buffer in each output location. It allows several records to point in different parts within the same memory.