APP下载

基于LabVIEW的S 7-200 PLC与计算机的通讯设计

2013-10-12张立辉

吉林建筑大学学报 2013年1期
关键词:PC机通信协议缓冲区

张立辉

(吉林建筑工程学院电气与电子信息工程学院,长春 130118)

PLC控制器凭借其可靠的稳定性在工业控制领域倍受青睐,然而由于其数据处理和管理能力方面的不足,无法提供人机友好界面.针对这一问题,本文利用PLC的通讯能力将其与PC机相结合,基于LabVIEW软件平台设计了S 7-200与PC机的串行通讯系统,并将其成功应用于粮食干燥机自动控制系统中.本系统不仅能及时的采集、存储数据,同时能对数据做相应的处理,有效弥补了PLC数据处理能力弱的不足.

1 Modbus网络通信协议

S 7-200 PLC提供了非常强大的通信功能,主要有PPI和自由口两种通讯模式.PPI模式是专门为S 7-200设计的通信协议,一般不对外开放;而自由口通信模式则是完全对用户开放的协议,其应用方式主要有两种,包括使用Modbus主从站协议(PC机作为主机,PLC作为从机)和使用完全由用户自定义的协议.

Modbus网络通信协议是MODICON公司于1979年开发,它详细定义了校验码、数据序列等这些通信时数据交换的必要内容.Modbus协议采用主从方式进行通信,有效的避免了通信时各方争用通信线路,即通信时PC机作为主机,PLC作为从机,只有主机才能够主动发送请求报文或请求帧,从机收到报文后返回响应报文.

Modbus通信协议具有ASCII和RTU两种数据传输方式.用户选择需要的模式,包括串口通信参数,在配置每个控制器时,在一个Modbus网络上的所有设备都必须选择相同的传输模式和串口参数.以RTU模式通信,在消息中的每个8 Bit字节包含两个4 Bit的十六进制字符.这种方式的主要优点是:在同样的波特率下,可比ASCII方式传送更多的数据[1].因此,本文采用RTU模式的Modbus通信协议.RTU数据帧的基本结构见表1.

表1 RTU数据帧的基本结构

使用RTU模式,为避免数据在传输过程中出现错误,消息包括了CRC方法的错误检测域.CRC域是两个字节,包含一16位的二进制值.它由传输设备计算后加入到消息中.接收设备重新计算收到消息的CRC,并与接收到的CRC域中的值比较,如果两值不同,则有误.在Modbus通信协议中CRC的计算流程图如图1所示.

图1 CRC计算流程

图2 Modbus从站协议指令的梯形图

2 PLC通信程序设计及上位机LabVIEW程序设计

PLC通信程序遵循Modbus协议,采用模块化式结构,即由多个功能相对独立的子功能组合实现完成系统总功能,这种模块式结构有利于系统升级和功能调整.

在S 7-200的程序中使用Modbus从站协议指令进行编程.图2为Modbus从站协议指令的梯形图.在该梯形图中,Mode输入值用来选择通信协议方式:数值1将端口0指定给Modbus协议,并启用协议.

虚拟仪器技术(LabVIEW)是一种以图形化编程语言(G语言)为基础的系统开发软件,软件界面直观形象,而且具有很多传统硬件仪器无法比拟的优势,近年来,在测试与测量、过程控制和工业自动化、实验室研究与自动化等方面都得到了广泛的应用.因此本文以LabVIEW为基础实现上位机与S 7-200 PLC的通讯.

其串口通信模块包括 Visa Configure Serial Port.VI,Visa Write.VI,Visa Read.VI及 Visa C1ose 等.其功能是完成串口通信初始化,实现串口通信[2].使用LabVIEW内置函数模块可很方便直观的实现串口通讯,其设计程序如图3和图4所示.

(1)串口初始化.利用Visa Configure Serial Port vi节点设定串口的端口号、波特率等;

(2)读/写串口.利用VISA Write.vi节点和Visa Read.vi节点对串口进行读写.由于在LabVIEW平台上的串行通信过程中,发送和接收的数据格式是以字符串的格式组成的,字符串中的每个字符对应ASCII字符;而采用ModbusRTU模式进行通信时,发送和接收的数据格式是直接的16进制字符;

(3)Visa设置I/O缓冲区大小.利用Visa Set I/O Buffer Size vi节点来设置I/O缓冲区的大小;

(4)Visa清空I/O缓冲区.利用Visa Flush I/O Buffer vi节点来清空由指定的I/O缓冲区;

(5)关闭串口.利用VISA Close vi节点来将打开的串口关闭,停止所有读写操作.

图3 LabVIEW程序前面板

图4 LabVIEW程序框图

ModbusRTU通信协议的CRC校验码包含2 Bytes,即16位二进制数.发送设备计算CRC码,放置于发送信息帧的尾部.接收信息的设备将利用接收到的信息重新计算CRC码,比较计算得到的CRC码是否与接收到的相符.如果两者相符,表示接收的信息帧正确无误,若不符,则表明接收的信息帧有误.在进行CRC码计算时只需用到8个数据位,起始位、停止位,以及奇偶校验位都不参与CRC的计算,其校验程序如图5所示.

图5 CRC校验程序

3 结论

本文给出的基于Modbus通信协议的上位机LabVIEW与PLC串行通信设计已得到了较好的应用.在粮食干燥自动控制系统中的实际运行情况表明,通过采用Modbus通信协议的串行通信,保证了通信数据的安全、可靠和稳定,同时做到了用户界面友好和直观,意义深远,具有一定的应用价值.

[1]冯向科,邓 莹.基于MODBUS RTU通信协议下的CRC算法实现[J].电脑知识与技术,2006(8):43.

[2]杨乐平,李海涛,杨 磊.LabVIEW程序设计与应用[M].北京:电子工业出版社,2001:220-245.

猜你喜欢

PC机通信协议缓冲区
基于PC机与单片机的多机通信技术及抗干扰方法
基于Z-Stack通信协议栈的红外地温采集电路设计
嫩江重要省界缓冲区水质单因子评价法研究
基于三菱FXPLC的感应淬火机床与PC机的串行通信实现
VC.NET下实现dsPIC单片机与PC机的通信
排除OLT设备登录故障
基于DMX512通信协议的多路转发器设计与研究
基于NS-3的PLC多频通信协议仿真平台设计与实现
关键链技术缓冲区的确定方法研究
RSSP-I、RSSP-Ⅱ及SAHARA三种安全通信协议实现技术简介