Sign in to follow this  
TheNovice

Timeout and ID Mismatch: Reading DXM100 controller via COM port

Recommended Posts

I am trying to read register value from Banner DXM 100 controller.

I created COM port serial connection- 19200,8, none, 1, 1000ms.

When I am trying to read register 2 using Channel # as 2(also tried 40003), I am getting P-ModbusRTU 0010: Timeout error on every read and P-ModbusRTU 0014: ID Mismatch error after several reads.

I am trying to read every 2 seconds with offset 0. Port monitor and channel details look something like the image below:

Error.thumb.png.3fe2c09d0bc4c25ee4c3317c09729394.png

 

I have tried 'n number of ways to read the register value, by changing- modbus ID(on the device and Daqfactory), baud rate, channel#, timing, offset, I/O type, device timeout(to 2000ms) etc. but no luck.

Has someone encountered such issue before and can help me?

 

Thanks!!

 

 

Share this post


Link to post
Share on other sites

The device doesn't seem to be replying with Modbus.  Are you: a) sure that the device is setup for Modbus RTU slave and not another protocol, b) sure you have all the comm settings right?  Often Modbus uses Even parity.

Share this post


Link to post
Share on other sites

I believe the comm setting are correct. (I have used it previously with parity none)

I am trying to connect to a single device ie. Master, I don't have any type of network. Can you explain me what you mean by Modbus RTU slave?

 

Thanks!!

Share this post


Link to post
Share on other sites

DAQFactory is the master because it is making the queries.  The device is the slave because it only responds to queries.  It won't say anything unless asked.  That device supports several different protocols, and typically you have to configure the device for the protocol you want as you can't talk multiple protocols on the same port.

Share this post


Link to post
Share on other sites

I am using the ModBusRTU protocol while making the connection.

Connection.thumb.png.1eb21f0a84d3f1a1d8020761288ff704.png

 

If I choose ModbusRTU Slave I don't have anything to choose in the I/O Type dropdown list.

I believe I am doing everything correctly, can it be the device's radio communication problem?

 

Share this post


Link to post
Share on other sites

You don't want DAQFactory to be the slave.

Possibly, but the radio isn't responding to DAQFactory queries except occasionally, and then the response doesn't look to me like a Modbus, that's why I think its either a comm setting issue, or the device isn't setup to be a Modbus slave, but instead a different protocol.

Share this post


Link to post
Share on other sites

Even I think the problem is with the device protocol setup. Thank you for your help.

I'll update the post once I am able to make it work, might help someone.

Share this post


Link to post
Share on other sites

The problem was with my Controller I (stupid) was using.

There are different type of DXM100 devices which can be found here- https://www.bannerengineering.com/us/en/products/wireless-sensor-networks/wireless-controllers/industrial-wireless-controller-dxm-series.html?pageNum=1&sort=4#all

I was using DXM100 B1C1 which doesn't support Radio Communication.

I switched to DXM100 B1R2 which supports Modbus Radio Communication and I am now able to read and write registers successfully using Daqfactory.

 

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this