Рубрики
*NIX информация

modbus gw

## Что у нас есть

/dev/ttyS0 - порт 485 на напи
115200 - скорость
полярность:
a +
b - 

Для GW modbus:

1 . Создать необходимые директории и файлы:
#/etc/mbusd/mbusd-ttyS0.conf
#  Внимание имя конфиг файла должно иметь правильное название
# для  mbusd@ttyS1.service  файл будет иметь название mbusd-ttyS1.conf и etc.
# а иначе если файла не будет, то сервис запустится с параметрами по умолчанию 


mkdir /etc/mbusd
touch /etc/mbusd/mbusd-ttyS0.conf


2. Запуск демона.

systemctl enable mbusd@ttyS0.service
systemctl start mbusd@ttyS0.service
systemctl status mbusd@ttyS0.service

3. Настроить правильно конфиг:
Пример конфига:
https://github.com/3cky/mbusd/blob/master/conf/mbusd.conf.example

Тут нужно поменять :
device = /dev/ttyS3
speed = 115200
maxconn = 100 
timeout = 10 
pause = 50  
wait = 50


default conf

#############################################
#                                           #
#    Sample configuration file for mbusd    #
#                                           #
#############################################

########## Serial port settings #############

# Serial port device name
device = /dev/ttyS0

# Serial port speed
speed = 9600

# Serial port mode
mode = 8n1

# RS-485 data direction control type (addc, rts, sysfs_0, sysfs_1)
trx_control = addc

# Sysfs file to use to control data direction
# trx_sysfile =

############# TCP port settings #############

# TCP server address to bind
address = 0.0.0.0

# TCP server port number
port = 502

# Maximum number of simultaneous TCP connections
maxconn = 32

# Connection timeout value in seconds
timeout = 60

######### Request/response settings #########

# Maximum number of request retries
retries = 3

# Pause between requests in milliseconds
pause = 100

# Response wait time in milliseconds
wait = 500

# Reply on Broadcast
replyonbroadcast = no

modpoll

mbpoll -b 9600 -p none -m rtu -a 1 -r 515 /dev/ttyS3

modpoll -m tcp -t3 -a1 -r 515 -c 1 192.168.16.153
modpoll -0 -b 9600 -p none -m rtu -a 1 -t 3 -r 512  /dev/ttyUSB0
modpoll -0 -b 9600 -p none -m rtu -a 1 -t 3 -r 512  /dev/ttyUSB1

modpoll -m rtu -a 1 -b 9600 -p none -t 4:int -c 10 /dev/ttyS1
modpoll -m rtu -a 1 -b 9600 -p none -t 4:int -r 1 -c 62 /dev/ttyS1
modpoll -m rtu -a 1 -b 9600 -p none -t 4:int -r 1 -c 1 /dev/ttyS1
modpoll -m rtu -a 1 -b 9600 -p none -t 4:int -r 99 -c 1 /dev/ttyS1
modpoll -m rtu -a 1 -b 9600 -p none -r 1 -c 125 /dev/ttyS1
modpoll -m rtu -a 1 -b 9600 -p none -t 4:hex -r 1 -c 125 /dev/ttyS1
modpoll -m rtu -b 9600 -p none  -c 125 -a 1 -r 1 -0 /dev/ttyS1

modpoll -0 -b 9600 -p none -m rtu  /dev/ttyS1
modpoll -0 -b 115200 -p none -m rtu -a 2 -t 3 -r 512  /dev/ttyS4


modpoll -m rtu -a 1 -b 9600 -p none -r100  /dev/ttyS1
modpoll -m tcp -a1 -r 100 -c 1 192.168.16.147

Пример конфига:

root@napi-redkoala:~# cat /boot/uEnv.txt
verbosity=7
fdtfile=rk3308-napi-c.dtb
console=ttyS0,1152008
overlays=rk3308-usb20-host rk3308-i2c1-ds1307 rk3308-uart1
#overlays=rk3308-uart1 rk3308-uart2 rk3308-uart3 rk3308-i2c1-ds1338 rk3308-i2c3-m0 rk3308-usb20-host rk3308-spi1-w5500
kernelimg=Image
extraargs=

PM-3112-160

https://www.modbusdriver.com/modpoll.html
mbpoll -0 -b 9600 -P none -a 1 -t 3 -r 515 /dev/ttyUSB0
modpoll -0 -b 9600 -p none -m rtu -a 1 -t 3 -r 515  /dev/ttyUSB0


Настройки портов пример:
stty -F /dev/ttyS3 #посмотреть текущие настройки 
stty -F /dev/ttyS3 115200 cs8 -parenb -cstopb #установить настройки