Experimental Physics and Industrial Control System
I think I see the problem.
*
drvModbusAsynConfigure("DM2C_1_1_In_Word", "L0", 1, 3, 24576, 2, 0, 0, "DM2C_stepper")
That creates a driver that will use function code 3 to read from register location 24576 (0x6000). It will read 2 registers (the Modbus length argument), so it will read registers 0x6000 and 0x6001.
* status = pC_->readReg16(44, &read_val, DEFAULT_CONTROLLER_TIMEOUT);
However, here you are telling it to read relative register 44 (0x2c) which is absolute register 0x602c. That is invalid because you only configured the driver to read 2 registers. You need to increase the number of registers in the drvModbusAsynConfigure to include all registers you will be accessing.
Mark
________________________________
From: Tech-talk <tech-talk-bounces at aps.anl.gov> on behalf of 沈治邦 via Tech-talk <tech-talk at aps.anl.gov>
Sent: Friday, November 22, 2024 4:31 AM
To: tech-talk at aps.anl.gov <tech-talk at aps.anl.gov>
Subject: autoConnect could not connect when reading a register by modbus relative addressing
Hi,
I am encountering an issue while developing a modbus communication-based motor controller program, similar to the module motorAMCI.
I am attempting to read the values in registers with function code 3 by relative address. For instance, if I want to read the value located in 0x602C, which represents the current position of the motor. I set the starting address to 0x6000 by the command in st.cmd
drvModbusAsynConfigure("DM2C_1_1_In_Word", "L0", 1, 3, 24576, 2, 0, 0, "DM2C_stepper")
Then to read the motor position, I called the function in driver.cpp with sentence
status = pC_->readReg16(44, &read_val, DEFAULT_CONTROLLER_TIMEOUT);
24657 is 0x6000 and 44 is 0x2C, then I believe that the value at 0x602c could be accessed.
The definition of the readReg16 is the same with the method ANG1Controller::readReg16()
Consequently, I am unable to retrieve the correct register value, and an error is showed:
2024/11/22 17:57:00.751 DM2C_1_1_In_Word 2 autoConnect could not connect:
Could someone please help me figure out what might be causing this issue?
Thank you!
Best regards,
Shen Zhibang
- Replies:
- Re: [SPAM] Re: autoConnect could not connect when reading a register by modbus relative addressing Zhibang Shen via Tech-talk
- Re: [SPAM] Re: autoConnect could not connect when reading a register by modbus relative addressing Zhibang Shen via Tech-talk
- References:
- autoConnect could not connect when reading a register by modbus relative addressing 沈治邦 via Tech-talk
- Navigate by Date:
- Prev:
Re: [EXTERNAL] Phoebus settings.ini - Path to predefined Colors and Fonts Dr. Simon Friederich via Tech-talk
- Next:
Re: [SPAM] Re: autoConnect could not connect when reading a register by modbus relative addressing Zhibang Shen via Tech-talk
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
<2024>
2025
- Navigate by Thread:
- Prev:
autoConnect could not connect when reading a register by modbus relative addressing 沈治邦 via Tech-talk
- Next:
Re: [SPAM] Re: autoConnect could not connect when reading a register by modbus relative addressing Zhibang Shen via Tech-talk
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
<2024>
2025