12 063
правки
(Новая страница: «The device now transmits and receives data at 115200 bps.») |
|||
(не показано 6 промежуточных версий этого же участника) | |||
Строка 4: | Строка 4: | ||
== RS-485 | == Registers of parameters of data exchange via RS-485 == | ||
In the factory configuration, all Wiren Board devices are supplied with the following RS-485 settings: 9600 bps, no parity bit (none), stop bit count — 2. However, the firmware of almost all modern Wiren Board devices supports additional registers, which set parameters of data exchange via RS-485: | In the factory configuration, all Wiren Board devices are supplied with the following RS-485 settings: 9600 bps, no parity bit (none), stop bit count — 2. However, the firmware of almost all modern Wiren Board devices supports additional registers, which set parameters of data exchange via RS-485: | ||
Строка 43: | Строка 43: | ||
The device now transmits and receives data at 115200 bps. | The device now transmits and receives data at 115200 bps. | ||
Writing to the appropriate registers changes the parity and the number of stop bits. | |||
In this case, a paradoxical situation arises: we can not know the value of the speed, if we do not specify its value in advance when referring to the device! Therefore, you should pay attention to what communication parameters you set. Stick a sticker with the new settings on the device. If all communication parameters are unknown, you can find them only by searching: | |||
#/bin/bash | #/bin/bash | ||
Строка 61: | Строка 61: | ||
done | done | ||
In this [[Media:Perebor.sh.tar.gz|script]] we refer to the 0x80 register, which stores the modbus address in all Wiren Board Modbus devices. The output of the script will contain lines like these: | |||
Speed:9600 Stop bits:1 Parity:none Modbus address:0x0001 | Speed:9600 Stop bits:1 Parity:none Modbus address:0x0001 | ||
Speed:9600 Stop bits:2 Parity:none Modbus address:0x0001 | Speed:9600 Stop bits:2 Parity:none Modbus address:0x0001 | ||
For stop bits, you will likely get two values: 1 and 2. You can refine the setting by reading the value from the register 112 with the already known address, speed, parity: | |||
modbus_client --debug -mrtu -b'''9600''' -p'''none''' -s'''2''' /dev/ttyAPP1 -a'''0x01''' -t0x03 -r112 | modbus_client --debug -mrtu -b'''9600''' -p'''none''' -s'''2''' /dev/ttyAPP1 -a'''0x01''' -t0x03 -r112 | ||
or | |||
modbus_client --debug -mrtu -b'''9600''' -p'''none''' -s'''1''' /dev/ttyAPP1 -a'''0x01''' -t0x03 -r112 | modbus_client --debug -mrtu -b'''9600''' -p'''none''' -s'''1''' /dev/ttyAPP1 -a'''0x01''' -t0x03 -r112 | ||
Строка 76: | Строка 76: | ||
Data: 0x0002 | Data: 0x0002 | ||
If you receive an error while reading from register 112, the device does not support setting communication parameters. In this case,the default value of 2 stop bits is used for communication. |
правки