Hi guys,
I want to gather some ideas on how to simulate a PLC application for Allen-Bradley ControlLogix. I do have a small rack (4 slots), but the only modules are CPU (L72) and Ethernet (EN2T). With this equipment I want to simulate a complete control system consisting of one rack with CPU and communications, plus several rack of I/O modules.
I'm using RSLogix5000 V20 and FactoryTalk View V7.
I have performed simulations with this setup earlier with success, but I'm not sure I'm doing it the most efficient way.
So my question essentially is:
- How do you normally do your simulation of control systems?
Any idea is welcome
Note that I'm NOT talking about simulation on a live system at site, but at a remote position with no I/O connected.
This might be for trouble shooting (files sent to office from field service rep), for internal testing before installing a new control system, for FATs prior to shipping, etc. The key is to be able to perform a safe and reliable test without all I/O connected.
Some more information about the way I normally do this:
Without any connected I/O, I'm not able to do any hardwired simulation from switches and potmeters, etc.
I will have to do it all through software.
The FactoryTalk View is fully capable of talking to most every tag in the PLC, however, not to the input registers, which will have to be forced directly in RSLogix5000. Forcing is too time consuming, and is not an option.
I make some additional tags that holds the simulated values. These can be structured similar to the I/O module layout for easier readability. Arrays with aliases may be a nice way of structuring, and makes it easier to copy large amount of data with a FOR TO loop.
Then I add a separate routine to handle the simulation part, and off-course some logic that automatically will turn off any simulation after boot-up, also logic to prevent activating simulation mode based on safety criterias, etc.
I also make a dedicated test/simulation HMI in FactoryTalk View just for this purpose, an HMI that never will follow the project to the destination. When enabled, the simulation will ignore the input registers and only read values from the test HMI.
With a bit of structured layout on the HMI, I can line upp all the inputs with buttons and values for each input module.
With a creative layout, I also place the same inputs on a process screen to get a better understanding and accessibility during process testing.
I have also used a second "test PLC" for the simulation and utilized produced/consumed tags. This way I can make complex models to simulate the process with valid values for different situations without altering the project software.
Anyway, for this solution I still have to make a simulation mode in the project and accept the simulated values in the logic when the real I/O is unavailable.
I was playing with the thought of having an external device talking to the PLC and act as a remote I/O rack. Is this possible? Perhaps there is a solution for this already? If so, the PLC would recognize the rack and believe it is real I/O.
Is there a way to perform full simulation without adding or altering any logic inside the CPU?
For existing (old) projects this would be beneficial, but for now I see that I have to add the simulation mode in the logic in order to perform the tests.
For new projects, I'm able to design the I/O handling with a simulation mode from the beginning, but it is still nice to get ideas on how other people are doing this.
Sorry for the long text
Hopefully, this question hasn't been asked before, but I couldn't find anything like this when searching.
Best regards
OA
I want to gather some ideas on how to simulate a PLC application for Allen-Bradley ControlLogix. I do have a small rack (4 slots), but the only modules are CPU (L72) and Ethernet (EN2T). With this equipment I want to simulate a complete control system consisting of one rack with CPU and communications, plus several rack of I/O modules.
I'm using RSLogix5000 V20 and FactoryTalk View V7.
I have performed simulations with this setup earlier with success, but I'm not sure I'm doing it the most efficient way.
So my question essentially is:
- How do you normally do your simulation of control systems?
Any idea is welcome
Note that I'm NOT talking about simulation on a live system at site, but at a remote position with no I/O connected.
This might be for trouble shooting (files sent to office from field service rep), for internal testing before installing a new control system, for FATs prior to shipping, etc. The key is to be able to perform a safe and reliable test without all I/O connected.
Some more information about the way I normally do this:
Without any connected I/O, I'm not able to do any hardwired simulation from switches and potmeters, etc.
I will have to do it all through software.
The FactoryTalk View is fully capable of talking to most every tag in the PLC, however, not to the input registers, which will have to be forced directly in RSLogix5000. Forcing is too time consuming, and is not an option.
I make some additional tags that holds the simulated values. These can be structured similar to the I/O module layout for easier readability. Arrays with aliases may be a nice way of structuring, and makes it easier to copy large amount of data with a FOR TO loop.
Then I add a separate routine to handle the simulation part, and off-course some logic that automatically will turn off any simulation after boot-up, also logic to prevent activating simulation mode based on safety criterias, etc.
I also make a dedicated test/simulation HMI in FactoryTalk View just for this purpose, an HMI that never will follow the project to the destination. When enabled, the simulation will ignore the input registers and only read values from the test HMI.
With a bit of structured layout on the HMI, I can line upp all the inputs with buttons and values for each input module.
With a creative layout, I also place the same inputs on a process screen to get a better understanding and accessibility during process testing.
I have also used a second "test PLC" for the simulation and utilized produced/consumed tags. This way I can make complex models to simulate the process with valid values for different situations without altering the project software.
Anyway, for this solution I still have to make a simulation mode in the project and accept the simulated values in the logic when the real I/O is unavailable.
I was playing with the thought of having an external device talking to the PLC and act as a remote I/O rack. Is this possible? Perhaps there is a solution for this already? If so, the PLC would recognize the rack and believe it is real I/O.
Is there a way to perform full simulation without adding or altering any logic inside the CPU?
For existing (old) projects this would be beneficial, but for now I see that I have to add the simulation mode in the logic in order to perform the tests.
For new projects, I'm able to design the I/O handling with a simulation mode from the beginning, but it is still nice to get ideas on how other people are doing this.
Sorry for the long text
Hopefully, this question hasn't been asked before, but I couldn't find anything like this when searching.
Best regards
OA