APP下载

基于自由口模式的S7-200 PLC与上位机的通信*

2011-08-14余中正夏永胜贡马林

网络安全与数据管理 2011年13期
关键词:PC机工控通信协议

余中正 ,武 玉 ,夏永胜 ,贡马林

(1.中国科学院等离子体物理研究所,安徽 合肥 230001;2.合肥工业大学 机械与汽车工程学院,安徽 合肥 230009)

西门子公司的SIMATIC S7-200系列PLC是广泛适用于中小型设备控制的工业可编程控制器,以其可靠性高、丰富的指令和内置功能、通信能力强、性价比较高等特点,在工业控制领域中得到越来越广泛的应用[1]。在本文的控制系统中,PLC作为下位机完成现场各种信号和数据的采集、运算和控制[2-4]。工控PC机作为上位机可提供人机交互界面,实现数据的处理以及现场数据的实时显示等监视和远程控制等功能。S7-200系列的PLC可以在四种通信模式下工作:PPI模式、MPI模式、PROFIBUS-DP模式和自由口通信模式。其中,PPI和MPI是西门子专门开发的通信协议。PPI协议用于点对点接口,是一个主/从协议。MPI协议适用于多点接口,可以是主/主协议或主/从协议。PROFIBUS-DP是西门子支持的现场总线网络[5]。而大多数用户则是选用对用户完全开放的自由口通信模式。在自由口通信模式下,通信协议是由用户定义的。用户可以用梯形图程序调用接收中断、发送中断、发送指令(XMT)、接收指令(RCV)来控制通信操作。本设计采用自由口方式,重点介绍工控PC机与主控PLC的通信原理与实现。

1硬件组成

ITER导体穿缆测力测长控制系统的框图如图1所示。将测力传感器和测长编码器通过信号线与PLC相连,这样穿缆过程中的拉力数据和行程数据就能够实时写入PLC的寄存器中。PLC通过通信电缆与PC机的串行通信口相连,在PC机中设置VB的MSCOMM控件来实现串口通信,这样PC机就能读取PLC寄存器中的拉力和行程数据,对穿缆过程进行实时监控。

图1 ITER导体穿缆测力测长控制系统硬件框图

2工控PC机与主控PLC的自由口通信协议

工控PC机标准的串口为RS232C,S7-200系列提供的串口为RS485,利用西门子公司提供的PC/PPI电缆,可以方便地实现S7-200系列PLC与PC之间硬件连接[1]。

上位机向PLC发送指令(即指令帧),指令帧格式如图2所示,由起始字符、指令类型、目标 PLC站地址、目标寄存器地址、读/写字节数、待写入的数据(当从 PLC读数据时,具体数据部分为空)、校验码和结束字符组成。

图2 上位机指令格式

例如写VB100开始的两个字节的指令帧如下:83H,06H,08H,00H,00H,64H,30H,32H,31H,32H,33H,

34H,35H,36H,115H。下面按顺序说明每段字节的含义:

83H为字符"S"的ASCII码,表示指令的开始,在本设计中是固定的。

06H表示指令的类型,为写操作。在本文中定义05H代表读操作,06H代表写操作。

08H,00H表示要写PLC中V存储区的内容。

00H,64H表示要从VB100开始写。

30H,32H表示要写两个字节。

31H,32H,33H,34H 表示 VB100写入 12H,VB101写入34H。

35H,36H是校验和。

115H为字符"s"的ASCII码,是结束字符,表示指令的结束,在本设计中是固定的。

一条指令除包含数据外,还包含必要的控制字 (如起始字符、结束字符、指令类型等)。如果指令中的数据直接以其原本的形式传输,则不可避免地会与指令中的控制字发生混淆。为了避免这种情况的发生,可以用文本来传送二进制数据。通过16进制ASCII码的格式来描述数据,每个二进制的字节都可以表示成一对ASCII编码,这对编码表示这个字节的两个16进制字符。这种格式可以表示任何的数值,仅仅使用ASCII代码的30H~39H(表示 0~9)和 41H~46H(表示 A~F)。 ASCII码的其余部分可以用作控制字。这样就避免PLC因接收到数据中错误的标志位而停止接收的错误。

在PLC接到上位机指令后,会向上位机发送一个反馈消息,即反馈帧,反馈帧格式如图3所示。其组成与指令帧基本相同,但它是由PLC发出的,所以具体数据段不同,在向PLC写数据时,反馈帧的具体数据部分为空,而在从PLC读数据时,具体数据部分不能为空。

图3 反馈帧格式

例如,PLC接收到写VB100开始两个字节后的发送反 馈 帧 如 下 :83H,02H,08H,00H,00H,64H,30H,32H,35H,36H,115H。下面按顺序说明每段字节的含义:

83H为字符"S"的ASCII码,与指令帧相同。

02H为状态信息,表示接收到上位机指令后PLC的执行状态。在本文中02H表示写入正确,相应地规定01H表示读取正确,03H表示BCC校验码错误,04H表示指令不合法。

