闫晓玲,王望龙,范晓志
(1. 北京工商大学 机械工程学院,北京 102488;2. 中国人民解放军装甲兵工程学院 装备再制造工程系,北京 100072)
基于Pro fi Bus-DP的物流生产线网络监控系统设计与实现
闫晓玲1,王望龙2,范晓志1
(1. 北京工商大学 机械工程学院,北京 102488;2. 中国人民解放军装甲兵工程学院 装备再制造工程系,北京 100072)
随着计算机技术、自动控制技术、网络通信技术的发展,各种分布式控制系统在工业生产中应用越来越广泛。本文所介绍的物流生产线(深圳某企业生产),现场各设备单机配有自己的控制系统、相关的控制卡,终端配有终端协调控制机,生产线中相关的硬件设备通过Pro fi Bus通讯模块连接在Pro fi Bus-DP现场总线上(如图1所示),所以设计相应的控制软件,分别运行在终端控制计算机和现场设备控制系统上,就可以实现对生产过程的集中监视管理和分散控制。在这个系统中,现场各设备控制系统与底层设备的通信以及终端控制计算机与现场各设备控制系统的通信是至关重要的环节,为此,用VB开发了本监控系统。
图1 系统的硬件构成
物流系统的硬件构成如图1所示,系统采用Pro fi bus-DP现场总线协议,Pro fi bus-DP是由西门子公司推出的一种开放式现场总线标准,用于现场级分布式自动化外设之间的高速数据传输。终端控制计算机通过现场总线网卡CP5613连接在总线上,自动化立体仓库和激光雕刻机通过高性能运动控制器(工控机)+CP5613连接在总线上,混合式流水线通过S7-200PLC+EM277 PROFIBUSDP模块的DP端口同CP5613卡通过屏蔽双绞线相连,构成整个PROFIBUS-DP现场总线网络。机器人具有RS485通讯接口,经过网络协议转换后就可以挂接到网络总线上,形成1:N通信方式。
网络监控系统分为服务器端(运行在终端控制计算机上)和客户端(运行在控制现场设备的工控机上),此监控系统中,终端控制计算机的主要任务是获取生产线上的信息,完成对生产过程的实时显示,出现故障时及时报警,并采取应急措施控制生产线的运行。现场设备控制系统的任务是对生产过程进行自动控制,同时把设备的实时状态通过网络传给终端控制计算机,发生故障时按上位机命令执行[1]。
在Windows环境下,编写网络通信软件有多种编程语言可以使用,但用Visual Basic编写通信软件十分方便,编程工作量小,可视化程度高,尤其是提供了通信控件MSComm和套接字控件WinSock可方便地实现计算机与PLC的数据通讯以及不同计算机之间的网络通信。
服务器端程要能够读取现场设备的信息和向现场设备发送控制命令。现场设备可以分成两大类,一类是由工控机控制的,一类是由PLC控制的,所以服务器端程序要实现与客户端程序(运行在控制现场设备的工控机上)的通信,程序设计流程图如图2所示,因为是1:N的通信方式,所以采用动态WinSock控件数组来实现通信。WinSock控件在计算机中提供了一个通信端口,应用程序可以通过这个端口与任何一个具有WinSock接口的计算机通信。应用程序在网络上传输、接收的信息都通过这个WinSock接口来实现。另外服务器端程序还要实现与PLC的通信,程序设计流程如图3所示,采用MSComm控件实现通信[2],MSComm控件是Microsoft公司提供的简化的Windows下串行通讯编程的ActiveX控件,该通信控件提供了使用RS232开发串行通信软件的细则,开发通信软件只需利用该控件的几个重要属性设置好通信口(参见3.3程序代码),按照通信协议,待PC机与PLC握手成功后,可按照特定的数据格式通过output属性和input属性来送和接收信息。
图2 服务器端与客户端通信程序设计流程图
图3 服务器端与PLC通信程序设计流程
服务器端程序与PLC的通信实际上是计算机与PLC的通信模块之间交换命令和响应,服务器端程序具有初始传送优先权,所有的通信均由服务器来启动,PLC始终处于被动响应状态[3]。S7-200PLC支持多种通讯模式,如点点接口(PPI)、MPI(多点接口)等,自由通信方式,在自由口模式下,可由用户控制串行通信接口,通信协议完全由梯形图程序控制。本文主要讨论自由通信方式,其关键指令格式如图4所示[4]。
图4 关键指令的格式
XMT 指令将指定存储区内的数据通过指定端口传送出去,当存储区内最后一个字节传送完毕,PLC 将产生一个中断,命令格式为:XMT TABLE,PORT,其中PORT 指定PLC 用于发送的通信端口,TABLE 为是数据存储区地址,其第一个字节存放要传送的字节数,即数据长度,最大为255。RCV命令从指定的端口读入数据存放在指定的数据存储区内,当最后一个字节接收完毕,PLC也将产生一个中断,命令格式为 RCV TABLE,PORT,PLC 通过PORT 端口接收数据,并将数据存放在TBL数据存储区内,TABLE 的第一个字节为接收的字节数。
1)初始化代码,指定与客户端通信的协议端口号并侦听该端口,初始化与PLC的通信端口。
2)向PLC发送控制命令[5]
3)接收数据
PLC只有在接收到上位机发送的信息后,才发送数据,所以将发送完成后收到的第一个字节作为接收报文的开始,直到串口无接收事件时认为报文结束。
客户端程序能够通过通信端口读取监控对象的状态信息,并且能够把这些信息发送给服务器程序,同时接收服务器程序发送的控制现场设备的信息。客户端程序和服务器端程序采用TCP/IP通信协议,TCP协议是面向连接的可靠的传输协议,可确保物流生产线上数据传送的次序和传输的可靠性。客户端程序与服务器端程序通信要处理以下过程:1)调用WinSock控件创建一个客户端套节字,并连接到服务器端(必须和服务器端的端口号一致);2)建立和服务器的连接;3)发送和接收信息;4)最后关闭通信套接字。客户端程序与底层设备通过串行端口进行通信,相应的程序设计类似于服务器端与PLC的通信程序,所以不再赘述。
为了使服务器与PLC建立起正确的通信,必须预先在PLC中设置下述参数。
通信方式:在特殊寄存器SM0.7中设置,SM0.7为0时,模式开关处于TERM位置,SM0.7为1时,模式开关处于RUN位置,而只有模式开关处于RUN位置时,才能进行自由口通信。
通信参数:SMB30是自由口模式控制字节,设置的参数有数据长度、停止位位数、波特率、校验形式和协议方式(要与计算机端口的参数相同)。设置好通信参数后,编写PLC通信梯形图程序即可实现与服务器程序的通信。
主程序
分别将服务器端程序和客户端程序运行在终端控制机和现场设备控制机上,实际情况表明,该网络监控系统能方便地实现物流生产线上终端控制机和多台现场设备间的联网通信,且运行稳定可靠,能很好地满足对物流生产线进行集中监视管理和分散控制的要求,具有一定的应用推广价值。
[1]华路光,方清城. 基于RS485总线的分布式PLC监控系统通信设计[J].制造业自动化, 2009, 31(8):15.
[2]李长林.Visual Basic串行口通信技术与典型实例[M].北京:清华大学出版社, 2006.
[3]田娟娟,蔡光起,史家顺,王晋生.基于VB的PC机与S7-200PLC自由口通信的实现与应用[J].机械设计与制造.2006.7:116.
[4]徐慧,卢艳军,主编. 数控机床电气及PLC控制技术[M].北京:国防工业出版社, 2006.
[5]李斌,赵海涛,王亚杰. S7- 200 与PC.实时通信方法的研究[J]. 微计算机信息, 2007, 23(8-1):75.
Design and implementation of logistics production line network monitoring system based on Pro fi Bus-DP
YAN Xiao-ling1, WANG Wang-long2, FAN Xiao-zhi1
介绍了由工控机、PLC、高性能运动控制器构成的基于ProfiBus-DP协议的分布式网络监控系统,着重阐述了系统的硬件连接、通信协议和利用VB实现物流生产线终端控制计算机与现场各设备通信的方法,并给出了详细的程序设计过程。该系统对于用计算机实现集中监控多个现场设备提供了可靠的手段。
ProfiBus-DP;网络监控;通信;程序设计
闫晓玲 (1974-),女,山西运城人,副教授,硕士,研究方向为先进制造技术及CAD/CAM。
TP273.5
A
1009-0134(2011)1(上)-0011-04
10.3969/j.issn.1009-0134.2011.1(上).03
2010-07-17
北京市自然科学基金项目(4062011)。