中国·芯片交易在线
首页 | 供应信息 | 求购信息 | 库存查询 | 新闻中心 | 展会资讯 | IC厂商 | 技术资料 | 自由区域
   新闻首页 |  行业动态 | 新品发布 | 政策法规 | 科技成果 | 模拟技术 | 嵌入系统 | 传感控制 | 存储设计  
当前位置:IC72首页>> IC新闻中心>> 传感控制 >>电子行业新闻正文

利用PG2000的帧驱动器实现MODBUS通信

时间:2006/11/17 10:36:00  作者:  来源:ic72  浏览人数:1509
 
 

      摘  要:MODBUS通信协议已经成为工业标准,在电力自动化和过程控制中广泛应用,设备间通讯基本采用厂家提供的驱动程序,然而不同厂家设备的联网存在协议和功能差异。本文在分析MODBUS通讯协议的基础上,采用帧驱动器的帧函数实现MODBUS的全部通讯功能,具有应用灵活,简单,可靠的特性,并在贝加莱工业自动化公司的B&R2005和阿尔斯通的现场仪表组网中应用,验证本方法的可靠性和可行性。

      关键词:PCCMODBUS协议      帧驱动器

      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码方式传送更多的数据。其格式如下:

ic72新闻中心

      从机地址即主机要访问的设备的地址。功能代码即从机要执行的功能。数据即附属于功能代码的数据。CRC校验数据即对前三种数据进行CRC校验算法,所得到的CRC校验值,用来校验传输数据的正确性。

      例如我们要读取(03功能)地址为11(16进制)的从机寄存器的值,我们要发送如下数据帧:

ic72新闻中心

      这样即可取得所需数据。每种MODBUS功能都有固定的命令帧和应答帧格式,共十六种。

      3 帧驱动器

      帧驱动器是贝加莱公司为实现与第三方设备之间进行通信而设计的软件工具箱。通常数据通信,对数据进行读写操作,用户必须对端口的细节了解很清楚,才能通过编程实现对接口各管脚进行操作。而帧驱动器将这些操作集中起来,用户不必知道接口的细节,就可以通过帧驱动器命令直接传输读写数据。其提供的函数如下:

      FRMXOPEN:初始化端口,为帧驱动器分配缓存,安装中断处理程序

      FRMREAD:把数据读入读缓存区

      FRMRBUF:释放读缓存区

      FRMGBUF:申请写缓存区

      FRMWRITE:将数据写入写缓存区

      FRMROBUT:释放写缓存区

      在初始化接口后,用户就可以发送和接收数据了。发送数据基本过程是这样的,向帧驱动器申请一个缓存区,然后将要发送的数据写入申请得到的缓存区中,命令帧驱动器传输数据。

      FRMGBUF(1,IDENT,GSTATUS,OUTBUFADR,OUTBUFLNG);申请缓存区

      ic72新闻中心

      接收数据的过程与发送的过程基本相反,其过程是这样的:命令帧驱动器从接口读一帧数据

      并把它存入一个缓存区中,将数据从缓存区中拷贝到工作区中,释放缓存区

      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命令,其格式如下:

ic72新闻中心

      此例就是读取从机地址为11,起始地址为006B,长度为3个字的内容,并把其放入地址为REBUFADR开始的单元中。

      整个程序由三部分组成:(1)主程序。(2)CRC校验功能块。(3)数据表格。程序的设计思路是这样的,主程序为一个TC#4任务,它每10ms执行一次,确保实时快速地与从机通信。程序循环读取表格中每一行的数据,然后调用CRC校验函数,计算出CRC校验码,然后将其组织成MODBUS命令帧发送出去。从机得到命令帧后,发回响应数据,主程序读取返回数据,计算CRC校验码,判断返回数据是否有效,把其存放在记录中。当有事件发生时,主程序立即读取地址3600h开始的9个字,把其放在相应的事件记录中,直至事件触发标志无。为了使程序适应现场要求,对每种MODBUS命令设有三种操作模式:模式0(不执行此条MODBUS命令)、模式1(对此条MODBUS命令只执行一次)、模式2(常执行此条MODBUS命令)。

ic72新闻中心

      该程序装入贝加莱B&R2005PCC中,经运行,该程序能实时、准确,可靠地读取阿尔斯通仪表的数据,很好地与阿尔斯通仪表进行通信,实现了MODBUS的各种命令,完成了对阿尔斯通仪表的操作与控制。

 
【相关文章】
·利用PG2000的帧驱动器实现MODBUS通信
·智能温度传感器DS18B20的原理与应用
·基于IR1150的单周期控制PFC的原理与设计
·用AT89C系列单片机实现5英寸TFT-LCD的遥控
·NLX230型模糊控制器及其嵌入式应用研究
·人体表皮电信号无线采集及其应用探索
·基于CAN总线分布式控制系统智能节点的设计
 
 
IC新闻搜索
 
热点新闻
基于红外超声光电编码器的室内移动小车定位系
基于闪烁存储器的TMS320VC5409DSP并行引导装载方法
非移动市场需求飙升,ARM预计2010年出货量超50亿片
一种快速响应的电容式湿度传感器感湿薄膜设计
利用特殊应用模拟开关改进便携式设计
无线传感器网络跨层通信协议的设计
基于ARM9内核Processor对外部NAND FLASH的控制实现
基于GSM技术的汽车防盗系统的设计
热电阻在烟叶初烤炕房温度控制中的应用
高速数据转换系统对时钟和数据传输的性能要求
友情连接
 关于我们  IC论坛  意见反馈  设置首页  广告服务  用户帮助  联系我们
copyright:(1998-2005) IC72 中国·芯片交易在线
(北京)联系电话:(010)82614113、82614123 传真:(010)82614123 客户服务:service@IC72.com 库存上载:IC72@IC72.com
在线MSN咨询:ic72sale8@hotmail.com 通信地址:北京市西城区西直门内大街2号大厦15层 邮政编码:100013
(深圳)联系方式: 在线MSN咨询:ic72sale6@hotmail.com 在线QQ咨询:191232636 通信地址:深圳市福田区振华路
注 册 号: 1101081318959(1-1)

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9