一、硬件连线
对于第三方的设备,如扫码枪、打印机、仪表等,为非标准的总线协议、自定义的协议,称之为自由口协议。在启动程序编写之前,首先要明确第三方的设备的串口类型。
1.通信接口
A. 第三方设备串口为232的SMART CPU本体串口为RS-485,欲与232设备进行通信,中间需加一个232to485的转换器。常见连线如图1。
图1 RS-232设备
B. 第三方设备串口为485的
SMART CPU和第三方设备串口皆为485时,可用直连。常见连线如图2。
图2 RS-485设备
C. 第三方设备串口为422的
第三方设备串口为422的,需将422该为485接法。常见连线如图3。
图3 RS-422设备
在复杂的工业现场或长距离通讯的情况下,建议选择优质的总线连接器和电缆。亿维自动化的总线连接器自带终端电阻和偏置电阻,在此情况下,可提高通讯的稳定和抗干扰能力。
总线连接器和电缆,订货号如表4。
表4 总线链接器&电缆
3.为什么选择总线连接器和总线电缆
众所周知,网线有超五类和超六类之分,超五类传输带宽可高达1000Mb/s,但一般只应用在100Mb/s的网络中;超六类主要应用在千兆网络中,在传输性能上远远高于超五类网线标准。超五类,超六类的电缆直观区别就是电缆铜芯线径不同,超六类铜芯明显粗于超五类。
同理推测,亿维自动化的总线电缆,回路阻抗:<150R/KM,优于一般通讯电缆。线阻小,通讯距离长,抗干扰能力强。
亿维自动化的总线连接器,自带终端电阻和偏置电阻,同样可以提高通讯的质量。
建议组网方式如图5:
图5总线接头
终端和偏置电阻如图6:
图6 终端和偏置电阻
二、通信机制
了解清楚通信机制,理清程序思路,才能编程顺利。常见的通信机制如下:
A. CPU只接受不发送,即第三方设备只发送不接收。常见的如扫码枪。
B. CPU只发送不接收,即第三方设备只接收不发送。常见的如打印机。
C. CPU先发送,再接收,再发送,再接收。CPU通信机制类似主站机制,如Modbus RTU Master。
D. CPU先接收,再发送,再接收,再发送。CPU通信机制类似从站机制,如Modbus RTU Slave。
E.通信逻辑自定义。
三、通信报文
通信报文,即发送和接收的数据格式。如Modbus通信,通信格式有明确定义。通信的双方要按照约定的格式及长度发送、接收响应的数据。
CPU做主站,以Modbus RTU主站报文为例,CPU发送的数据格式如下:
而第三方设备,接收到CPU报文后,需响应的数据格式如下:
上面示例主要要说明的是,理解通讯双方约定的通讯数据每一个字节所代表的含义。只有理解清楚了数据的含义,才能对数据进行读取或封装。
四、PLC控制字
在编写程序之前,还有一项准备工作,理解定义串口/通讯方式的控制字。
A.串口控制字
SMB30 和 SMB130 分别组态通信端口 0 和 1 以进行自由端口操作,并提供波特率、奇偶校验和数据位数的选择。下图显示了自由端口控制字节。对于所有组态,都生成一个停止位。
SMB30\SMB130数据位格式:
SMB30\SMB130数据定义:
B.通讯控制字&状态字
五、PLC只收不发
A.主程序上电串口初始化
2#00 0 010 01 SMB30 8-N-1 9600 自由口
2#01110000 SMB87
接收数据的表头位为A5,表尾为5A
接收长度10个字节 SMB94
B. 打开接收完成中断
C. 触发接收指令,接收到的数据放置在VB200开始的寄存器区。
D. 接收完成中断程序中,打开接收。
控制字中,接收数据长度设为10,接收到的数据存放在VB201开始的10个字节,VB200为接收到字节计数器。
六、 PLC只发不收
A.串口初始化
B.组织要发送的数据
C.触发发送指令
起始字节即VB100为发送的字节长度
D.报文监控
发送长度不同时的报文
七、PLC先发后收
逻辑类似Modbus主站,也可用自由口模式,编辑Modbus 通讯。
A.串口初始化,一般要定义接收的字符长度,或结束字符,以判断接收结束。
初始化时,连接发送完成中断,接收完成中断。
B.组织发送数据
本例发送长度10个字节,VB100=10,VB100-VB110为发送的数据
C.程序逻辑
D.发送&超时判断
若超时,关闭接收,即复位SM87.7
超时标志位下降沿,重新打开接收,即置位SM87.7,并再次触发发送。
E.发送完成,打开接收
F.接收完成,再次触发发送
G.报文分析
发送完成,PLC未接收到数据,超时后继续发送。如报文前五行。
发送完成,PLC收到数据,立即触发下一次发送。如第六第7行报文。
八、PLC先收后发
逻辑和上一章节类似,逻辑类似Modbus 从站。
九、接收字符中断
串口初始化,可忽视接收字符长度,结束字符等,编程更灵活。
A.串口初始化
连接接收字符中断
B.组织发送报文,触发发送指令
接收字符中断,蒋接收到的数据存放至目标寄存器
十、问题排查
通讯异常时,建议从以下几个方面排查:
A.确保通讯电缆连接正确,参考第一章节,重点关注1.1章节。
B.确保通讯参数一致。
C.用电脑串口助手软件,监控通讯报文,定位是PLC没有发出数据,还是设备没有响应数据,参考第三章节。
监控通讯报文:将电脑485的A、B并联在通讯链路上,软件推荐串口助手。
图15 电脑监听