基于modbus通讯的上位监控软件设计
2014-10-21吴昊罡
吴昊罡
摘要:本文基于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即可。……
