How are the cool kids aliasing Flex 5000 I/O module features

id10t_error

Lifetime Supporting Member
Join Date
Oct 2017
Location
California
Posts
98
I'm a big fan of aliasing I/O channels to P&ID device names, but with all the new built-in I/O features, how are the cool kids aliasing?

The ability to alias UDT members to I/O datatypes would be convenient, Like creating a single tag that encapsulates one complete channel, with all functionality. 5094-IF8 as an example, if we could alias UDT members of CHANNEL_AI_DIAG:I:0, AB:5000_AI_Channel:C:0, and CHANNEL_AI:O:0.

I guess a bunch of copy or move instructions could suffice? separation of concerns IDK?
 
Last edited:
Personally, I use a BTD instruction to move all I/O into tags.

It ensures the logic works more like 500 where it only works on a single scan (because you work from the tags, not the I/O)

I don't know if this is what you would want for PID loops, but I typically use a DINT such as LI_10 (Local Input 10) or RI_10 (remote input 10) to keep all the bits together, and arrays for Numbers, Timers, and Counters.
 
I'm a big fan of aliasing I/O channels to P&ID device names, but with all the new built-in I/O features, how are the cool kids aliasing?

The ability to alias UDT members to I/O datatypes would be convenient, Like creating a single tag that encapsulates one complete channel, with all functionality. 5094-IF8 as an example, if we could alias UDT members of CHANNEL_AI_DIAG:I:0, AB:5000_AI_Channel:C:0, and CHANNEL_AI:O:0.

I guess a bunch of copy or move instructions could suffice? separation of concerns IDK?


I vehemently oppose aliasing IO tags. You have to jump thru hoops to swap an IO channel while online with the PLC. Its pretty much the worst thing ever.
 
I don't alias them, I always create one program that converts them to named tags.
My logic is consistent with the named tags and so changing IO points for different locations doesn't affect the logic.

The alias functionality was well intentioned but has always bugged me as it creates an async tag in the middle of sync logic. My stuff is pretty slow so its really not a problem for me, but the potential is there so I just avoid it.

During dev I can also disable or force internal tags far more easily with logic instead of using Forces.
 
You can alias the whole structure as long as the alias data type matches. An example of this is making an array for all your VFD's (PF525 on EENET), aliasing physical drives to elements in the array and then using the array elements in your PLC/HMI program. You can Alias physical I/O directly, but always keep in mind that you or someone who is not you will need to work on that program at a later date. This includes tracing devices back from the field to the program for troubleshooting.
 
Not saying it is the best - but what I do is..


For all of my I/O I make a tag that is the same as what is on my print. I use page/line number for my device name that way I know what it is and where it is on my prints. Yes it is a pain if you have to change the I/O but make trouble shooting easier and harder to accidentally use the wrong I/O device in my program. I also make all hardware I/O tags Controller scoped so I find then and use them in any routine.


An example:
Tag - PB2932 Alias For(Rack_4:I.Data[0].5) - Is a Pushbutton located on page 29, line 32 of my prints. Hardware wise it is on Rack 4, Slot 0, Input #5). This way I can find the pushbutton in the tag list, where it is in the prints and where the wire can be found on the hardware. The description tells me what the pusbutton is - Start Pump #1.


It is not perfect but works for us and the other electricians get use to one method.
 
Compared to 1794 Flex, Flex 5000 is feature rich and with all these features, is "feature mapping" even something practiced with newer IO types? It's hard because the IO Module is doing the scaling, thus making an HMI module channel configuration screen much more difficult. It's more comfortable with 1794 flex, where the input value analog raw data is 0-30840 (Flex 5000 is 0-100 by default).

For ease of use, we would like to bring one Flex 5000 channel together as a single P&ID tag name as we have done in the past with 1794 Flex. For instance, the ease of changing the module's analog scaling and alarm setpoints via drilling down the P&ID Tag name is highly desirable. (Using 5094-IF8, 5094-OF8, 5094-IB16 and 5094-OW8I as an example.)

Like most I/O, 5094-IF8 has three locations & datatypes per channel (AB:5000_AI_Channel:C:0, CHANNEL_AI_DIAG:I:0, CHANNEL_AI:O:0). I Imagine we can create an AOI called F5K_AI_AOI containing InOut references to the three data types previously listed. We then could use CPS instructions to copy Module Channel Input to AOI Channel Input, AOI Channel Output to Module Channel Output, and Module Channel Config to AOI Channel Config. Then we can do the same with F5K_DO_AOI, F5K_DI_AOI, and F5K_AO_AOI. We can detect a change to the configuration data to stop the CPS copy of Configuration data, then issue an MSG of type "reconfigure module." Once all the data is inside the AOI, we will write all input, output, and config bits to a singular UDT. With 1794 Flex, things could be done a few CPS' XIC's and OTE's per channel directly, but flex 5000 would require many rungs to map most features with XIC, XIO instructions.

Are there any errors in doing something like this? I'm wondering if we should forget the built-in module features by making our own alarms/analog scaling in logic.
 
Last edited:
Attachements

I have attached a dirty example showing the flex module feature tag names, and bringing the data into a single UDT.

Flex 5000 requires version 31+, Only 1756-L8X processors are compatable. L7X is not compatable.
 
Last edited:
After extraction, the file is called FLEX_5000_V31_EXAMPLE.L5K , not .L5X ... It won't let me import it.. can't parse the file... renaming it to .L5X doesn't help either.. 1756-L83e v35, Logix Designer won't import the udt.
 
Last edited:

Similar Topics

I have been playing w/ my Microsoft 365 account. Found this as I was looking for Visio. Apparently there is this form app. I just started one...
Replies
2
Views
1,053
So a buddy just gave me this! Its old I say.... There is no marking on it to identify it. No brand, no numbers of any kind. Iv seen old meters...
Replies
16
Views
3,340
Heat/Cool – First Experience Although we have extensive PID heating experience for thermoplastic injection molding, today we are faced with a...
Replies
6
Views
2,036
Launch and came back, nice programming :) http://www.spacex.com/webcast
Replies
60
Views
38,352
Back
Top Bottom