【VB开源代码栏目提醒】:本文主要为网学会员提供“基于ProfiBus_DP的物流生产线网络监控系统设计与实现 - 期刊论文”,希望对需要基于ProfiBus_DP的物流生产线网络监控系统设计与实现 - 期刊论文网友有所帮助,学习一下!
第33卷??第1期??2011-1上??【11】收稿日期2010-07-17基金项目北京市自然科学基金项目4062011。
作者简介闫晓玲 1974女山西运城人副教授硕士研究方向为先进制造技术及CAD/CAM。
0 引言随着计算机技术、自动控制技术、网络通信技术的发展各种分布式控制系统在工业生产中应用越来越广泛。
本文所介绍的物流生产线深圳某企业生产现场各设备单机配有自己的控制系统、相关的控制卡终端配有终端协调控制机生产线中相关的硬件设备通过ProBus通讯模块连接在ProBus-DP现场总线上如图1所示所以设计相应的控制软件分别运行在终端控制计算机和现场设备控制系统上就可以实现对生产过程的集中监视管理和分散控制。
在这个系统中现场各设备控制系统与底层设备的通信以及终端控制计算机与现场各设备控制系统的通信是至关重要的环节为此用
VB开发了本监控系统。
1 系统的硬件构成物流系统的硬件构成如图1所示
系统采用Probus-DP现场总线协议Probus-DP是由西门子公司推出的一种开放式现场总线标准用于现场级分布式自动化外设之间的高速数据传输。
终端控制计算机通过现场总线网卡CP5613连接在总线上自动化立体仓库和激光雕刻机通过高性能运动控制器工控机CP5613连接在总线上混合式流水线通过S7-200PLCEM277 PROFIBUSDP模块的DP端口同CP5613卡通过屏蔽双绞线相连构成整个PROFIBUSDP现场总线网络。
机器人具有RS485通讯接口经过网络协议转换后就可以挂接到网络总线上形成1N通信方式。
基于ProBus-DP的物流生产线网络监控系统设计与实现Design and implementation of logistics production line network monitoringsystem based on ProfBus-DP 闫晓玲1王望龙2范晓志1 YAN Xiao-ling1 WANG Wang-long2 FAN Xiao-zhi11. 北京工商大学 机械工程学院北京 1024882. 中国人民解放军装甲兵工程学院 装备再制造工程系北京 100072摘??要??介绍了由工控机、PLC、高性能运动控制器构成的基于ProfiBus-DP协议的分布式网络监控系统着重阐述了系统的硬件连接、通信协议和利用
VB实现物流生产线终端控制计算机与现场各设备通信的方法并给出了详细的程序设计过程。
该系统对于用计算机实现集中监控多个现场设备提供了可靠的手段。
关键词??ProfiBus-DP
网络监控通信程序设计中图分类号TP273.5 文献标识码A 文章编号1009-013420111上-0011-04Doi: 10.3969/j.issn.1009-0134.2011.1上.03 终端控制计算机高性能运动控制器自动化立体仓库混合式流水线高性能运动控制器激光雕刻机机器人ProfiBus-DP总线CP5613 CP5613 CP5613 EM277PROFIBUS-DPCP5613 S7-200PLC网络协议转换器图1 系统的硬件构成【12】??第33卷??第1期??2011-1上2 网络监控系统的总体
方案网络监控系统分为服务器端运行在终端控制计算机上和客户端运行在控制现场设备的工控机上此监控系统中终端控制
计算机的主要任务是获取生产线上的信息完成对生产过程的实时显示出现故障时及时报警并采取应急措施控制生产线的运行。
现场设备控制系统的任务是对生产过程进行自动控制同时把设备的实时状态通过网络传给终端控制计算机发生故障时按上位机命令执行1。
3 服务器端程序的设计3.1 编程语言的选择在Windows环境下编写网络通信软件有多种编程语言可以使用但用Visual Basic编写通信
软件十分方便编程
工作量小可视化程度高尤其是提供了通信控件MSComm和套接字控件WinSock可方便地实现计算机与PLC的数据通讯以及不同计算机之间的网络通信。
3.2 服务器端程序设计 服务器端程要能够读取现场设备的信息和向现场设备发送控制命令。
现场设备可以分成两大类一类是由工控机控制的一类是由PLC控制的所以服务器端程序要实现与客户端程序运行在控制现场设备的工控机上的通信程序
设计流程图如图2所示因为是1N的通信方式所以采用动态WinSock控件数组来实现通信。
WinSock控件在计算机中提供了一个通信端口应用程序可以通过这个端口与任何一个具有WinSock接口的计算机通信。
应用程序在网络上传输、接收的信息都通过这个WinSock接口来实现。
另外服务器端程序还要实现与PLC的通信程序设计流程如图3所示采用MSComm控件实现通信2MSComm控件是Microsoft公司提供的简化的Windows下串行通讯编程的ActiveX控件该通信控件提供了使用RS232开发串行通信软件的细则开发通信软件只需利用该控件的几个重要属性设置好通信口参见3.3程序
代码按照通信协议待PC机与PLC握手成功后可按照特定的数据格式通过output属性和input属性来送和接收信息。
服务器端程序与PLC的通信实际上是计算机与PLC的通信模块之间交换命令和响应服务器ii1加载WinSocki控件接受访问请求是初始化通信端口WinSock0监听通信端口有访问请求是否为新客户是否使用原来的WinSocki控件接受访问请求通过WinSocki发送、接收信息 程序结束否关闭所有WinSock控件图 2 服务器端与客户端通信程序设计流程图初始化同心端口N打开端口向PLC发送信息接收来自PLC的现场设备信息通信有效检查结果正确Y图3 服务器端与PLC
通信程序设计流程第33卷??第1期??2011-1上??【13】端程序具有初始传送优先权所有的通信均由服务器来启动PLC始终处于被动响应状态3。
S7-200PLC支持多种通讯模式如点点接口PPI、MPI多点接口等自由通信方式在自由口模式下可由用户控制串行通信接口通信协议完全由梯形图程序控制。
本文主要讨论自由通信方式其关键指令格式如图4所示4。
图4 关键指令的格式 XMT 指令将指定存储区内的数据通过指定端口传送出去当存储区内最后一个字节传送完毕PLC 将产生一个中断命令格式为XMT TABLEPORT其中PORT 指定PLC 用于发送的通信端口TABLE 为是数据存储区地址其第一个字节存放要传送的字节数即数据长度最大为255。
RCV命令从指定的端口读入数据存放在指定的数据存储区内当最后一个字节接收完毕PLC 也将产生一个中断命令格式为 RCV TABLEPORTPLC 通过PORT 端口接收数据并将数据存放在TBL数据存储区内TABLE 的第一个字节为接收的字节数。
3.3 关键
代码1初始化
代码指定与客户端通信的协议端口号并侦听该端口初始化与PLC的通信端口。
Private sub Form_Load Winsock10.LocalPort1300Winsock10.bind sckserver0.LocalPort ‘与本地端口绑定winsock10.listen ’侦听MSComm1. CommPort1 ‘使用串行口1MSComm1. Settings〃9600N81〃‘9600波特率无校验8位数据位1位停止位MSComm1. InBufferCount0 ‘清除接收缓冲区MSComm1. InputLen0 ‘输入时读取缓冲区的全部内容MSComm1. Rthreshold1 ‘每收到一个字符位引发oncomm 事件MSComm1. PortOpenTrue ‘打开通信端口End sub2向PLC发送控制命令5Private Sub SendCmdcommand as byte ‘command为具体的PLC操作指令Dim 输出命令1 To 1As ByteDoEvents输出命令1commandMSComm1. OutBufferCount0MSComm1. Output输出命令MSComm1. InBufferCount0End Sub3接收数据PLC只有在接收到上位机发送的信息后才发送数据所以将发送完成后收到的第一个字节作为接收报文的开始直到串口无接收事件时认为报文结束。
Dim rcv as ByteDim rcvlenth as integerPrivate Sub MSComml_OnCommDim rcvtemp As Byte ‘数据的暂存数组Dim i as IntegerRedim Preserve rcv100 As Byte ‘预设接收字符的数组最大101 字节Text1””Select Case MSComml.CommEventCase comEvReceiveRcvtempMSComml.Inputi MSComml.InputLenReDim rcvUBoundrcvtemp1 As ByteFor iLBoundrcvtemp TO UBoundrcvtemprcvlenthrcvlenth1 ‘rcvlenth为模块变量初始值为-1rcvrcvlenthrcvtempiNext iReDim Preserve rcvrcvlenth As ByteEnd SelectFor iLBoundrcv TO UBoundrcvText1Text1StrrcviNext iEnd SubXMTEN ENO TBLPORT 字符数起始字符结束字符数据区RCVEN ENO TBLPORT 【14】??第33卷??第1期??2011-1上4 客户端
程序设计客户端程序能够通过通信端口读取监控对象的状态信息并且能够把这些信息发送给服务器程序同时接收服务器程序发送的控制现场设备的信息。
客户端程序和服务器端程序采用TCP/IP通信协议TCP协议是面向连接的可靠的传输协议可确保物流生产线上数据传送的次序和传输的可靠性。
客户端程序与服务器端程序通信要处理以下过程1调用WinSock控件创建一个客户端套节字并连接到服务器端必须和服务器端的端口号一致2建立和服务器的连接3发送和接收信息4最后关闭通信套接字。
客户端程序与底层设备通过串行端口进行通信相应的程序设计类似于服务器端与PLC的通信程序所以不再赘述。
5 PLCT通信程序设计5.1 信参数设置为了使服务器与PLC建立起正确的通信必须预先在PLC中设置下述参数。
通信方式在特殊寄存器SM0.7中设置SM0.7为0时模式开关处于TERM位置SM0.7为1时模式开关处于RUN位置而只有模式开关处于RUN位置时才能进行自由口通信。
通信参数SMB30是自由口模式控制字节设置的参数有数据长度、停止位位数、波特率、校验形式和协议方式要与计算机端口的参数相同。
设置好通信参数后编写PLC通信梯形图程序即可实现与服务器程序的通信。
5.2 PLC主要程序主程序LD SM0.7OR SM0.1CALL SBR_0LDN SM0.7EUR SM30.01DTCH 23DTCH 9DTCH 10初始化子程序LD SM0.1MOVB 1609SMB30MOVB 16ECSMB87MO
VB 160SMB88MOVB 16FFSMB89MOVB 1000SMW92 ‘接收超时时间1SMOVB 200SMB94 ‘最大200字符ATCH INT_023ATCH INT_19ENIRCV
VB10006 结束语分别将服务器端程序和客户端程序运行在终端控制机和现场设备控制机上实际情况表明该网络监控系统能方便地实现物流生产线上终端控制机和多台现场设备间的联网通信且运行稳定可靠能很好地满足对物流生产线进行集中监视管理和分散控制的要求具有一定的应用推广价值。
参考文献1 华路光方清城. 基于RS485总线的分布式PLC监控系统通信设计J.制造业自动化 2009 318: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 238-1:75.