基于PC与PLC的测控系统通信设计与实现
2017-09-28刘云
刘云
(四川信息职业技术学院,四川广元628017)
基于PC与PLC的测控系统通信设计与实现
刘云
(四川信息职业技术学院,四川广元628017)
近年来,随着微型计算机的迅猛发展与普及,人们对测控系统的自动化程度提出了更高的要求。而作为测控系统的核心,保证数据传送的准确性至关重要。针对在工业控制领域应用广泛的上下位机集散测控系统,设计采用串行通信的通讯方式,实现上位机发送指令、检测PLC状态、接收PLC发送的信息等功能。该文对通信的基本单元“帧”设计了协议格式,使用异步传送的方式,提出并实现了一种基于PLC与PC的测控系统的通信协议。
集散测控系统;串行通信;帧;异步传送
I/O、CPU设备之间有并行和串行两种通信方式。并行通信方式一般发生在PLC的内部各元件之间、主机与扩展模块或者近距离智能模板的处理器之间,因此,并行通信方式比较适合于近距离传送的场合。串行通信多用于PLC与计算机之间,因此在实时控制方面一般选用串行的通信方式。本文以基于PC与PLC的测控系统为背景,以数据帧协议为模型,采用异步传送方式,结合西门子s7-200PLC的特点,提出一种规范的串行通信协议,实现PC与下位机传送数据的准确性及安全性。
1 PLC通信技术及通信网络接口设计
1.1 PLC通信技术
PLC的用户程序通过串行通信接口实现数据通信。在PLC的通信模块上不仅集成了PLC的串行接口,还包含了系统程序以及硬件资源,作用是在PLC和PC间建立数据通信的通道,并且能够控制工程方式以及改变I/O状态等。PLC与PC的串行通信原理如图1所示。
图1 PLC通信原理图
1.2 网络接口设计
本文使用S7-200系列PLC,CPU为224XP型,通信端口为RS-485接口。由于计算机的通信端口为RS-232接口,因此要实现PLC与计算机的通信,就必须通过RS-232/RS-485转换器,计算机的RS-232接口经过转换后才能与PLC的通信端口连接,这种通信方式可以实现远程通信,最远距离可达1.2KM,具体硬件连接图如图2所示。
2 通信模式及通信协议
本文采用自由口通信模式,该模式对用户是完全开放的,用户自行定义通信协议的格式,由梯形图程序进行控制,计算机与PLC通信的基本单元是“帧”。
图2 硬件连接图
进行通信之前需要先初始化通信端口,S7-200PLC主要通过对SMB30等特殊寄存器的设置来实现初始化。SMB30各个位如表1所示,当mm=0时即PLC为自由口通信模式。
表1 SMB30各个位
其中,pp表示奇偶位的选择;d表示字符的数据位;bbb表示自由口波特率;mm表示协议的选择。
PLC接收指令的格式如表2所示:
表2 PLC接收指令的格式
1)起始字符:指令开始的标志。
2)指令类型:读命令或写命令。
3)目标寄存器地址:用4个字节来表示,前两个字节表示寄存器类型,后两个字节表示寄存器号。
4)读、写字节数[1]:执行读命令时,读入从目标寄存器开始的连续7个字节的数据信息;执行写命令时,写入的数据以十六进制的ASCII码表示,此时的写字节数即ASCII码所占用的字节数。
5)数据区[1]:在指令数据帧中,同样,将写入的数据以十六进制ASCII码的格式表示,本系统中约定的字节长度为7个字节。
6)结束字符:指令的结束标志为结束字符。PLC返回数据的指令格式如表3所示:
表3 PLC返回数据的指令格式
1)起始字符同上部分。
2)状态信息:反馈PLC对PC发送的指令的执行状态。
3)BCC校验码同上部分。
3 通信功能设计与实现
本文主要系统组成:西门子S7-200PLC、R485/R232接口转换器、编程电缆、通讯界面。
3.1 通信设计
PC机与PLC的通讯程序流程图如图3所示:
图3 PC与PLC的通讯流程图
系统通信控制程序使用的控件是MSComm控件。该控件提供了两种通信方法:①事件驱动。通过MSComm控件的On⁃Comm文件进行通信事件的捕获,并且对发生的错误进行处理,commevent值返回关于通信事件或者错误信息的数字代码,是非常有效的处理串行端口交互的方式;②查询方式。查询串口的属性来获取事件,本质属于事件驱动。
MSComm控件只有一个Oncomm事件。当通信发送错误或者产生某些事件时会引发Oncomm事件,并引起Oncomm属性值的改变。在与PLC进行通信的过程中,利用MSComm控件自动接收由收计算机发送给PLC的信息。
3.2 通信实现
PLC与PC的通信需要完成初始化、数据接收、数据传送等。
1)PLC通信执行
PLC的通信执行程序流程图如图4所示。
一般情况下,PLC接收到PC发出的指令后,应该实时将反馈信息返回给PC,PC依据PLC的反馈信息采取适当的措施。例如,当PLC发生指令接收错误时,PC要重新发送指令。完成反馈信息的发送后,产生发送完成中断,中断事件调用程序XMTcomplete来进行后续处理,包括复位标志位、寄存器清零等。
2)数据传送
上位机向下位机PLC发送的指令或参数。通信协议格式在表2中已给出。根据已定义好的通信协议格式,需要先把协议转换为byte字节型数据,在本文协议中定义发送7个字节的数据,通过MSComm控件中的Output属性将这些字节数据写入发送缓冲区中,PLC通过字符中断控制从缓冲区中读取这些字节数据,读取完成后进行译码,然后执行相应的指令操作。
3)数据接收
在下位机接收到上位机发送的数据后,将传感器采集到的模拟量通过A/D转换电路转换为数字量信号传送给上位机PC,上位机PC通过通信串口接收的数据暂时存储在缓冲区中,然后从缓冲区中根据定义的通信协议格式读取数据,舍弃不符合协议的数据。读取完成后经过数据转换处理将数据显示在界面上。上位机PC的数据接收流程图如图5所示。
图5 数据接收流程图
4 结束语
本文设计并实现了上位机(PC)与下位机(PLC)之间的通信协议。实现两者之间的通信需要解决的系统架构及通信机制等问题,并将该协议应用到测控系统中。经过大量试验表明,该串行通信协议能有效保证传输数据的准确性和安全性,因此可广泛应用于测控系统中。
[1]翟红程,俞宁.西门子S7-200PLC应用教程[M].北京:机械工业出版社,2007.
TP311
A
1009-3044(2017)24-0208-02
2017-07-06
四川省大学生创新创业训练计划项目(201613815088);四川省教育厅科研项目(17ZB0388)
刘云(1989—),女,硕士,研究方向为软件技术。