|
设
备
管
理
网
s
b
g
l
.
j
d
z
j
.
c
o
m
|
|
利用PG2000的帧驱动器实现MODBUS通信 |
|
|
利用PG2000的帧驱动器实现MODBUS通信 |
|
作者:佚名 文章来源:不详 点击数: 更新时间:2008-9-24 9:39:32 |
|
刘金星 刘思强 崔天祥 许景波 黄向东 黄鸿斌 1.大庆天然气分公司 2.哈尔滨工业大学
1 引言
随着计算机技术、通信技术、自动控制技术的发展,传统的PLC已经发展到集3C技术为一体的新型工业控制装置PCC,它更能胜任大型的集散控制和复杂的过程控制。奥地利贝加莱工业自动化公司的B&R2005就是这一装置。B&R2005具有强大的网络通信能力,可以实现远程I/O,CANBUS,PROFIBUS,以太网等网络通信。并且提供了与第三方设备之间进行通信的帧驱动器。我们的项目中需要PCC与阿尔斯通仪表进行通信,读取阿尔斯通仪表中数据,而阿尔斯通仪表采用MODBUS通信协议,所以我们利用帧驱动器实现工业控制中普遍采用的MODBUS协议通信程序。
2 MODBUS通信协议
MODBUS是一种工业通信和分布式控制系统协议,由美国著名的可编程控制器制造公司莫迪康公司(MODICON INC)提出,已广泛地应用于工业控制中。MODBUS是一种主从协议,允许一台主机与多台从机通信。MODBUS通信协议主要包括寄存器读写,开关量I/O等命令。采用命令/间答方式,每一种命令帧都对应着一种应答帧,命令帧由主机发出,当从机收到后,应发出相应的应答帧。每个从机有一个唯一的地址,只有被访问的从机才会响应包含它的地址的查询。也可以采用广播方式,在广播方式中使用地址0,所有的从机把它当作一条指令执行,但不发回应答帧。在MODBUS中有两种有效的数据传送方式,即ASCII码和RTU方式。我们采用RTU方式,这种方式的主要优点是:在同样的波特率下,可比ASCII码方式传送更多的数据。其格式如下:
从机地址即主机要访问的设备的地址。功能代码即从机要执行的功能。数据即附属于功能代码的数据。CRC校验数据即对前三种数据进行CRC校验算法,所得到的CRC校验值,用来校验传输数据的正确性。
例如我们要读取(03功能)地址为11(16进制)的从机寄存器的值,我们要发送如下数据帧:
这样即可取得所需数据。每种MODBUS功能都有固定的命令帧和应答帧格式,共十六种。
3 帧驱动器
帧驱动器是贝加莱公司为实现与第三方设备之间进行通信而设计的软件工具箱。通常数据通信,对数据进行读写操作,用户必须对端口的细节了解很清楚,才能通过编程实现对接口各管脚进行操作。而帧驱动器将这些操作集中起来,用户不必知道接口的细节,就可以通过帧驱动器命令直接传输读写数据。其提供的函数如下:
FRMXOPEN:初始化端口,为帧驱动器分配缓存,安装中断处理程序
FRMREAD:把数据读入读缓存区
FRMRBUF:释放读缓存区
FRMGBUF:申请写缓存区
FRMWRITE:将数据写入写缓存区
FRMROBUT:释放写缓存区
在初始化接口后,用户就可以发送和接收数据了。发送数据基本过程是这样的,向帧驱动器申请一个缓存区,然后将要发送的数据写入申请得到的缓存区中,命令帧驱动器传输数据。
FRMGBUF(1,IDENT,GSTATUS,OUTBUFADR,OUTBUFLNG);申请缓存区
接收数据的过程与发送的过程基本相反,其过程是这样的:命令帧驱动器从接口读一帧数据
并把它存入一个缓存区中,将数据从缓存区中拷贝到工作区中,释放缓存区
FRMREAD(1,IDENT,RSTATUS,INBUFADR,INBUFLNG);接收数据
IF (RSTATUS=0) THEN
MEMCPY (ADR(BUFFER[0]),INBUFADR,INBUFLNG);接收数据存入工作区
FRMRBUF(1,IDENT,INBUFADR,INBUFLNG,RBSTATUS);释放读缓存区
ENDIF
4 程序设计实现
为了使操作命令组织结构清晰,合理。我们采用数据表格方式。我们把MODBUS命令组织成命令表,表格中的每一行对应于一条MODBUS命令,其格式如下:
此例就是读取从机地址为11,起始地址为006B,长度为3个字的内容,并把其放入地址为REBUFADR开始的单元中。
整个程序由三部分组成:(1)主程序。(2)CRC校验功能块。(3)数据表格。程序的设计思路是这样的,主程序为一个TC#4任务,它每10ms执行一次,确保实时快速地与从机通信。程序循环读取表格中每一行的数据,然后调用CRC校验函数,计算出CRC校验码,然后将其组织成MODBUS命令帧发送出去。从机得到命令帧后,发回响应数据,主程序读取返回数据,计算CRC校验码,判断返回数据是否有效,把其存放在记录中。当有事件发生时,主程序立即读取地址3600h开始的9个字,把其放在相应的事件记录中,直至事件触发标志无。为了使程序适应现场要求,对每种MODBUS命令设有三种操作模式:模式0(不执行此条MODBUS命令)、模式1(对此条MODBUS命令只执行一次)、模式2(常执行此条MODBUS命令)。
该程序装入贝加莱B&R2005PCC中,经运行,该程序能实时、准确,可靠地读取阿尔斯通仪表的数据,很好地与阿尔斯通仪表进行通信,实现了MODBUS的各种命令,完成了对阿尔斯通仪表的操作与控制。
|
|
资讯录入:admin 责任编辑:admin |
|
|
上一篇资讯: GPS与微机试验仪相结合的成功经验
下一篇资讯: 基于GPS和分群理论的电力系统暂态稳定预测 |
|
|
【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |
|
网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
|
|
|
|