RSL
Member
I have a rather large application that runs on ControlLogix with redundancy. The program is about 1.3 million bytes and it runs on L55M14's. It is very heavy in tag's and indexed code called by for/next loops. The crossloading is pretty heavy on the redundant pair. It has two ControlNets one for IO and one for HMI.
The HMI's communicate via another (3rd)rack and processor that handles all the data collection/HMI interaction. All data in and out of the redundant pair is produced/consumed or messaged accross the ControlNet's
This rack receives all the system data via ControlNet. It is polled by 3 identical OPC topics with several thousand tags on the scan.(via ENBT card) The system is also polled via PLC/SLC mapping by 1 soon to be 2 different Energy Metrics servers. My scantime is excellent on the HMI procesor, even running a 50% overhead timeslice to support all the communications. If I have my decimal place right it is about 6ms.
My problem lies in the redundant pair. I have 2 issues.
Scantime causing missed inputs on counters. Scantime is about 425-460ms
Controlnet unscheduled bandwidth insufficient to allow for expansion or online editing in a timely fashion.
My questions are.
I have disabled several large subroutines for testing purposes. The scantime stayed more or less the same. Is crossloading the bottleneck on my scantime? I suspect it is, but don't know how to validate this?
I am getting ready to add another ControlNet to the system. This will give me another path into and out of my redundant pair. Will this impact my scantime? I am not adding tags or ladder code just re-directing some data. (My ControlNets are scheduled the way they need to be, so please no Reschedule suggestions)
I want to configure listen only connections to several IO modules on a busy ControlNet. If I add a controller to my ControlNet Configuration and set the RPI's exactly the same as the owners of the IO will this add too much workload to my CNB's or be fairly transparent?
My discrete IO is already in a scheduled task and the logic gets updated more frequently than my scantime. I don't think I can reduce the scheduled execution time anymore as it will impact the rest of the controller's workload?
I have two solutions for the missed discrete bits. We already use some HSC cards that work well. I could add several more. I think however the solution might be to use another controller to read the IO status and through ladder logic make my own HSC. These pulses are not really high speed just faster than my scantime. I could then produce/consume the data to my redundant pair. I have some data that is critical for control that I will use the HSC counters for, but data collection type data can go the other route.
Any thoughts?
Thanks in advance.
The HMI's communicate via another (3rd)rack and processor that handles all the data collection/HMI interaction. All data in and out of the redundant pair is produced/consumed or messaged accross the ControlNet's
This rack receives all the system data via ControlNet. It is polled by 3 identical OPC topics with several thousand tags on the scan.(via ENBT card) The system is also polled via PLC/SLC mapping by 1 soon to be 2 different Energy Metrics servers. My scantime is excellent on the HMI procesor, even running a 50% overhead timeslice to support all the communications. If I have my decimal place right it is about 6ms.
My problem lies in the redundant pair. I have 2 issues.
Scantime causing missed inputs on counters. Scantime is about 425-460ms
Controlnet unscheduled bandwidth insufficient to allow for expansion or online editing in a timely fashion.
My questions are.
I have disabled several large subroutines for testing purposes. The scantime stayed more or less the same. Is crossloading the bottleneck on my scantime? I suspect it is, but don't know how to validate this?
I am getting ready to add another ControlNet to the system. This will give me another path into and out of my redundant pair. Will this impact my scantime? I am not adding tags or ladder code just re-directing some data. (My ControlNets are scheduled the way they need to be, so please no Reschedule suggestions)
I want to configure listen only connections to several IO modules on a busy ControlNet. If I add a controller to my ControlNet Configuration and set the RPI's exactly the same as the owners of the IO will this add too much workload to my CNB's or be fairly transparent?
My discrete IO is already in a scheduled task and the logic gets updated more frequently than my scantime. I don't think I can reduce the scheduled execution time anymore as it will impact the rest of the controller's workload?
I have two solutions for the missed discrete bits. We already use some HSC cards that work well. I could add several more. I think however the solution might be to use another controller to read the IO status and through ladder logic make my own HSC. These pulses are not really high speed just faster than my scantime. I could then produce/consume the data to my redundant pair. I have some data that is critical for control that I will use the HSC counters for, but data collection type data can go the other route.
Any thoughts?
Thanks in advance.