西门子S7-200串口通讯研究与应用实例
2016-03-02卢建宁孟祥宇栗中夏张世超
姜 川,卢建宁,孟祥宇,栗中夏,张世超
(北京机械工业自动化研究所,北京 100120)
0 引言
二十世纪六十年代,世界首台可编程逻辑控制器(PLC),诞生于在美国DEC公司。七十年代,这一技术被日本和西欧一些国家引进,并得到了长足的发展。2015年政府发布的《中国制造2025》报告中提到,建设重点领域智能工厂/数字化车间,必将把PLC的应用推向新的高度。
西门子作为全球电子电气工程专业领头羊公司,其生产的小型可编程逻辑控制器S7-200系列,具有极高的稳定性、多种内置功能和强劲的通讯能力,在工业、农业、化工业等领域得到了广泛的应用。
1 串口通讯方式
S7-200本身配置了两个通讯/编程接口,具有Pointto-Point Interface模式、Multi Point Interface模式及自由口通讯三种通讯模式。三种方式均可实现与计算机的通讯,但MPI和PPI模式多用于对程序的编译与传输,自由口通讯方式更多的完成与第三方设备的通讯任务。
1.1 MPI通讯方式
Multi Point Interface(简称MPI)多点通讯,是一种保密的通讯协议。应用的系统对通讯速率要求不高、通讯量不大时,MPI通信不失为一种简约经济的通讯方式。其网络的通信速率为19.2Kbps~12Mbps,能够连接最高32个节点,通信距离亦可通过中继器来进行扩展。
1.2 PPI通讯方式
Point-to-Point Interface(简称PPI)点对点接口,是PLC中央处理器的默认通讯协议。其采用了一种主从式通讯方式,主站设备发出控制指令,从站设备响应,但从站设备不主动发出信息[2]。
1.3 自由端口通讯方式
选择自由端口通讯方式,编译者可以通过发送中断、接收中断、RCV指令、XMT指令来
控制通信端口的操作,用户可自行定义通讯协议。自由口除了可以连接组态工具监控PLC,也可以读写变量存储区(V区)、位存储区(M区)等存储区域内的数据。使用自由口通讯,可以将多种兼容RS232接口的设备连接到PLC上,应用更加灵活。
2 通讯实例
2.1 硬件配置
本例硬件配置依托于某型视觉检测系统,通过S7-200PLC本体的两个串口实现PLC与上位系统及下位数据采集设备之间的信息交互。具体为Port 0端口用于PLC与数据采集设备通讯,Port 1端口执行PLC与上位系统的数据交互任务。其他电平信号与PLC的过程映像寄存器(I/O)连接。
上位系统计算机串口与PLC串口均为RS485接口,可利用屏蔽电缆将两设备直接连接。
下位数据采集设备采用RS232接口,例如SYMBOL MS1204固定式扫码器。数据采集设备与PLC连接时需要信号转换。该信号转换通过RS 232/RS 485通信协议转换模块实现,PLC、转换器、扫码器的接线示意如图1所示。
图1 RS232/RS485转换器
2.2 程序设计
图2 通讯流程图
2.2.1 通讯端口设置
PLC串口设置自由口通讯方法,如表1所示。
2.2.1 使能中断
LD 系统位_始终为1:SM0.0
ATCH INT_8_FORT0接收:INT8, 8
ATCH INT_9_PORT0发送完:INT9, 9
ENI
LD 系统位_始终为1:SM0.0
ATCH INT_25_PORT1接收:INT25, 25
ATCH INT_26_PORT1发送完:INT26, 26
ENI
2.2.2 端口0接收数据
当接收字符不是回车、换行时,当前中断接收的字符拼接在接收字符串的最后一个,并将指针VD690、接收计数器VW694分别自加1
图3 数据采集算法流程图
LDB<> SMB2, 13
AB<> SMB2, 10
MOVB SMB2, *VD690
INCD VD690
INCW VW694
端口0接收到回车时,表示接收结束,置位PORT0接收完成标志M4.3,清空入口SN条码区;将接收字符计数器VW694赋给入口SN条码区的首字节VB1500、将接收区VB660的接收字符串赋给入口SN条码区的字符区;对指针、接收字符计数器设定初始值。
LDB= SMB2, 13
LPS
S 状态_PORT0读码接收完成:M4.3, 1
BMB 空字串长度:VB1900, 入口条码_SN码_长度:VB1500, 30
ITB VW694, 入口条码_SN码_长度:VB1500
AENO
BMB VB660, 入口条码_SN码_起始字:VB1501, 入口条码_SN码_长度:VB1500
LPP
MOVD &VB660, VD690
表1 端口0、端口1的初始化设置
AENO
MOVW +0, VW694
2.2.3 端口1接收数据
当接收字符不是;时,当前中断接收的字符拼接在接收字符串的最后一个,并将指针VD650、接收字符计数器VW654分别自加1。
LDB<> SMB2, 59
MOVB SMB2, *VD650
INCD VD650
INCW VW654
PLC检测到;时PORT1接收结束,将PORT1接收完成标志M4.4置位;清空入口SN条码区;将接收字符计数器VW654以字节的形式存在VB640中,对指针VD650、接收字符计数器VW654赋初值。
LDB= SMB2, 59
S 状态_PORT1视觉接收完成:M4.4, 1
MOVB 0, *VD650
ITB VW654, VB640
MOVD &VB641, VD650
AENO
MOVW +0, VW654
PORT1的接收数据最终输出在VB640开始的若干字节中,且VB640存放的是该字串的长度。因此字串长度赋值对像是VB640,而对指针VD650赋初值时,是指定VB641的地址作为VD650的初值的,这一点与PORT0不同。
2.2.4 端口1发送数据
使用XMT指令通过PORT1向视觉PC发送拍照前查询型号指、拍照/坐标指令等。此处以发送预先设置好的复位指令”RESET;”为例;
LD 视觉发送复位:V15.2
EU
XMT VB600, 1
R 状态_PORT1视觉发送完成:M4.6, 1
发送完成触发中断26,置位PORT1发送完成状态位M4.6。
LD 系统位_始终为1:SM0.0
S 状态_PORT1视觉发送完成:M4.6, 1
3 结论
本文对S7-200的串口通讯方式进行分析研究。结合理论,应用性价比高、易操作的器件,将自由通讯模式应用到工程实例中。经过工程验证,此种通讯方式编程简单,易于移植,运行稳定,安全可靠。
[1] PLC的发展历程浅析[OL].中国工控网,2014.
[2] 潘必胜.西门子PLC的PPI通讯协议协议研究[J].单片机与嵌入式系统应用,2009(12).
[3] 西门子S7-200可编程控制器系统手册,2008.