logo资料库

Modbus 通信协议在分布式控制系统中的应用.pdf

第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
资料共3页,全文预览结束
Modbus 通信协议在分布式控制系统中的应用 通信协议在分布式控制系统中的应用 本文就一种DCS与PLC作为上下位机的分布式控制系统,介绍基于Modbus协议的通信网络在其中的应用,以及 该网络的硬件构成及程序设计。 摘 要:本文就一种DCS与PLC作为上下位机的 关键词:Modbus协议 分布式控制系统 通信网络 串口通讯 可编程控制器 一、引 言   现代工业的迅速发展,不断促进着自控技术及设备创新的日新月异。当前,DCS、IPC、PLC及智能仪表已广泛应用到工 厂现场生产控制系统当中,并发展到由上述设备相互协同、共同面向整个生产过程的分布式工业自动控制系统。在此系统中, 现场通信技术堪称关键。但由于开始没有统一的 二、系统组成   1、系统结构   本系统构成如图1,其中略去了现场仪表信号的采集、控制部分。系统上位机采用横河CS3000型DCS集散控制系统,对 整个生产过程进行集中监控;下位机采用Omron的CS1H系列PLC,分布在3个电气控制室,负责现场电机、OCV阀、流量开 关、变频器等执行、检测机构的启停控制、反馈信号采集、故障判断等操作。   基于通信实时性的考虑,将DCS与3个PLC控制站分为两个相对独立的通信网络:PLC1和PLC2与DCS一端口组成网络 一,PLC3与DCS二端口组成网络二。由于上下位机均无面向同一协议的通信设备,给设计造成了困难。经考虑,决定采用 Modbus通信协议,由其构成本分布式控制系统的通信网络。   2、通信网络组成   2.1通信协议   Modbus协议是一种适用于工业控制领域的主从式串口通讯协议,它采用查询通讯方式进行主从设备的信息传输,可寻址 1-247个设备地址范围。协议包括广播查询和单独设备查询两种方式,二者区别就是广播查询不需要从设备回应信息,主从设 备查询通讯过程见图二。   Modbus协议有两种传输模式:ASCII模式和RTU模式。同波特率下,RTU模式较ASCII模式能传输更多的数据,所以工业 网络大都采用RTU模式。RTU模式下的信息传输报文格式如图三   它没有起始位和停止位,而是由至少3.5个字符间隔时间作为信息的起始、结束标志。信息帧所有字符位由16进制字符0- 9、A-F组成。本设计采用单独设备查询的RTU模式通信方式,根据系统构成,将DCS一端口设01H、02H两个PLC从站地址, 二端口设01H一个PLC从站地址,并使用Modbus协议中的读字存储区03H和写字存储区06H两个功能码。   2.2 网络构成及硬件介绍   网络采用RS485串行接口,通信媒体由4芯屏蔽电缆连接主从设备,传输距离最大达1.5Km,全双工,串口设定波特率 19200,8位数据位、偶校验、1位停止位。DCS通信部分采用横河型号为ALR121的通信模块,并配套横河提供的Modbus通 信软件包,该通信模块最大通信数据容量4000字。PLC通信部分则采用Omron的C200H-ASCII 21可编程特殊单元模块(以下 简称ASCII模块),该模块支持BASIC语言编程,内有200K字节的程序存储区,配备RS232、RS485通信串口各一个。通过 对该模块的编程,可实现与外围设备的各种通信。本系统通过ASCII模块与DCS基于Modbus协议的通信,将DCS的读、写指 令及数据做相应转换,并与PLC的CPU单元进行数据存取交换,以实现上下位机控制信息的实时传输。如图四所示。
三、软件实现   1、 建立地址分配、对应表   DCS人机监控界面(HMI)上面向现场仪表的图形符号对象的监控,需通过DCS   2、程序设计   ASCII模块支持BASIC语言编程,此外,又附加了多条系统及函数指令,如接收、发送缓冲区操作指令、信息传输差错控 制CRC、LRC校验函数指令和与CPU单元数据交换的读写指令等。编程使用WINDOWS操作系统上附带的Hyperterminal(超 级终端)软件,通过此软件,PC机可与连接在网络上的其它PC机或串口终端设备进行文本文件的传输及显示。编程时,将 PC机串口与ASCII模块的RS232串口连接,运行该软件,就能在其界面上对ASCII模块进行程序编写、上传、下载和调试等工 作。也可先通过WINDOWS系统的写字板编写程序,并保存为文本格式,然后再通过Hyperterminal将程序下载到ASCII模块。 通信程序的主工作流程见图五。   部分程序代码如下:   OPTION BASE 0 //定义数组   DIM R(128),FC(128)   R(48)=0:R(49)=1:R(50)=2:R(51)=3:R(52)=4:R(53)=5:R(54)=6:R(55)=7:R(56)=8   R(57)=9:R(65)=&h0a:R(66)=&h0b:R(67)=&h0c:R(68)=&h0d:R(69)=&h0e:R(70)=&h0f   R(97)=&h0a:R(98)=&h0b:R(99)=&h0c:R(100)=&h0d:R(101)=&h0e:R(102)=&h0f   OPEN #2,"COMU:19200,8,E,1" //设定串口参数   A%=LOC(2) //判断接收缓冲区字符   IF A%=8 THEN   REX$=INPUT$(A%,#2)   ……….   ENDIF   GOSUB *ZFCL //对信息进行分解处理   IF ST=1 THEN *JAOY ELSE *BACK //判断是否本站信息   *JAOY   GOSUB *CRC //CRC循环冗余校验   IF R=CRC THEN *WORK ELSE *BACK //信息校验正确判断   *WORK   IF (FU=3) THEN GOTO *DJS //读功能码判断,调写操作子程序   IF (FU=6) THEN GOTO *XJS ELSE GOTO *BACK //写功能码判断,调读操作子程序   *DJS //读子程序   ………   *XJS //写子程序   ………
  *CRC //CRC 校验子程序   ……….   *ZFCL //字符处理子程序   ………   由于ASCII模块支持ASCII码,而RTU则是基于二进制码的16进制字符通信方式,所以在程序编程中增加了码制转换程 序。   CH5$=MID$(REX$,5,1) :CH6$=MID$(REX$,6,1) //提取字符段   VOL=ASC(CH5$)×256+ASC(CH6$) //将ASCII码字符转换十进制数   VOL$=HEX$(VOL) //将十进制数转换成十六进制字符   3、程序优化及安全措施   在ASCII模块与CPU单元数据交换程序部分,采取由ASCII模块向CPU 单元主动发送读写请求信号,CPU单元在收到请求 时才执行数据交换程序的方法。这样,就缩短了PLC的扫描周期,提高了通信实时性。   在信息差错控制部分,采用了CRC-16循环冗余校验算法,该算法能使信息的差错率低于10-14以下。如果信息校验错 误,程序将清除缓冲区,等待DCS信息重发。   根据生产需要,可在HMI上将现场按钮等手控设备设为无效状态,所有手、自动操作均在DCS上进行。考虑到如通信网络 遭到瘫痪等严重故障时,需保证现场电气设备正常启停,又增加了通信状态定时侦测程序,在规定时间(10秒)内网络上如 无信号,PLC自动将现场按钮等手控设备设为有效,同时DCS故障报警,直到网络恢复正常为止。 四、结束语   当前分布式控制系统通信网络的设备、软件及整体架构,大部分是由专业厂商生产提供的,其总体性能较好。但如前所 述,它们也有系统配置可选性小、网络架构适应面窄、价格较高等缺点。笔者采用Modbus协议这一成熟通信技术,选用PLC 的可编程模块,进行基于Modbus通信协议的自主程序设计,架构起本自控系统的通信网络。该网络易扩展、易维护,具有结 构简单、应用灵活、编程方便、造价低廉等特点。这套系统在某化纤生产线一次投运成功,实际运行状态良好,证明其稳定可 靠,能完全满足系统设计要求。到目前为止,该系统已在多个工程项目上投入使用,全部运行正常,取得了良好的经济效益。   本文创新点:采用工业领域通用的Modbus通信协议标准,利用可编程的PLC特殊功能模块,并进行通信程序设计,低成 本的解决了本系统的通信架构问题,可为分布式控制系统通信网络兼容性设计的一个思路。 参考文献:   1. Modicon. Modbus Protocol Reference Guide. 1996   2. Omron. C200H-ASCII UNITS Operation Manual. 1998   3. Omron. SYSMAC CS1 Series Programmable Controllers Operation Manual. 1999   4. 横河CS3000 Reference Manual. 2001   5. 其其格 利用VC实现Modbus的两种检测方法 《微计算机信息》 2004.1   6. 刘东 循环冗余校验CRC算法分析及程序实现. 《计算机与信息技术》2002.9
分享到:
收藏