APP下载

利用Modbus协议进行PLC与超声探伤主机之间的通讯

2013-03-12汤建军

中国科技纵横 2013年1期
关键词:编程

汤建军

【摘要】在超声探伤检测设备中,检测用的上位机普遍采用VC++语言进行检测程序的开发。为了与钢铁厂的设备进行联线,需要与PLC之间进行通讯。信号主要包括探头起落信号、钢板到位信号、缺陷信号、合格信号等等。从前上位机与PLC之间的通讯主要采用IO卡与PLC进行通讯,中间用断电器进行隔离。但是这样连线多故障点也多,成本高。为了提高可靠性,降低成本,急需要实现PLC与上位机之间软件通讯。本文主要探讨利用Modbus协议与西门子S7-200PLC进行通讯的相关技术。

【关键词】PLC Modbus协议 VC++编程

目前国内钢铁厂的主要设备基本上都是使用西门子的PLC控制系统,同时由于各厂家已经普遍采用超声探伤设备检测钢板或钢管的缺陷,所以研究上位机(计算机)与PLC之间的通讯已经变得十分必要和紧迫。实现PLC与上位机之间的通讯有多种方式,从前主要用硬件方式,这种方法成本高,可靠性差,在实际使用中维护成本高。本文探讨利用Modbus协议与西门子S7-200PLC进行通讯的相关软件技术。

1Modbus通信协议相关介绍

Modbus通信协议是Modicon公司提出的一种报文传输协议,它广泛应用于工业控制领域,并已经成为一种通用的行业标准。根据传输网络类型的区别,Modbus通信协议又分为串行链路上的Modbus和基于TCP/IP协议的Modbus。Modbus串行链路协议的通信接口可采用RS-485接口,也可使用RS-232C接口。

Modbus通信协议有ASCII和RTU(远程传输单元)两种报文传输模式。目前支持Modbus通信的DCS系统和过程仪表大都采用基于串行接口的ModbusRTU模式,西门子提供了针对西门子PLCModbusRTU通信的协议库,安装后可在Step7-Micro/Win中调用。

西门子Modbus主站协议库包括两条指令:MBUS_CTRL指令和MBUS_MSG指令。MBUS_CTRL指令用于初始化主站通信,MBUS_MSG指令(或用于端口1的MBUS_MSG_P1)用于启动对Modbus从站的请求并处理应答。

西门子Modbus从站协议库包括两条指令:MBUS_INIT指令和MBUS_SLAVE指令。MBUS_INIT指令用于启用和初始化或禁止Modbus通讯。MBUS_SLAVE指令用于为Modbus主设备发出的请求服务。MBUS_INIT指令用于启用和初始化或禁止Modbus从站通讯。在使用MBUS_SLAVE指令之前,必须正确执行MBUS_INIT指令。

2PLC项目主要技术

首先:为了在Step7-Micro/Win中使用ModbusRTU进行通讯,要安装相关的指令库。指令库名称为STEP7-Micro/WINAdd-On:InstructionLibrary。安装完成后,启动Step7-Micro/Win,在“指令树”>“库”项下可以发现多出了USS协议库和Modbus协议库。

然后就可利用西门子Modbus从站协议库中的MBUS_INIT指令和MBUS_SLAVE指令进行编程。在MBUS_INIT指令中,将从站地址设为1,将端口0的波特率设为9600、无校验、无延迟,允许存取所有的I、Q和AI数值,保存寄存器的存储空间为从VB0开始的1000个字(2000个字节)。在每次扫描时执行Modbus_Slave指令,以便接收相应上位机报文。

3上位机编程

上位机开发工具主要采用VisualStudio.NET2003,编程语言用VC++。为了提高人机交互性,编程时提供了一个对话框,用户可设置相关的串口参数。主要设置参数为:工方式设置成RTU;串口号设置成COM1;波特率9600;数据位8位;停止位0位;校验位0;超时时间500ms等等。

为了方便用户使用,上下位机通讯用六个函数实现。一个初始化函数,用来实现上、下位机(PLC)的连接。一个句柄释放函数,以便释放硬件资源。还有四个数据传输函数,用于上下位机间的数据传送。其中二个用于线圈操作,二个用于寄存器操作。无论是对线圈操作还是对寄存器操作都需要提供从站号,起始地址,相关的数据信息等内容。同时需要注意的是在进行线圈操作时,数据字FF00(65280)表示将输出位置1数据字0000表示该输出复位为0其他的数据无效。

4通信测试

在调试时为了提高效率可以进行相关的通讯测试。测试上位机通信是否正常,可由PLC向计算机串口发送请求帧,在计算机上用串口通信调试软件查看请求帧是否正常。测试从站(PLC)通讯可从报文入手测试Modbus从站通信是否正常,利用计算机上的串口通信调试软件向从站发送请求帧,查看PLC是否能接受到正确的响应帧。

为此,上位机部分可采用串口监听工具AccessPort对上位机串口进行侦听。下位机部分可用Step7-Micro/Win对相关的线圈和寄存器进行监控。在对上位机串口进行侦听时AccessPort会记录下打开串口的程序名、波特率、极性、数据位等等相关信息。监控到的信息是十六进行编码,这一点在开发时要十分注意。

综上所述,采用相关的串口监听工具可以极大提高调试速度,提高开发的效率。在实际调试过程中可以利用监听工具直接向下位机发送数据。

5结语

在信息化的今天,计算机已经广泛应用在各个行业,利用计算机对PLC进行直接控制已经成为一项十分有前景的技术。本文探讨了利用Modbus协议与西门子S7-200PLC进行通讯的相关软件技术希望对大家有一定的借鉴。

猜你喜欢

编程
编程,是一种态度
编程小能手
纺织机上诞生的编程
宏程序编程的几种应用
数据库中VB编程的应用