This screenshot is the AOI with the timers you've been helping me with (the one on the right).
Purpose of this is to give a clear visual to the maintenance / P&C guys on the statuses of the inputs. I know some people won't like it. If anyone have better or constructive ideas, i will be glad to hear them.
DI_REMAP_LD
So from left to right, we have the wired input. IN_15 is the end of the 24VDC chain to give me a QUALity bit in case I'm relying on a low to take action (is it a real low value, or my 24DC is failed?)
I have a mask to negate (BNOT) some of the inputs because I want to alarm on high all the time. And because BNOT takes a lot of room in a page (with SE it's a dot on the input leg), I'm using a DINT mask to make the FBD cleaner.
This is also where I have my simulator for testing and FAT to basically clear most of the alarms when activated.
DI_HMI_REMAP_LD
This is where I deal with quality and annunciation time.
Tags ending with _HMI are the tags going to the Modbus Remap and this is why it's not a straight line betwen the 2 AOI / blocks. That way I can remap a wired input to another location without touching the Modbus Remap (and Gateway addressing, and HMI, and SCADA). If the input mask is set to "1", that means that the alarm will stay on for at least 5 seconds, making sure that the HMI/SCADA will catch it in case it goes on and off between 2 HMI Modbus scans, which happened enough that I'm still doing this. If it's a "control" input, mask should be "0", unlike 43UCS_AUTO which I used to test.
It's looking better now but I just don't understand why _APS_F_HMI is showing "0" when OUT_02 is showing "1".
If it was an Unity Pro program, I would be looking at what else is writing in that tag, but that cannot happen with Rockwell if I'm getting it right.
I won't be having a good time with that project.
Thanks again everyone.