基于modbus通讯的上位监控软件设计

来源 :中国机械 | 被引量 : 0次 | 上传用户:a447047964
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:本文基于Modbus通讯协议,使用VB编写上位软件,与西门子CP341-RS422/485模块进行通讯,对PLC中变量进行读取,并存入SQLServer数据库,实现对设备的实时监控。
  关键词:Modbus;VB; SQLServer;PLC
  在现代工业中使用PLC设备进行分散化控制,上位机监控软件提供图形界面并对下位设备进行数据采集、管理,已经成为工业控制系统中普遍使用的监控形式。其中Modbus协议以标准、开放等优点广泛应用于工业通讯当中,本文基于西门子的CP341模块作为Modbus从站,使用Visual Basic语言进行编程,在上位计算机中采集、存储PLC中状态变量,实现对设备的实时监控。
  1.Modbus协议
  一个Modbus通讯数据帧由若干个字节组成,一般通信数据帧的格式包括:地址域、功能码、数据域、错误校验(16位CRC校验)
  地址域长度为1个字节,表示从站的地址。功能码是数据帧中传送的第二个字节,不同的功能码对应数据域格式不尽相同,常用的功能码有1、2、3、4、5、6、15和16,分别表示读线圈、读输入状态、读保持寄存器、读输入寄存器、写单个线圈、写单个输入状态、写多个线圈、写多个保持寄存器[1]。数据帧最后两个字节是CRC错误校验域。
  若需要读取05从站以00 00为起始地址的两个REAL型数据:3.4和8.9,则主站发送的报文:05 03 00 00 00 04 C5 8F,从站返回报文:05 03 08 40 59 99 9A 41 0E 66 66 D6 72。
  2.西门子CP341的组态与编程
  2.1西门子CP341组态
  本文涉及与计算机通讯的从站为西门子S7-300PLC加装CP341-RS422/485模块。在安装CP341之前需要插入硬件狗Dongle,安装驱动软件CP_PTP_PARAM和Modbus-Slave318,然后才能在Step7中对CP341进行组态。
  设置模块时必须与计算机确认设置的内容:从站地址、波特率、数据位停止位,校验位。CP341模块的参数应按确认后的内容进行配置,波特率通常设为9600即可。本文中通讯参数设置为9600, 8, 1, n,从站地址为5。
  传输DINT、REAL数据时,应设置FC 03,06,16选项卡,并建立一个DB块存储待传数据。本文中所需传输的变量数据类型为DINT、REAL。传输模式选择Half-Duplex。配置完成后,向CP341下载Modbus Slave驱动。
  2.2PLC编程
  在Step7中打开 “zXX21_05_PtP_Com_MODSL”项目,将Modbus通讯程序OB100、FB7、FB8、FB80、DB80复制到Step7程序中。在程序中调用FB80,并将通讯数据块名称DB80和CP341起始地址填入。建立与计算机通讯用的FC块并调用FB80,将通讯数据块名称DB80和CP341起始地址填入。其中FB80中的OB_MASK的值应始终为1,其余变量根据需要进行分配。
  3.Visual Basic编程实现
  为计算机安装RS485通讯卡,添加各个数据显示控件数组和MSComm控件。Modbus RTU模式的报文发送必须控制好字符间隔,1byte数据发送后延时应小于1.5倍字符时间,两帧报文之间的间隔必须大于3.5倍字符时间间隔。一个字符时间是指按照用户设定的波特率传输一个字节所需要的时间[2]。
  软件通过串口发送查询数据帧,对PLC返回的数据分解、显示,PLC返回的内容包括各开关状态、元件状态、运行速度、运行负荷等。从通讯内容来说,包括开关量、模拟量,其中开关量均打包为DINT型变量整体发送。
  3.1串口通讯与数据处理
  在界面中加载VB自带的MSCOMM控件,在软件启动时,程序调用API函数自动从配置文件中读取设置的控件属性参数,在控件的CommEvent事件中编写响应程序。
  使用Timer控件按照要求的周期發送报文。主站发出的查询报文为05 03 00 00 00 24 44 55(十六进制),通过MSComm.Output指令发送给从站。
  取得从站返回给主站的数据帧后,从第4个字节开始,每4个字节为一个数据。数据帧中的DINT型变量按位进行分解,与相应的开关量对应显示,浮点数转换为小数并显示在界面上。
  3.2数据管理
  为及时记录设备运行状态,分析设备使用情况,软件将打包传输的数据存储在SQLServer数据库中,以备日后查询,存储数据的过程根据MSComm.CommEvent事件触发。VB应用程序开发中,可以通过ADO对微软所支持的数据库进行操作。
  在数据库中建立存储表,建立不少于传输内容的字段,分别存储各开关量数据、模拟量数据。在VB中编写读写数据库的ADO语句对SQLServer进行操作。
  Set Cnn = New ADODB.Connection
  Cnn.Open strCnn
  Cnn.Execute "INSERT INTO Database (iTime, …) VALUES (SQLtxt)"
  需要读取存储信息时,可使用SQL查询语句读取相应字段进行数据转换和位处理即可,本文不再赘述。4 结论
  本文实现了在Modbus通讯的条件下,使用Visual Basic编程实现了在计算机上读取PLC中少量数据,并存储入SQLServer数据库的功能。在只需要监控少量数据的情况下,可以不必在计算机上安装其他专业的工业控制软件就能够满足需求,只安装相应的控件补丁和硬件驱动即可。本文所实现的功能降低了监控软件对计算机性能的要求,也使得部署程序更加简便。
  参考文献:
  [1]白焰,钟艳辉,秦宇飞.基于VC的Modbus协议通信测试软件的实现[J].现代电力,2008 25(6):76-80
  [2]佟为明,胡素君,刘勇, 李中伟.一种体现Modbus主要技术的实验系统[J].电子器件,2009 32(4):833-839.
