ryangriggs
Lifetime Supporting Member
Summary: How to remotely toggle BOOL values on a vendor-supplied system having a L24ER PLC?
(RSLogix Studio 5000 version 33.01.00)
I have a L30ER PLC from which I want to poll the L24ER for various tags.
I can't modify the program in the L24ER vendor-supplied system.
However, I must create a HMI and also telemetry that talks to our main control station, that interacts with my PLC, but which also allows the user to change some settings in the vendor-supplied PLC. For example, wetwell level settings, pump enable/disable, auto/manual, etc.
I can access the vendor's PLC with RSLogix5000 and export their UDTs which store this info. Thus I can *read* this data using the MSG instruction, into an identical tag in my PLC.
However, since the MSG instruction does not support BOOL tags, how can I set a single bit in the vendor's PLC for such things as Pump Enable, Auto, etc?
I'm not comfortable writing back the entire UDT, because some other values are directly tied to process values that their PLC reads (i.e. wetwell level, pump speed, etc). Since there are several tags to read, I want to decrease the read frequency to reduce network congestion (i.e. 10+ seconds between reads). So by writing back the full UDT, I would be writing outdated values (at least 10 seconds old) into their tags, for the sole purpose of toggling a single bit. This doesn't seem like a good idea, especially if someone changed settings directly in their PLC between reads/writes on my end.
Is there a way to solve this without modifying their PLC's program? I need to be able to simply toggle individual bits in their controller from mine.
The easy solution would be to either set up produced/consumed tags, or add some INTs to their program and map individual bits back their UDT, then I could write to those INTs directly with MSG. However, either option would require changing their program.
Thanks for any pointers.
(RSLogix Studio 5000 version 33.01.00)
I have a L30ER PLC from which I want to poll the L24ER for various tags.
I can't modify the program in the L24ER vendor-supplied system.
However, I must create a HMI and also telemetry that talks to our main control station, that interacts with my PLC, but which also allows the user to change some settings in the vendor-supplied PLC. For example, wetwell level settings, pump enable/disable, auto/manual, etc.
I can access the vendor's PLC with RSLogix5000 and export their UDTs which store this info. Thus I can *read* this data using the MSG instruction, into an identical tag in my PLC.
However, since the MSG instruction does not support BOOL tags, how can I set a single bit in the vendor's PLC for such things as Pump Enable, Auto, etc?
I'm not comfortable writing back the entire UDT, because some other values are directly tied to process values that their PLC reads (i.e. wetwell level, pump speed, etc). Since there are several tags to read, I want to decrease the read frequency to reduce network congestion (i.e. 10+ seconds between reads). So by writing back the full UDT, I would be writing outdated values (at least 10 seconds old) into their tags, for the sole purpose of toggling a single bit. This doesn't seem like a good idea, especially if someone changed settings directly in their PLC between reads/writes on my end.
Is there a way to solve this without modifying their PLC's program? I need to be able to simply toggle individual bits in their controller from mine.
The easy solution would be to either set up produced/consumed tags, or add some INTs to their program and map individual bits back their UDT, then I could write to those INTs directly with MSG. However, either option would require changing their program.
Thanks for any pointers.
Last edited: