APP下载

基于SNP协议的LabVIEW与PLC的通讯实现

2018-05-10沈梦梦姜英王亦诚

电子技术与软件工程 2018年24期

沈梦梦 姜英 王亦诚

摘要

利用LabVIEW中的VISA技术,实现了SNP协议下LabVIEW与GE90系列PLC的串口通讯。实际应用结果表明,该系统具有良好的实时性和可靠性。

【关键词】SNP协议 PLC LabVIEW 串口通讯

LabVIEW是一种图形化的编程语言和开发环境,是美国国家仪器公司开发的虚拟仪器开发平台软件。其图形化编程语言环境,簡单直观,极大节省程序开发时间,可以完成各种编程任务。

PLC在自动化监控系统中主要用于数据采集、控制和调节,对控制系统有举足轻重的作用,而如何实现PLC与上位PC机之间的数据通讯也至关重要。

本文详细介绍GE 90系列PLC与上位机通过SNP (Series 90 Protocol)串口协议通讯的具体实现过程,实际运行结果表明,此方法稳定可靠,节约成本,经济性强,有较强的应用价值。

1SNPt议

1.1 SNP通讯方式

SNP使用RS485(RS422为增强型)接口的半双工通讯模式,为了支持多种应用,SNP提供多种不同的波特率、奇偶校验、停止位。在数据连接上可以通过点对点(point-to-point)模式设置单个PLC,也可以通过多点下传( multi-drop)模式设置多个PLC。

由于上位机通常配备RS232串口,所以在上位机与PLC之间的通讯连接上需增加一个RS-232/RS-485 (RS422)转换器。配备RS485 (RS422)通讯接口的上位机可以直接通过一根数据线连接至PLC电源模块上,无需任何转换设备。允许多个90系列PLC连接至一个上位机,只需要配备一个多串口转换设备。

1.2 SNP消息帧

SNP数据消息包含三个部分:头部、尾部、头部和尾部之间的数据。

头部由两个字节组成,第1个字节均为lbh(十六进制),第2个字节及其代表的真实意义为:41h建立连接消息;52h建立连接响应消息;4Dh邮箱消息;54h文本缓冲消息;54h文本缓冲消息;42h块传输消息;43h连接数据消息;55h更新实时连接消息;49h查询消息。

尾部由六个字节组成,第1个字节均为17h,第2个字节定义下一个消息类型,第3、4个字节定义下一个消息长度,第5个字节代表状态位,第6个字节定义BBC校验码。

头部和尾部之间的数据内容依赖于被头部定义的消息类型。

l.3 SNP数据报服务请求

数据报服务请求允许用户通过服务请求获得一组或多组PLC的参数数据。PLC中一个区域的内存数据定义为一个数据报连接区,在通讯之前,数据报连接区需要被建立和定义。PLC中数据报连接区由几个部分构成:固定12个字节长度的头部、监测参数格式列表(每组监测的参数格式由4个字节组成)、数据区域。每个数据报最大可以定义256种数据格式,每组参数格式包含三个部分:数据类型、偏移量、长度。

在一个完整的串口通讯协议周期中包含下面四种PLC数据报服务请求:

(1)建立连接数据报请求;

(2)写入数据报请求;

(3)更新数据报请求;

(4)取消数据报请求。

当上位机需要使用数据报连接时,需要按照上述前三个数据报请求顺序读取PLC中数据,当不再需要读取数据时取消数据报请求。上述四个数据报请求基本上包含以下过程:上位机发送请求初始化、PLC发送确认、PLC发送响应完成确认、上位机发送请求数据、PLC发送数据、上位机发送确认。

一个典型的建立连接数据报初始化请求帧如表1所示。

2程序实现

(1)即设定上位机的串口COM1与PLC通讯,波特率设为19200bits/s,数据位为8位,停止位1位,奇偶校验设置为偶校验。

(2)帧校验,采用BCC异或校验方式,将要发送的数据进行异或后加在发送数据的尾端。

(3)读写端口,将命令通过串口COM1发送给PLC,并接受来自PLC的响应信息,将所得数据进行解包,并进行显示、计算、分析、存储等后续处理。图l为LabVIEW读串口的实现程序。

3结束语

本文在LabVIEW软件开发平台上,利用VISA技术,成功开发基于SNP协议的串口通讯模块,可以方便地实现上位PC机与下位机PLC的主从式串行通讯。该模块可以不加任何修改用于其它虚拟仪器的开发,操作简单方便,运行可靠,该模块已经成功应用于某型号发动机过程控制系统,运行良好可靠。

参考文献

[1]阮奇桢,我和LabVIEW [M].北京:北京航空航天大学出版社,2009.

[2]袁雪,陈斌,鲁中巍,管国强.基于LabVIEW的Modbus串口通讯协议的实现[J].现代仪器,2008,22 (02): 31-33.