其他文献
针对旋转机械设备的非平稳运行状态,以混沌理论为基础,将最大Lyapunov指数的预测模型引入旋转机械故障趋势预示,阐述了构造预报函数f^或F^的两种方法,提供了混沌时间序列的最大可
采用事故树分析法对冲压伤手进行分析,得到事故树的最小割集、最小径集和结构重要度,并对事故树的逻辑门、最小割集、最小径集、结构重要度进行分析,查找造成事故发生的本质原因
摘 要:以EBH35型横轴式掘进机为研究对象,建立了截割头相对于车体运动的数学模型,并应用matlab软件模拟了截割头中心点的极限运动范围,为掘进机自动截割成行断面规划提供基础,然后以截割矩形断面为例,运用matlab软件模拟了断面自动截割的过程,为之后建立EBH35型掘进机自动截割成形控制系统奠定了理论基础。  关键词:横轴式掘进机;断面自动成形;matlab仿真  1、前言  悬臂式掘进机已被
摘要:本文一开始通过初步的介绍对压力容器设计的重要性进行了相应的描述,然后根据具体情况对压力容器设计中容易出现的问题做了阐述,最后详细的分析了加强压力容器设计措施。  关键词:压力容器;设计;技术问题  前言  随着时代的不断发展,对压力容器施工的要求也越来越高,这就要求压力容器设计必须加强专业技能的研讨,并努力设计水平,为压力容器的质量提供有力的保障。  1.压力容器设计的重要性  近些年来,伴
摘要:元件清洗和系统冲洗的目的就是消除或最大限度地减少设备的早期故障。冲洗的目标是提高油液的清洁度,使系统油液的清洁度保持在系统内关键液压元件的污染耐受度内,以保证液压系统的工作可靠性和元件的使用寿命。本文针对此问题,主要分析了在装配前对液压系统各个元件的清洗与液压系统在总装后进行的冲洗进行了探讨。  关键字:液压软管;总成;清洁度;控制  一、在装配前对液压系统各个元件的清洗  液压元件在加工、
摘要:随着当前电力体制改革的不断拓展和加深,电力营销工作逐渐显现出其核心化的作用所在。但对于我国电力市场的传统,如何在电力市场改革之初摒除压力、提升能效成为了电力营销工作者亟须解决的问题。笔者从实际出发,结合辽阳市供电营销工作开展的状况,就当前电力营销工作中存在的问题和具有的弊端进行了分析,并且立足实效提出了提升电力营销工作能效的建议和措施,为电力营销工作者下一步工作的开展进一步指明了方向,具有较
为了研究影响离心泵汽蚀性能的因素,本文以国内常用的65ZX25—32船用泵为研究对象.在叶轮基本外尺寸和设计转速相同的情况下,改变叶轮进口流道形状和叶轮进口边形状.运用软件进行
1问题的提出随着国际汽车行业的不断发展,对汽车零部件的要求越来越高,汽车换热器水箱也急需改进.在汽车换热器水箱的开发研制过程中,针对目前换热器水箱品种繁杂,铜、铝管材
摘要:石油化工建设项目管理的好坏直接影响项目的利益最大化,项目责任成本的控制管理能够很好的为企业项目成本节约。在阐述了工程项目施工实施责任成本管理流程的基础上,就其在实施过程中存在的问题进行分析并提出相应的改进措施。  关键词:项目管理;责任成本;成本管理  项目责任成本管理的好坏,直接反映了石油化工项目的利润结构,是追求效益最大化的重要手段。为了实现平稳的项目管理,成本控制有序,企业盈利改善,我