Support for RS485 on Duet 6XD and 6HC
-
@developeralgo222 RRF doesn't yet support writing coils or reading discrete inputs, I only implemented writing registers, reading input registers, and reading holding registers.
Your document gives register numbers in hex. RRF takes parameters in decimal by default, but you can use hex numbers like this:
M260.1 P1 A1 R{0x0029} B1
-
@dc42 Fantastic.
When do you think you will be able to get to implementing the coils part , The SMT feeders i am testing it on needs to be able to Read/Write Coils to turn the Feeder triggers ON or OFF ?
-
@developeralgo222 I've attempted to add Modbus coil support but I don't have a Modbus device that implements coils to test it on. I've put a new MB6XD binary at https://www.dropbox.com/scl/fo/gwhkwjg232hd6us8yvr0k/ABiZ84dcbZEb9PYiznBRMZU?rlkey=whab6c638wj8w4hyo2jyvjign&dl=0.
-
@dc42 i will try and test the coils with the new binary now
-
@developeralgo222 M260.1 now takes a F parameter to specify the Modbus function number. See https://docs.duet3d.com/en/User_manual/Reference/Gcodes#m2601-modbus-write-registers-or-coils.
-
@dc42 First tests on R/W to a single Coil ( M42 = Coil Address(Hex) is 0x002A ) and also multiple coils:
-
Single READ = Works & Single WRITE = Doesn't work -- can't write to single coil
-
Multiple READ = Works & Multiple WRITE = Doesn't Work and come back with an error even though it writes the Value to those multiple coils . i also tried writing to a single coil using F15 and i am able to write it but Duet responds with an Error even though it write to the Single coil
Note: For single READ test , i turned the coil to ON = 1 manually and read it to see if it was reading from the correct coil and then changed it back to OFF = 0 and read it again
Also i think there is a mix up between Read & Write functions on Multiple coils . When you send a WRITE function (F15 or F{0x0F} ) it comes back with an error but when you send READ function (F1 or F{0x01} ) command for multiple Coils it shows that the coils values have been updated from 0 (OFF) to 1(ON)
Is there a way to get the debug logs easily to see what its sending and the format ?
-
-
@developeralgo222 thanks for your feedback. So it looks as though it was sending the correct data for WriteSingleCoil and WriteMultipleCoils even though it returned failure. I've updated the binary at https://www.dropbox.com/scl/fo/gwhkwjg232hd6us8yvr0k/ABiZ84dcbZEb9PYiznBRMZU?rlkey=whab6c638wj8w4hyo2jyvjign&dl=0 with a possible fix.
-
@dc42 fantastic ,
i will give the new update a try again -
i run the following commands from the console for tests :
Write / Read Single Coil using Functions 5 & 1 M260.1 P1 A1 F{0x05} R{0x002A} B1 M261.1 P1 A1 F{0x01} R{0x002A} B1 Write / Read multiple Coils using Functions 15 & 1 M260.1 P1 A1 F{0x0F} R{0x002A} B1:1:1:1 M261.1 P1 A1 F{0x01} R{0x002A} B4 M260.1 P1 A1 F{0x0F} R{0x002A} B0:0:0:0 M261.1 P1 A1 F{0x01} R{0x002A} B4 Write / Read Single Coil using Functions 15 & 1 M260.1 P1 A1 F{0x0F} R{0x002A} B1 M261.1 P1 A1 F{0x01} R{0x002A} B1 M260.1 P1 A1 F{0x0F} R{0x002A} B0 M261.1 P1 A1 F{0x01} R{0x002A} B1
From the R/W Coil tests, Only Single WRITE (Command below) to the coil using Function 5 does not work. It actually doesn't WRITE anything at all to the coil .
M260.1 P1 A1 F{0x05} R{0x002A} B1
-
@developeralgo222 please try the latest binary at https://www.dropbox.com/scl/fo/gwhkwjg232hd6us8yvr0k/ABiZ84dcbZEb9PYiznBRMZU?rlkey=whab6c638wj8w4hyo2jyvjign&dl=0.
-
@dc42 great , let me give it a try
-
i tried the following tests from the console and everything seems to be working ok.
;Write / Read Single Coil using Functions 5 & 1 M260.1 P1 A1 F{0x05} R{0x002A} B1 M261.1 P1 A1 F{0x01} R{0x002A} B1 M260.1 P1 A1 F{0x05} R{0x002A} B0 M261.1 P1 A1 F{0x01} R{0x002A} B1 ;Write / Read Single Holding Registers using Functions 6 & 3 M260.1 P1 A1 F{0x06} R{0x002A} B1 M261.1 P1 A1 F{0x03} R{0x002A} B1 ;Write / Read multiple Holding Registers using Functions 16 & 3 M260.1 P1 A1 F{0x10} R{0x002A} B1:1:1:1:1 M261.1 P1 A1 F{0x03} R{0x002A} B5 M260.1 P1 A1 F{0x10} R{0x002A} B0:0:0:0:0 M261.1 P1 A1 F{0x03} R{0x002A} B5
Please can you generate all the 3.6.Alpha4 binaries including WebControl so that i don't get Version mismatch for the other boards and i can continue working & testing this version as you work to finish it and resolve any bugs if any
-
@developeralgo222 you can find 3.6 alpha 4 binaries for expansion boards at https://www.dropbox.com/scl/fo/cckwiq91gn16hvl1zdjnp/AF0SMEtkVfiArSPeYaBDGPY?rlkey=kqkknk9q1kiq684u4s55ce8d4&dl=0. There isn't an alpha 4 DWC yet.
-
@dc42 The tests are great . No errors so far . Looks good