随着计算机与通信技术的发展,PLC各种模块的多样化和信息化,由PLC作为基本控制单元的分布式控制系统在自动化领域中广泛应用,迫切需要一种总线能适合远距离的数字通信。在RS422标准的基础上,EIA研究出了一种支持多节点、远距离和接收高灵敏度的RS485总线标准。EIA曾经在它所有标准前面加上RS前缀(英文RcommendeStandard的缩写),因此许多工程师一直沿用这种名称,因为RS485的远距离(1200m)、多节点(32)以及传输线成本低的特性,使得EIA的RS485成为工业应用数据传输的标准。
我厂18条电动执行机构调试线,分布在三个厂房的若干区域,每个调试线由一台PLC与HMI控制,为了将调试数据归口管理,并判断调试结果的正确性,对调试线进行监控,18台PLC通过RS485总线与计算机连接起来,构成一个分布式监控系统,通过数据通信使计算机和PLC实现数据共享,完成对调试过程的集中管理和分散控制。计算机与PLC各个子站的的通信是系统的重要环节,本文详细论述了基于RS485总线,利用VB开发了上位机通信系统,编写了PLC自由口的通讯协议的设计与实际应用方案。可以借鉴为各种上位机、PLC、HMI等通信系统设计的应用范例,同时可作为检测技术、自动化设计等课程的工程项目训练与教学的平台。
1RS485网络构成RS485标准采用有平衡式发送,差分式接收的数据收发器来驱动总线,与RS422一样,可以将多个(多为32个)RS485接口互连,而其连接更简单,只需将各个接口的“+”端和“+”端相连、“-”端和“-”端相连,连接的两根线就是RS485的“物理总线”。这些相互连接的RS485接口的物理地位完全平等,在逻辑上取一个为主导地位,其他为从属地位。在通信时,同样采用主呼叫,从应答的方式。
控制系统的硬件构成如图1所示,上位机为计算机,下位机采用西门子公司S7-200系列PLC,各PLC通过通信口0直接挂在RS485总线上,上位机通过RS232/485转换器与RS485总线相连,形成1:N通信方式。控制系统中,上位机的主要任务是获取调试线上的数据信息,完成对调试过程的监控。下位机的主要任务是对调试过程进行自动控制,将调试数据发送给上位机,并按上位机命令执行。
图1网络图
2计算机与PLC的通信上位机与PLC的通信实际上是计算机与PLC的通信模块之间交换命令和响应,下位机具有初始传送优先权,将所有调试数据发送给上位机,上位机根据收到的数据判断哪个调试线发出的数据,对数据分析后响应回传数据与命令,下位机只接收发送给自己的数据。通信以“帧”为单位进行,帧分为数据帧和响应帧两种。数据帧由PLC发送给上位机;响应帧为上位机接到数据帧后自动向PLC发出的命令与判断信号所有的指令码、字符和数据均以十六进制码发送和接受。
S7-200系列PLC通信模式有两种:一种是点对点(PPI)通信协议,用于PLC与其编程器或西门子公司的人机接口产品之间的通信;另一种是对用户完全开放的自由口模式(freeportmode),由用户自行规定通信的协议。PPI模式只能在PLC停止方式(STOP)下通信,而自由口模式只能在PLC运行方式(Run)下通信,我们采用自由口通信方式在进行通信之前,应先对串口初始化。对S7-200PLC的初始化是通过设置特殊标志位SMB30来实现的。
2.1PLC的发送指令发送S7200系列PLC有专门的发送指令用于发送数据,格式为:
XMTTABLEPORT
XMTTABLEPORTTABLE为发送数据的字节数即数据长度,大为255。而要发送的数据必须存储在TABLE的后面。如TABLE的存储区域为VB600,要发送“MESSAGE”的数据存储形式如图2所示。PORT指定通信口,本项目设为0。当正在发送数据时,PLC特殊标志位SM4.5为0;发送完后,SM4.5为1。因此可通过判断SM4.5的状态来进行发送后处理。
图2PLC发送信息
如果有一个中断服务程序连接到发送结束事件上,在发送完缓冲区中的后一个字符时,则会产生一个中断(对端口0为中断事件9,对端口1为中断事件26)。