串口参数配置
- 通过网关界面进行参数配置
- 串口名称
在网关中,RS232和RS485口共用了4个串口,串口的内部名字按照顺序分别是:/dev/ttyO1,/dev/ttyO2,/dev/ttyO3,/dev/ttyO4。和COM1、COM2、COM3、COM4相对照
- 串口连接参数配置
- connparam:多个参数key和value对,每对参数之间以分号隔开,参数的key和value之间使用=号。如:port=COM2;baudrate=9600;parity=E;databits=8;stopbits=1
- 除以上配置外,内部还支持如下参数:
- baudrate:支持:2400、4800、9600/115200/19200/25600等。缺省:无效值(-8888),必须设置
- parity:O,E,N:偶校验,奇校验,无校验。缺省为N(无校验)
- databits:5/6/7/8,缺省为8
- stopbits:1:1个停止位;2:2个停止位。缺省:1
- xonlimit:如1000。缺省:0
- xofflimit:如1000。缺省:0
- readmincharacters:整数。缺省:0
- readtimeout:整数,需要保证为100及以上(毫秒,使用AccessPort工具,为-1可能读取不到,如西门子S7-200 PPI该参数为-1则会读取不到应答)。缺省:100
- ctsenable:整数。缺省:0
- rtsenable:整数。Windows下缺省:1,Linux下缺省:0
- dtrenable:整数,0:Disable,1:Enable,2:Handshake(Only In Win32)。Windows下缺省为1(handshake),Linux缺省:0
- flowcontrolinenble:整数,是否允许输入的软件流控 1:允许,0:禁止。缺省:0
- flowcontroloutenble:整数,是否允许输出的软件流控 1:允许,0:禁止。缺省:0
- modem:整数。缺省:0
- receiverenble:整数。缺省:1
- dsrenable:整数:Controls whether DSR is disabled or enabled (Win32)。缺省:0
- 示例:
- port=COM2;baudrate=9600;parity=E;databits=8;stopbits=1;ctsenable=1;rtsenable=1;dtrenable=2
测试串口
方法一,电脑使用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,发送上面查找到的有应答的协议数据给串口: