1 引言
PLC以其高可靠性、适应工业过程现场、强大的联网功能等特点被广泛使用,是机电一体化的发展方向。Windows以图形化界面给用户提供了良好的人机界面,并且被很多人所掌握,所以我们考虑使用PLC作为工业控制下位机,使用PC作为上位机进行人机交互界面。这就涉及了使用PC如何控制PLC,PC如何与PLC进行通讯的问题。
以Schneider公司的TSX Neza系列PLC为例,上位PC机与PLC通讯进行一些探讨。
2 计算机与Neza PLC通讯方式。
Neza系列PLC提供了三种通讯方式,分别为:Modbus方式、ASCII方式、Unitelway方式。
(1) Modbus方式
MODBUS是Schneider公司为该公司生产的PLC设计的一种通信协议,通过24种总线命令实现PLC与外界的信息交换。具有Modbus协议的PLC可以方便的进行组态。
使用Modbus进行PLC通讯时需要使用PLC的扩展口,而多个PLC进行通讯时也要使用这唯一的扩展口,也就是如果使用Modbus进行通讯时PLC无法与其他PLC进行通讯。Sch
公司早期产品不支持该协议。
(2) Unitelway方式
Unitelway是基于Schneider公司的Xway通讯协议的,经过发展现在Neza使用的是Unitelway V2,它与UnitelwayV1.1基本兼容。通过Unitelway提供的各项命令我们可以方便的访问PLC的各项资源www.cechina.cn,对PLC进行各项操作。在Modicon公司NAZA系列PLC中编好的程序就是使用Unitelway下载入PLC。Unitelway使用编程口并不占用扩展口。在通讯方式中Unitelway是最为理想的方式,但是Unitelway协议并没有完全公开,一般用户无法使用。
(3) ASCII方式
ASCII码方式在很多PLC上都可以使用名称也不一而足:ASCII方式、自由口模式等等。在自由口模式下,通信协议是由用户定义的。用户要根据自己的需要确定自己和PLC的通讯协议。自由码也是使用编程口与上位机进行通讯CONTROL ENGINEERING China版权所有,并不占用扩展口。但是它的通讯协议需要自己确定,需要在PLC编程和上位机中确定唯一的通讯方法。
3 通讯过程
每一次PC机和PLC数据交换有3个步骤控制工程网版权所有,说明如下:
(1) 通讯是由在PLC中确定的时间触发, 发送一组字符给PC机
在Neza系列PLC使用ASCII通讯时,通讯是由在PLC中确定的时间触发的。在确定的时间到达后www.cechina.cn,PLC要求数据发送时,PLC会发送一组字符过去。通常该字符第一个字符就是前导码,PC机根据前导码确定是否应该读取该字符串、该字符属于哪一个命令集合,以及用什么格式去读取字符串等。前导码不会是一般的符号字符,通常是一些不可见的字符(位于ASCII码表的前30个)或极少被使用的符号字符,这是因为避免数据字符与前导码一样而发生错误判断。在前导码之后是站号,通常是以两个字符代表,单纯以RS232连接的单一设备也许不需要站号的设置,但是如果以RS485进行网络连接,就需要用站号来辨认命令是属于那一个设备。站号后面就是设备解读的命令或者数据。(本例为单机不需要站号)一般的通讯都需要进行数据的校验,在Neza系列PLC使用ASCII通讯中,PLC没有对数据的处理能力,所以没有设置校验位。为了保证通讯的正确www.cechina.cn,可以在PC中对数据进行一定处理。在数据后一般为这个帧的结束码,来保证数据帧的完整性。
(2) PC收到要求的字符串,并判读
当PC收到要求的字符串,并经过判读确定后,同样按照相同的协议,按照用户需要对PLC进行的操作送出数据,数据被送出时会在数据之前加上前导码和站号。数据中携带了PC机对PLC要求的操作。
(3) PLC将数据发给PC
在 PLC收到PC发来的数据包后经过判读确定后,进行一定的操作然后在触发时间到达后将PLC的状态写入数据发给PC,这样就完成了一次数据交换。
4 应用实例
下面介绍所开发的系统是由下位机(PLC)-上位机(PC)组成,系统框图如图1所示。程序使用VB6,整个程序设计分为四部分:上位机程序设计;下位机程序设计;通讯硬件设计;通讯协议。
图1 系统框图
(1) 通讯格式的确定
作者使用的通讯参数:9600波特率,8位数据位、1位停止位,奇校验。本实例中定义整个帧长22个字节。
帧格式:
(2) 上位机程序设计
上位机程序设计包括两个模块:用户应用程序和串行通讯程序.用户应用程序是图形化的供用户操作的界面。串行通讯程序是底层运行的程序,它负责与下位