|
|
Experimental Physics and
| ||||||||||||||
|
|
Hi all,
I encountered a strange issue while using the Modbus module to read data from an SRS10A controller. Data reading works correctly, but the problem occurs during data writing.
Part of my st.cmd file is shown below: drvAsynIPPortConfigure("SRS", "192.168.1.54:502") # Enable ASYN_TRACEIO_HEX on octet server asynSetTraceIOMask(SRS, 0, HEX) # Enable ASYN_TRACE_ERROR and ASYN_TRACEIO_DRIVER on octet server asynSetTraceMask(SRS, 0, ERROR|DRIVER) #modbusInterposeConfig(const char *portName, # modbusLinkType linkType, # 0=TCP, 1=RTU, 2=ASCII # int timeoutMsec, # int writeDelayMsec) modbusInterposeConfig("SRS", 0, 1000, 50) ############################################################### # drvModbusAsynConfigure( # char *portName, # char *octetPortName, # int modbusSlave, # int modbusFunction, # int modbusStartAddress, # int modbusLength, # modbusDataType dataType, # int pollMsec, # char *plcType) ############################################################### drvModbusAsynConfigure("SRS10_In1", "SRS", 1, 3, 0x100, 8, 0, 1000,"status") drvModbusAsynConfigure("SRS10_In2", "SRS", 1, 3, 0x109, 3, 0, 1000,"status") drvModbusAsynConfigure("SRS10_In3", "SRS", 1, 3, 0x10D, 2, 0, 1000,"status") drvModbusAsynConfigure("SRS10_In4", "SRS", 1, 3, 0x120, 3, 0, 1000,"status") drvModbusAsynConfigure("SRS10_In5", "SRS", 1, 3, 0x123, 4, 0, 1000,"status") drvModbusAsynConfigure("SRS10_In6", "SRS", 1, 3, 0x300, 3, 0, 1000,"status") drvModbusAsynConfigure("SRS10_In7", "SRS", 1, 3, 0x30A, 2, 0, 1000,"status") #drvModbusAsynConfigure("SRS10_In8", "SRS", 1, 3, 0x400, 18, 0, 1000,"status") #drvModbusAsynConfigure("SRS10_In9", "SRS", 1, 3, 0x460, 18, 0, 1000,"status") #drvModbusAsynConfigure("SRS10_In10", "SRS", 1, 3, 0x500, 4, 0, 1000,"status") #drvModbusAsynConfigure("SRS10_In11", "SRS", 1, 3, 0x508, 4, 0, 1000,"status") #drvModbusAsynConfigure("SRS10_In12", "SRS", 1, 3, 0x50D, 1, 0, 1000,"status") #drvModbusAsynConfigure("SRS10_In13", "SRS", 1, 3, 0x510, 4, 0, 1000,"status") #drvModbusAsynConfigure("SRS10_In14", "SRS", 1, 3, 0x515, 1, 0, 1000,"status") drvModbusAsynConfigure("SRS10_Out1", "SRS", 1, 6, 0x180, 1, 0, 1000,"status") drvModbusAsynConfigure("SRS10_Out2", "SRS", 1, 6, 0x182, 4, 0, 1000,"status") drvModbusAsynConfigure("SRS10_Out3", "SRS", 1, 6, 0x18C, 1, 0, 1000,"status") drvModbusAsynConfigure("SRS10_Out4", "SRS", 1, 6, 0x190, 3, 0, 1000,"status") drvModbusAsynConfigure("SRS10_Out5", "SRS", 1, 6, 0x198, 1, 0, 1000,"status") drvModbusAsynConfigure("SRS10_Out6", "SRS", 1, 6, 0x300, 3, 0, 1000,"status") drvModbusAsynConfigure("SRS10_Out7", "SRS", 1, 6, 0x30A, 2, 0, 1000,"status") The following error occurs when I run it: 2025/12/16 05:15:40.517 drvModbusAsyn::doModbusIO port SRS10_Out1 Modbus exception=2 2025/12/16 05:15:42.627 drvModbusAsyn::doModbusIO port SRS10_Out2 Modbus exception=2 drvModbusAsynConfigure("SRS10_Out3", "SRS", 1, 6, 0x18C, 1, 0, 1000,"status") 2025/12/16 05:15:43.779 drvModbusAsyn::doModbusIO port SRS10_Out3 Modbus exception=2 drvModbusAsynConfigure("SRS10_Out4", "SRS", 1, 6, 0x190, 3, 0, 1000,"status") 2025/12/16 05:15:44.910 drvModbusAsyn::doModbusIO port SRS10_Out4 Modbus exception=2 drvModbusAsynConfigure("SRS10_Out5", "SRS", 1, 6, 0x198, 1, 0, 1000,"status") 2025/12/16 05:15:46.030 drvModbusAsyn::doModbusIO port SRS10_Out5 Modbus exception=2 Note that SRS10_Out6 and SRS10_Out7 do not produce any errors, and I am indeed able to write data through them normally. This is what confuses me: why do SRS10_Out1 through SRS10_Out5 report errors? I have carefully checked the address settings and did not find any mistakes. Where could the problem be? Feng
| ||||||||||||||
| ANJ, 19 Mar 2026 |
·
Home
·
News
·
About
·
Talk
·
Base
·
Modules
·
Extensions
·
· Distributions · Download · Documents · Links · Licensing · |