tips on making i/o dynamic

ganutenator

Lifetime Supporting Member
Join Date
May 2002
Location
kansas
Posts
1,440
Working on a project where I need to make the inputs and outputs assignable via an hmi.

Any tips would be appreciated.
 
It would help to know a little more about the process. How many I/O are involved? What type of operation is this? Discrete assembly machine? Continuous process heavy on analog?

In general, I would think that your control program would not have any real I/O but use internal registers for them.

Then in a separate file (two of them) you would assign the inputs to the internal registers (one of the first program calls), and as the last routine you would assign the output registers to the real world addresses.

This is a common practice, but for your dynamic application, you may used indirect address for the actual I/O, and have the indexes set up as variables from the HMI:

It could be complicated depending on how wide ranging the I/O count is and what type of controller. If you need to be able to assign an output to any point among slots 2,3,9, 12, or remote rack 7 slots 3 or 4, that could be hairy.

If the choice is limited to a single chassis slot, then it could be pretty simple.
 
It would help to know a little more about the process. How many I/O are involved? What type of operation is this? Discrete assembly machine? Continuous process heavy on analog?

In general, I would think that your control program would not have any real I/O but use internal registers for them.

Then in a separate file (two of them) you would assign the inputs to the internal registers (one of the first program calls), and as the last routine you would assign the output registers to the real world addresses.

This is a common practice, but for your dynamic application, you may used indirect address for the actual I/O, and have the indexes set up as variables from the HMI:

It could be complicated depending on how wide ranging the I/O count is and what type of controller. If you need to be able to assign an output to any point among slots 2,3,9, 12, or remote rack 7 slots 3 or 4, that could be hairy.

If the choice is limited to a single chassis slot, then it could be pretty simple.

All discrete.
Don't know the final i/o count but so far under 32 inputs and 32 outputs.
 
(*Using this routine to map the inputs to the
Input_Array for use w/ the functions*)
input_pointer:= 0;
While (input_pointer <= 63) Do
input_array[input_pointer]:= %M0[input_pointer];
input_pointer:= input_pointer + 1;
End_While;
 
Last edited:
I've never done anything similar, but here's how I'd start.
I'm going to assume that the hardware configuration is fixed. By that I mean that the input modules will always be in the same locations.
Start with a Boolean array called "Inputs" with the module data mapped to it. Slot1, Point 1 mapped to Inputs(0), Slot 1, Point 2 to Inputs(1), Slot 2, Point 1 to Inputs(16), etc.
If your logic contains a variable named "Positive_EOT_Limit_Switch" that could be wired to any of the discrete inputs you will need an HMI screen where the user can assign elements of the "Inputs" array to the names of the discrete inputs and a line of code like:
Positive_EOT_Limit_Switch = Inputs(HMI_Index)
 
You might about how to prevent incompatible assignments. But it may not be as simple as detecting two input functions tied to the same point. It will depend on your process,
 
It is impossible to reassign the real I/O however it is possible to do it in an array, example:
input[0]:= %IX0.0 etc.
in the program itself you can assign the array as you like.
assign[2]:=0
so the real is then state[2]:=input[assign[2]]
 

Similar Topics

I’m currently starting a brand new design with a compactLogix controller and a panel view 700. I’ve completed similar projects from start to...
Replies
7
Views
1,236
As I'm getting up to speed on some of the latest versions of TIA Portal, I noticed there is lots of security features. I'm wondering if anyone...
Replies
2
Views
1,069
and go! I'll start. Always comment the Boolean instruction for their TRUE state. For example. It is much easier to read a normally closed contact...
Replies
65
Views
21,542
I have been programming plcs and hmi's since the 90's. I would like to think that I have mastered my field/trade, but I know that I have not even...
Replies
0
Views
851
My work laptop recently failed and I'm about to setup my new one. It will have RSLogix 500, Studio 5000, programs for - automation direct...
Replies
14
Views
4,466
Back
Top Bottom