Announcement
Collapse
No announcement yet.
test 3.5.5868.34556
Collapse
X
-
Read single register using the multiple register function
Hi Beeerygaz,
If I try to write a value to the register address (0x10 function) the current value is written to that address instead of the value submitted. I also used a RS-232 sniffer that confirmed that the actual value is written to the register address instead of the submitted value.
See example below, initial value is 200 and I try to write 201 to this address.
Feb-06 10:28:38 Modbus Debug Read Slave: 1 Address: 47398 HoldingRegister:Int16 as 200
Feb-06 10:28:36 Modbus Debug Reading Slave: 1 Address: 47398 HoldingRegister:Int16
Feb-06 10:28:35 Modbus Debug Writing Slave: 1 Address: 47398 HoldingRegister:Int16 as 200
Can you check which value you write to the register address (the status value or the value to be submitted).
If I look to the debugging info and the results of the RS-232 sniffer it seems that a small fix is required.
---
John
Comment
-
Beerygaz,
I noticed that you changed the writing of the value.
In the new situation:
Writing of Address to holding register followed by a read of that holding register.
In the old version it was "working" when I submitted the new value 2 times within a short interval.
The new situation is I think a better method to submit new values. But according to the Debug log and RS-232 sniffer the old value is submitted.
Looking forward to test the fix.
---
John
Comment
-
Sorry, I just realised the latest version was not pushing through to the updater properly. check the updater for 3.6.x.x - that should fix your issue, add a proper help file, etc.
I'm worried the "read after write" may be too quick for your device, if it presents an issue, let me know and I'll add the "read delay" into the process between the write and read action.Author of Highpeak Plugins | SMS-Gateway Plugin | Blue Iris Plugin | Paradox (Beta) Plugin | Modbus Plugin | Yamaha Plugin
Comment
-
Originally posted by beerygaz View PostSorry, I just realised the latest version was not pushing through to the updater properly. check the updater for 3.6.x.x - that should fix your issue, add a proper help file, etc.
I'm worried the "read after write" may be too quick for your device, if it presents an issue, let me know and I'll add the "read delay" into the process between the write and read action.
The interface is looking good.
I'm sorry to report that it is still not working.
The Log (debug) showed the following when I want to submit a value of 201:
Feb-08 17:52:09 Modbus Debug Updating device [47398] - Address:47398 - Type:HoldingRegister(Int16) to [200]
Feb-08 17:52:09 Modbus Debug Read Slave: 1 Address: 47398 HoldingRegister:Int16 as 200
Feb-08 17:52:07 Modbus Debug Reading Slave: 1 Address: 47398 HoldingRegister:Int16
Feb-08 17:52:05 Modbus Writing Slave: 1 Address: 47398 HoldingRegister:Int16 as 201
Write value 201:
Feb-08 17:51:57 Modbus Debug Updating device [47398] - Address:47398 - Type:HoldingRegister(Int16) to [200]
Feb-08 17:51:57 Modbus Debug Read Slave: 1 Address: 47398 HoldingRegister:Int16 as 200
Feb-08 17:51:55 Modbus Debug Reading Slave: 1 Address: 47398 HoldingRegister:Int16
Initial value 200
Using the RS-232 sniffer I noticed that only the following is written to the register:
01 10 B9 26 00 02 04 00 C8 00 00 AF F4
01 03 B9 26 00 01 40 9D
C8 = 200. So it seems that in this version also the current status is written to the register address.
---
John
Comment
-
Originally posted by beerygaz View PostIt's in the updater now.
Sent from my iPhone using Tapatalk
Great support, this fixed the issue.
You wrote:
I'm worried the "read after write" may be too quick for your device, if it presents an issue, let me know and I'll add the "read delay" into the process between the write and read action.
Today 03:39 PM
In previous versions you mentioned the support of events. This is not mentioned in the current help file. Do you intend to support an event to write a value to a register address. This will be very useful in my case but also for users controlling a Modbus Thermostate. For e.g. in case an event is available to write a setpoint to a register address HS3 can automatically lower the temperature in the evening when it is time to go to bed.
---
John
Comment
-
Hi Beerygaz,
Do you mention an event as below? If the event below is not as intended can you give an example of the event?
This will change the status to 200. But will not write the value to the register address. The result is that the next read is the initial value (203), see the log below.
Feb-08 21:11:10 Modbus Debug Updating device [47398] - Address:47398 - Type:HoldingRegister(Int16) to [203]
Feb-08 21:11:10 Modbus Debug Read Slave: 1 Address: 47398 HoldingRegister:Int16 as 203
Next read
Feb-08 21:11:08 Modbus Debug Reading Slave: 1 Address: 47398 HoldingRegister:Int16
Feb-08 21:11:08 Modbus Debug *Disabled* Slave: 1 Address: 43420 HoldingRegister:Int16 as 0
Feb-08 21:11:08 Modbus Debug *Disabled* Slave: 1 Address: 43009 HoldingRegister:Int16 as 0
Feb-08 21:11:08 Modbus Debug *Disabled* Slave: 1 Address: 43005 HoldingRegister:Int16 as 0
Feb-08 21:11:08 Modbus Debug *Disabled* Slave: 1 Address: 40083 HoldingRegister:Int16 as 0
Feb-08 21:11:08 Modbus Debug *Disabled* Slave: 1 Address: 40081 HoldingRegister:Int16 as 0
Feb-08 21:11:08 Modbus Debug *Disabled* Slave: 1 Address: 40079 HoldingRegister:Int16 as 0
Feb-08 21:11:08 Modbus Debug *Disabled* Slave: 1 Address: 40033 HoldingRegister:Int16 as 0
Feb-08 21:11:08 Modbus Debug *Disabled* Slave: 1 Address: 40016 HoldingRegister:Int16 as 0
Feb-08 21:11:08 Modbus Debug *Disabled* Slave: 1 Address: 40015 HoldingRegister:Int16 as 0
Feb-08 21:11:08 Modbus Debug *Disabled* Slave: 1 Address: 40014 HoldingRegister:Int16 as 0
Feb-08 21:11:08 Modbus Debug *Disabled* Slave: 1 Address: 40013 HoldingRegister:Int16 as 0
Feb-08 21:11:08 Modbus Debug *Disabled* Slave: 1 Address: 40012 HoldingRegister:Int16 as 0
Feb-08 21:11:08 Modbus Debug *Disabled* Slave: 1 Address: 40008 HoldingRegister:Int16 as 0
Feb-08 21:11:08 Modbus Debug *Disabled* Slave: 1 Address: 40004 HoldingRegister:Int16 as 0
Feb-08 21:11:08 Modbus Debug Polling Modbus RTU Gateway. Reading 15 registers from slaves
Run event (set status value to 200)
Feb-08 21:08:13 Event Event Trigger "po Modbus 47398"
Feb-08 21:08:13 Event Event po Modbus 47398 triggered by the event page 'Run' button.
---
John
Comment
-
John I see your issue. And I'm struggling with an HA3 limitation right now, that if I allow you set the device value for such a large range -33k to +33k the value can only be set in increments of 256. I'm working with HST on a solution.
Sent from my iPhone using TapatalkAuthor of Highpeak Plugins | SMS-Gateway Plugin | Blue Iris Plugin | Paradox (Beta) Plugin | Modbus Plugin | Yamaha Plugin
Comment
Comment