The vendor that supplied the equipment with a Horner PLC embedded in it provided a spreadsheet that shows the interlock status values as T513 through T624, inclusive. According to the table, T513 would be Modbus offset 6512 and read with function code 1 (Read Coil Status).
The IOC startup script has the following line drvModbusAsynConfigure("etmHPA_r0b", "etmHPAPLC_2", 0, 1, 6512, 112, 0, 1000, "Horner") which says to read 112 registers starting at offset 6512 with function code 1.
The first binary-in record is record(bi,"$(P)T513") { field(DESC, "HPA Door Open (H)") field(DTYP, "asynInt32") field(INP, "@asyn(etmHPA_r0b, 0, 1)INT16") field(SCAN, "I/O Intr") field(ZNAM, "OK") field(ONAM, "Fault") }
which says that it gets its value from the first register in the block read by the command shown above.
This all looks right to me.
But….. all the interlock binary-in records always show a value of 0. I'm clearly doing something wrong, but I can't tell what.
Advice, suggestions, etc. gratefully accepted.
|