08H,00H表示要写入PLC中V存储区的内容,与指令帧相同。

00H,64H表示要从VB100开始写,与指令帧相同。

30H,32H表示要写两个字节,与指令帧相同。需注意的是,此时具体数据段为空。

35H,36H是校验和,因无数据段,与指令帧可能不同。

115H为字符"s"的ASCII码,表示此帧结束,与指令帧相同。

3工控PC机软件设计

工控PC机端通信程序流程图如图4所示。发送指令帧后,注意查询反馈帧,如一定时间内没有接收到,应再次发送,两次无响应,则要提示通信故障或PLC不存在。

图4 工控PC机通信程序框图

在工控PC机中可采用VB来实现上位机监控程序,通过MSCOMM控件就可控制串口通信[6],主要参数设置代码如下:

4主控PLC软件设计

CPU224XP自由口通信模式的初始化是通过对特殊存储字节SMB30(PORT0)写入通信控制字来设置通信的波特率、奇偶校验、停止位和数据位数[7]。SMB30中的内容如下:

PP:奇偶选择。00为无奇偶校验;01为偶校验;10为奇校验;11为保留。

D:每个字符的数据位。0为每个字符8位;1为每个字符7位。

BBB:自由端口波特率。本设计为010,表示波特率为9 600 b/s。

MM:协议选择。00为点到点接口协议的PPI从站模式;01为自由端口协议;10为 PPI主站模式;11为保留。缺省设置为00,即PPI从站模式。

本文中传输速率固定为9 600 b/s,数据格式由1位起始位、8位数据位、无校验位、1位停止位组成。

配置自由口通信模式后,就可以进行数据的收发了。PLC通信程序框图如图5所示。接收数据指令RCV的命令格式为RCV TABLE,Port0,RCV指令可以接收一个或多个字符,一次最多接收255个字符。发送数据指令XMT的命令格式为XMT TABLE,Port0,激活发送缓冲区TABLE中的数据。数据缓冲区的第一个数据指明了要发送的字节数,最多有255个字符的缓冲区。

图5 PLC通信程序框图

通信程序的设计需遵循一定的规则,例如,中断通信处理程序要短小精悍,要避免XMT与RCV指令在一个端口同时执行[8]。本设计采用主从方式通信,PC设为主机,PLC设置为从机。只有PLC接收到指令帧后,才可能根据接收数据情况发送反馈帧。为简化程序设计,PC机只发出读指令和写指令两种指令帧。若为读指令,PLC准备好发送数据后执行XMT指令;若为写指令,PLC先把数据写入指定存储区,准备好应答数据后同样执行XMT命令;若接收到错误帧(如校验错误及不能识别的命令),PLC准备相应标志数据执行XMT指令。

主要代码如下:

S7-200自由口通信方式使用户可以自己定义PLC指令通信协议,与任何公开通信协议(如RS-422或RS-232C)接口设备进行通信,使通信范围大大增加,控制系统配制更加灵活。本通信程序用于ITER导体穿缆测力测长监控系统,PLC完成数据采集及现场控制,工控PC机实时显示导体穿缆的速度及行程,同时以梯形图和通信控件显示动作过程,便于监控及故障诊断,得到用户好评。本文设计的通信协议也可用于其他控制系统的监控。

[1]SIEMENS公司.SIMATIC S7-200可编程控制器系统手册 [M].http://www2.ad.siemens.com.cn/download/Upload/AS/manual/1109582.pdf,2008-08-01.

[2]吉顺平.西门子 PLC与工业网络技术[M].北京:机械工业出版社,2008.

[3]刘杰,阳林,陈超丽.三菱 FX2N系列PLC与 PC通讯的简易实现[J].制造业自动化,2006(1):65-67.

[4]陈明意.基于VC6.0的PC与FX2NPLC通信的实现[J].武汉工业学院学报,2005,24(4):14-16.

[5]丁莉君,李宏燕.自由口模下S7-200 PLC与上位机的通信[J].机床电器,2009(1):26-28.

[6]汤光华,吴青.自由口模式下S7-200 PLC与上位机的通信[J].微计算机信息,2008(24):62-64.

[7]刘红兵.S7-200自由口通讯的实现及应用[J].PLC&FA,2009(2):58-62.

[8]李绍民,潘登.S7-200 PLC与上位机的通信[J].大连民族学院学报,2009,11(3):209-211.

猜你喜欢

PC机工控通信协议
基于三菱FXPLC的感应淬火机床与PC机的串行通信实现
工控速派 一个工控技术服务的江湖
工控速浱 一个工控技术服务的江湖
VC.NET下实现dsPIC单片机与PC机的通信
排除OLT设备登录故障
热点追踪 工控安全低调而不失重要
基于DMX512通信协议的多路转发器设计与研究
基于攻击图的工控系统脆弱性量化方法
基于NS-3的PLC多频通信协议仿真平台设计与实现
VIVID3彩色超声仪结构原理及维修