- 串口名称
在网关中,RS232和RS485口共用了4个串口,串口名字按照顺序分别是:/dev/ttyO1,/dev/ttyO2,/dev/ttyO3,/dev/ttyO4
- 串口配置
- port:网关下:RS232和RS485口共用了4个串口,串口名字按照顺序分别是:/dev/ttyO1,/dev/ttyO2,/dev/ttyO3,/dev/ttyO4
- connparam:多个参数key和value对,每对参数之间以分号隔开,参数的key和value之间使用=号。如:port=COM2;baudrate=9600;parity=E;databits=8;stopbits=1
- baudrate:支持:2400、4800、9600/115200/19200/25600等
- parity:O,E,N:偶校验,奇校验,无校验。缺省为N
- databits:5/6/7/8,缺省为8
- stopbits:1:1个停止位;2:2个停止位
- xonlimit:如1000
- xofflimit:如1000
- readmincharacters:整数
- readtimeout:整数,需要保证为100及以上(毫秒,使用AccessPort工具,为-1可能读取不到,如西门子S7-200 PPI该参数为-1则会读取不到应答)
- ctsenable:整数
- rtsenable:整数
- flowcontrolinenble:整数,是否允许输入的软件流控 1:允许,0:禁止
- flowcontroloutenble:整数,是否允许输出的软件流控 1:允许,0:禁止
- modem:整数
- receiverenble:整数
- dsrenable:整数:Controls whether DSR is disabled or enabled (Win32)
dtrenable:整数,0:Disable,1:Enable,2:Handshake(Only In Win32)
测试串口
方法一,电脑使用USB转串口线,串口接入RS232的CH1(/dev/ttyO1)
- 登录网关(通过SSH)
命令行设置使用连线的串口参数:stty -F /dev/ttyO3 ispeed 9600 ospeed 9600 cs8
该命令将串口1(/dev/ttyO1)设置成115200波特率,8位数据模式。一般情况下设置这两个参数就可以了,如果显示数据乱码,可能还需要设置其它参数,使用man查看stty其它设置选项。
查看和确认已经打开串口的参数:stty -F /dev/ttyO3 -a
返回的参数如果禁用了则前面有(-),没有-号表示启用。
验证网关串口发送数据正确性
- (1)打开网关串口CH3,发送上面查找到的有应答的协议数据给串口:
发送文本:echo sss > /dev/ttyO3
发送十六进制串: echo -e -n "\x55\x01\x00\x10\xF0\xAA" > /dev/ttyO3
-e // 表示使能反斜杠转义,这样遇到\就会转义为二进制
-n // 不添加行尾换行标识,因为默认的 echo 会在末尾添加 0x0A
双引号表示要转义的字符串,\x表示十六进制,\0NNN 表示八进制 - (2)Windows下串口工具查看应收到上面所发的数据,应一致
- 5.验证网关串口接受数据正确性:
(1)Windows下通过唐老鸭发送一个十六进制串,如: 11 22 33
(2)网关下通过如下命令查看是否收到,应一致:cat /dev/ttyO3
- (1)打开网关串口CH3,发送上面查找到的有应答的协议数据给串口: