新闻中心

EEPW首页>嵌入式系统>设计应用> Modbus RTU通讯协议在流浆箱控制系统中的应用

Modbus RTU通讯协议在流浆箱控制系统中的应用

作者: 时间:2012-07-02 来源:网络 收藏

4 上位机与PLC通讯的具体实现

  作为主机的上位机通过通信协议可以访问从机ABB AC31 50系列PLC里所有类型的输入、输出、内部及常量数据。但是为使上位机更高效地读取PLC中的数据,需要将要读取的数据合理安排,这里我们将上位机需要访问的所有输入、输出、内部字或位数据经转换都在PLC中以一定顺序按地址连续地存放在内部字存储区中,以便上位机每次只用一条读请求命令读取此块内部字存储区,即可获取所需的全部PLC数据。这样可以显著的提高通讯效率,同时简化上位机程序。我们将读请求命令存在 QueryData数组中,如下:
  Dim QueryData(1 to 8)As Byte
  QueryData(1) = (H1) ‘PLC地址为1
  QueryData(2) = (H3) ‘功能码为3,读取n个数据
  QueryData(3) = (H2E) ‘数据地址为2E60
  QueryData(4) = (H60)
  QueryData(5) = (H0) ‘数据个数为81个
  QueryData(6) = (H51)
  QueryData(7) = (H8D) ‘校验码
  QueryData(8) = (H0)

  将QueryData数组通过MSComm控件发送给PLC,这样PLC就会将其所需的全部数据(从PLC地址2E60开始到2EB0结束的81个地址连续的数据)一次返回给上位机。

  由于协议采用主从应答方式,即上位机程序中需要定时或循环发送读取PLC数据的读写请求命令,而PLC对收到的每一条请求命令按协议规则进行回应。如此一应一答循环往复实现数据采集和控制命令的发送。同时为了避免读写冲突,要控制每两条请求命令发送的时间间隔。下面这段程序简单的说明了读、写命令发送是如何控制的:
  While (1)
  DoEvents
  If bNeedToWriteNewData Then
  ‘写命令
  MSComm1.Output =SetData
  TimeDelay (100) ‘延时100毫秒
  ReceiveData = MSComm1.Input
  bNeedSendNewData = False
  Else
  ‘读命令
  MSComm1.Output = QueryData
  TimeDelay (100) ‘延时100毫秒
  ReceiveData = MSComm1.Input
  buf = ReceiveData
  ‘处理、转换
  Call PrecessPLCData(buf)
  End If
  Wend

  实际应用中采用定时读写的方式,流程如图2所示。上位机将处理、转换过的数据存入数据库,并以动态趋势和历史趋势的形式显示出来,同时提供报警指示。所有关键参数都要获得相应权限后方可从上位机写入PLC。

  上位机使用Windows2000操作系统,监控程序用VB6.0编写,这样可以保证上位机稳定的运行,监控程序通过串口从 ABB AC31 PLC可获得各现场过程值和参数,也可随时根据工艺要求对PLC中的参数进行更改设置,从而对生产过程实施有效控制,在更改车速时,系统会自动更改总压设定值,使浆网速比满足条件。同时对各种可能出现的故障给出了在线帮助和排查方法,极大的方便了操作工的使用和维护。

5 总结

  本控制系统在某纸厂五万吨生产线中已成功使用,现场运行稳定,压力、液位曲线非常平稳,控制效果和通讯速度方面令人满意,已顺利通过验收,也为抄造高品质的纸张提供了有力的保障。Modbus通讯协议以其格式简单、编程容易、传输距离远、通讯可靠、通讯速率高、设备间连接成本低等优点使得它将能得到更广泛的应用。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