Good Morning,
I have an IOC that is currently reading registers via modbus rtu over rs485. There are a set of registers that store multiple configuration options in a single register. I set up the port using this line:
> drvModbusAsynConfigure("Z8TC1_Config", "SenecaBus", 5, 6, 53, 4, "UINT16", 100, "SenecaZ")
I've enabled the debugging lines on this IOC. When the IOC starts, I can see that the correct registers are being retrieved when the port is created. I can also write config changes to those registers at their assigned PV's with no issues that I have found. My issue is that the PV values aren't being updated when the IOC starts -- meaning that after the IOC start, the bo and mbbo values stored in that register don't match what was returned via the initial modbus request.
Here are a couple of the DB entries that I'm using:
record(bo,"$(P)$(R)-TC1_enable") {
field(DTYP,"asynUInt32Digital")
field(OUT,"@asynMask($(PORT), 0, 0x8000 )")
field(ZNAM,"Disabled")
field(ONAM,"Enabled")
}
record(bo,"$(P)$(R)-TC2_enable") {
field(DTYP,"asynUInt32Digital")
field(OUT,"@asynMask($(PORT), 0, 0x4000 )")
field(ZNAM,"Disabled")
field(ONAM,"Enabled")
}
record(bo,"$(P)$(R)-TC1-2_units") {
field(DTYP,"asynUInt32Digital")
field(OUT,"@asynMask($(PORT), 0, 0x2000 )")
field(ZNAM,"tempDegC")
field(ONAM,"mV")
}
Any help is appreciated.
Dale
-- Dale Cox
Instrumentation and Electrical Engineer
ACU NEXT Lab