APP下载

基于Modbus TCP协议的清洗小车监控系统研究

2015-10-15顾曙光张茂青刘文杰

机电信息 2015年9期
关键词:工控主板寄存器

顾曙光 张茂青 刘文杰 王 清

(苏州大学自动化系,江苏 苏州215021)

0 引言

太阳能电池板常年置于室外,易积灰尘和异物,导致发电效率降低。全天候运行于太阳能电池板上的清洗小车将提高太阳能发电效率。用一块MCGS触摸屏作为监控设备,控制主板运行Windows操作系统,主控程序在Visual C++6.0环境下编制,触摸屏与控制主板通过以太网口相连。MCGS正确组态后,会向以太网中发送符合 Modbus TCP协议的功能码,此时工控主板需要识别功能码,作出相应处理并向以太网作相应的应答。

1 MCGS设备窗口组态与数据模型

MCGS触摸屏是一种用途广泛的工控监测产品,其内部预装有各种工控设备的驱动程序。对于本系统中的工控计算机主板,可将其视为通用 Modbus TCP设备,通过以太网对其进行驱动监控。设备窗口是MCGS系统的重要组成部分,负责建立系统与外部硬件设备的连接。通过组态要建立通信双方的以太网连接,在设备管理窗口中先后选择“通用TCP/IP父设备”和“通用设备—莫迪康 Modbus TCP”。通用TCP/IP父设备的属性中包含以太网通信的基本属性。鉴于本监控系统的通信方只有两方,且要实时监控,需随时收发消息,以太网的传输层协议选用无连接的UDP协议。触摸屏的IP地址可在上电后点击进度条,进入属性界面查看。在TCP/IP基本属性设置中,设本地IP地址为200.200.200.190,设远程IP地址为200.200.200.110。设备组 态 的 基 本 属 性 设 置 界 面 如 图 1所示。

图1 设备组态基本属性设置

要实现触摸屏与主板的信息交换,要在主板上建立Modbus数据模型。Modbus数据包括输入继电器、输出继电器、输入寄存器、输出寄存器等4种类型。在主板的VC++程序中用一系列数组模拟Modbus设备:

BOOL INREL[16];BOOL OUTREL[16];//输入、输出继电器

WORD INREG[10];WORD OUTREG[10];//输入、输出寄存器

2 Modbus TCP功能码及响应简介

实验中可借助网口调试工具解析MCGS触摸屏发向以太网的字码,结合本系统实验结果和 Modbus TCP协议,总结如下:

(1)读输出继电器OUTREL[0]

请求:00 00 00 00 00 06 01 01 00 00 00 01

响应:00 00 00 00 00 04 01 01 01 00(01)

(2)读输入继电器INREL[0]~INREL[3]

请求:00 00 00 00 00 06 01 02 00 00 00 04

响应:00 00 00 00 00 04 01 02 01 0x

(3)写输出寄存器OUTREG[1]

请求:00 00 00 00 00 06 01 06 00 01 xx xx

响应:00 00 00 00 00 06 01 06 00 01 xx xx

3 监控程序举例

设触摸屏对小车的命令与监视项目,如表1所示。

表1 命令与监视项目

通过socket编程实现主板的以太网通信,与组态完成的触摸屏用网线连接后,主板的进程会收到一系列Modbus TCP协议码。这时主板进程的以太网接收函数LRESULT CMyDlg::On ReadClose(WPARAM w Param,LPARAM l Param)将对收到的协议码进行识别、响应。进程将收到的信息存储于数组char msg[]中,其中 Modbus功能码存放于字节 msg[7]中。根据Modbus TCP协议的请求应答机制,部分处理程序段如下:

switch(msg[7])

{case 0x01://读输出继电器

BOOL a[8]={0x00};

for(int i=0;i<msg[11];i++)

a[i]=OUTREL[msg[9]+i];

send[9]=(char)a;send[7]=0x01;send[5]=0x04;

Send(send,10);break;case 0x04://读输入寄存器

for(int j=0;j<msg[11];j++)

{send[9+j*2]=INREG[msg[9]+j]>>8;

send[9+j*2+1]=INREG[msg[9]+j];}

send[8]=msg[11]*2;send[5]=3+msg[11]*2;

send[7]=0x04;

Send(send,6+send[5]);break;…}

4 结语

本系统可实现对清洗小车的指令发送与状态监视功能。在主板的操作系统中将进程设置为开机启动,系统上电后便可进入工作状态。本系统使用的触摸屏型号为TPC7062K;工控主板型号为VDX2-6554;运动控制卡型号为DMC4420;交流伺服电机驱动器型号为YZ-ACSD608。

[1]曹辉,马栋萍,王暄,等.组态软件技术及应用[M].第2版.北京:电子工业出版社,2012

[2]MODBUS协议中文版[Z]

[3]郑阿奇.Visual C++6.0网络编程教程[M].北京:电子工业出版社,2013

猜你喜欢

工控主板寄存器
沪市/深市主板观察
沪市/深市主板观察
Lite寄存器模型的设计与实现
三季报净利润大幅下滑股(沪市主板)
三季报净利润大幅增长股(沪市主板)
分簇结构向量寄存器分配策略研究*
工控速派 一个工控技术服务的江湖
工控速浱 一个工控技术服务的江湖
热点追踪 工控安全低调而不失重要
基于攻击图的工控系统脆弱性量化方法