Hi,
I have an application that runs SCADA and sends CIP service requests to a ControlLogix5000 Processor. The CIP services ( requests) could be either
1. CIP Read Data Service,
2. CIP Write Data Service,
3. CIP Read Data Fragmented Format Service
4. CIP Write Data Fragmented Format Service
5. Multi-Request Service
These requests are sent every second to the PLC and then the responses returned by the ControlLogix is to be processed and passed on to SCADA again.
Now the problem here is since none of the CIP request packets have any field for Transaction number or the Request Identifier etc, how do I check whether a particular response arrived from the ControlLogix corresponds to which particular CIP request
?
Since there will be multiple ControlLogix connected, there will multiple requests sent to them every second. Without some identifier, it is impossible to distinguish between so many different responses.
I have PLC5 and MicroLogix1100 devices as well in the setup, which you all know support DF1 protocol. The commands that I am building for them have a separate 2-byte field for adding Transaction Number in the request packet ( TNS field in Typed Read, Typed Write, Logical read commands etc). So by extracting transaction number from the response arrived arrived from a PLC5/ML1100, I can identify the request which was sent for getting this response.
I tried to go through some PDFs detailing about general CIP Architecure, but could not find anything about the Request Id or Transaction Number. Also I have been searching the same in other Headers that are appended to the CIP requests before being actually sent to the ControlLogix, but no luck yet
Pls help if anyone knows about request identification in CIP services for ControlLogix Processors
.
I have an application that runs SCADA and sends CIP service requests to a ControlLogix5000 Processor. The CIP services ( requests) could be either
1. CIP Read Data Service,
2. CIP Write Data Service,
3. CIP Read Data Fragmented Format Service
4. CIP Write Data Fragmented Format Service
5. Multi-Request Service
These requests are sent every second to the PLC and then the responses returned by the ControlLogix is to be processed and passed on to SCADA again.
Now the problem here is since none of the CIP request packets have any field for Transaction number or the Request Identifier etc, how do I check whether a particular response arrived from the ControlLogix corresponds to which particular CIP request
Since there will be multiple ControlLogix connected, there will multiple requests sent to them every second. Without some identifier, it is impossible to distinguish between so many different responses.
I have PLC5 and MicroLogix1100 devices as well in the setup, which you all know support DF1 protocol. The commands that I am building for them have a separate 2-byte field for adding Transaction Number in the request packet ( TNS field in Typed Read, Typed Write, Logical read commands etc). So by extracting transaction number from the response arrived arrived from a PLC5/ML1100, I can identify the request which was sent for getting this response.
I tried to go through some PDFs detailing about general CIP Architecure, but could not find anything about the Request Id or Transaction Number. Also I have been searching the same in other Headers that are appended to the CIP requests before being actually sent to the ControlLogix, but no luck yet
Pls help if anyone knows about request identification in CIP services for ControlLogix Processors