机电之家行业门户网运行
文章 下载
最新公告:

  没有公告

设备维修与管理培训
您现在的位置: 设备维修与管理 >> 设备管理 >> 基础管理 >> 维修管理 >> 资讯正文
 
赞助商
 
 
最新文章
 
 设备管理中存在的问题及改进措施
 探索设备备件更换规律,实现设备
 创新设备管理 提升竞争优势
 设备管理关乎企业效益
 TPM自主保全实践的探索与思考
 驱动离心泵的电机电流高的原因及
 离心泵运行时不打量的原因
 离心泵一般容易发生的故障有哪些
 离心泵各零部件的检修标准
 计量泵的常见故障及处理方法
 
推荐技术
 
 
相关文章
 
利用网络社交技术 IBM实
利用生产实时数据强化发
利用网络技术,实现设备
提高机器设备有效利用增
三门峡发电公司综合利用
利用低温核供热的创新技
利用热天平对电厂混煤燃
综合利用RCM,建立新一代
提高设备利用率的措施
利用继电器实现备自投及
 
客户服务
 
如果您有设备方面好的文章或见解,您可以送到我们的投稿信箱
客服电话:0571-87774297
信   箱:88ctv@163.com
我们保证在48小时内回复


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 
  • 上一篇资讯:

  • 下一篇资讯:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    不良信息
    举报中心
    机电之家设备管理网
    致力于机电设备维修与管理技术
    网络110
    报警服务
    服务热线:0571-87774297 传真:0571-87774298 电子邮件:donemi@hz.cn 服务 QQ:66821730
    机电之家(www.jdzj.com)旗下网站 杭州滨兴科技有限公司提供技术支持

    版权所有 Copyright © 机电之家--中国机电行业门户·设备维修与管理

    主办:杭州高新(滨江)机电一体化学会
    浙ICP备05041018号