Ken Hirst

Compact Logix run without I/O Cards

4 posts in this topic

Is there a way to run a compact logix program, while ignoring the the I/O configuration?  

I used to do this with other PLC's to help develop the HMI screens while connected to development PLC that does not have the full complement of cards that the end user PLC will have.  Just lets me test logic that supports the HMI while working at home.   I used to do this on other PLC's with just a CPU on my desk.

 

Possible?

Share this post


Link to post
Share on other sites

I've never done it but have you tried disabling the IO cards in the IO tree? Right Click the card, select the Connection tab, Check the Inhibit Module box

1 person likes this

Share this post


Link to post
Share on other sites

In CompactLogix and ControlLogix PLCs, double-click on each I/O module (whether local or remote) to open the properties. On the "Connection" tab, check the box next to "Inhibit Module". The code will run like normal but the I/O will be ignored.

 

Edited to add:
You can also inhibit/un-inhibit modules via SSV instructions, but I've only had to do that once. One cool thing you can do while the input modules are inhibited is write to their tags. I've often written simulation programs to run alongside the main program to test my logic. So, for example, when an output turns on to move a cylinder, there's a time delay in the simulation program that will then turn on the input associated with that cylinder's position. It makes it a lot easier to commission a system when you've already simulated the logic. When I can simulate it ahead of time, I can typically just do an I/O check (make sure they're wired correctly and physically work) and it runs with little difficulty.

Edited by Joe E.
3 people like this

Share this post


Link to post
Share on other sites
On 9/17/2021 at 9:02 AM, Joe E. said:

In CompactLogix and ControlLogix PLCs, double-click on each I/O module (whether local or remote) to open the properties. On the "Connection" tab, check the box next to "Inhibit Module". The code will run like normal but the I/O will be ignored.

 

Edited to add:
You can also inhibit/un-inhibit modules via SSV instructions, but I've only had to do that once. One cool thing you can do while the input modules are inhibited is write to their tags. I've often written simulation programs to run alongside the main program to test my logic. So, for example, when an output turns on to move a cylinder, there's a time delay in the simulation program that will then turn on the input associated with that cylinder's position. It makes it a lot easier to commission a system when you've already simulated the logic. When I can simulate it ahead of time, I can typically just do an I/O check (make sure they're wired correctly and physically work) and it runs with little difficulty.

I do this with pretty much every project I put together.  I have a simulation mode that my system can go into that runs the routing that sets all of my i/o to inhibit.  It also enables the JSR that runs the logic to simulate inputs, puts my scaling blocks into a simulation mode, etc.  Its really great for batching systems as you can make sure everything works well as the system sequences through the batching steps.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now