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

发布者:科技创新实践者最新更新时间:2015-01-19 来源: e-works关键字:Modbus  通信协议  分布式控制系统 手机看文章 扫描二维码
随时随地手机看文章

一、引言

    现代工业的迅速发展,不断促进着自控技术及设备创新的日新月异。当前,DCS、IPC、PLC及智能仪表已广泛应用到工厂现场生产控制系统当中,并发展到由上述设备相互协同、共同面向整个生产过程的分布式工业自动控制系统。在此系统中,现场通信技术堪称关键。但由于开始没有统一的通信协议标准,各厂商自控产品通信协议各自为政,通信网络各成体系,造成不同厂家的自控设备网络连接困难甚至不能连接,给分布式控制系统的灵活应用造成了不便。一些公司为适应市场,纷纷将各自的协议标准公开化,可无偿使用。经过多年发展,一些通信协议如Modicon公司的Modbus通信协议因其兼容性、易用性的优势,在工业领域得到了广泛应用,已成为一种通用的工业通信标准。本文就某化纤项目分布式控制系统的设计,介绍基于Modbus协议的通信网络在其中的应用。

二、系统组成

    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 I/O物理地址对现场仪表信号的采集来实现。DCS对现场电气执行、检测机构的监控,则是由DCS通信I/O地址与PLC I/O物理地址一一对应完成的。为此,在编程前,需建立一张DCS通信I/O地址与PLC I/O地址的分配、对应表。由于PLC逻辑控制编程需要,不便直接将PLC I/O物理地址与DCS通信I/O地址对应,故采取了间接地址的方式。具体设计采用PLC的数据存储区DM区作为间接地址区,与DCS通信I/O区建立联系,再将DM区与PLC I/O区相对应。如将DCS的%WB000101位通信I/O地址与D0000.00位地址对应,D0000.00再对照PLC的I0000.00位物理输入点,就能将现场电气执行机构的运行状态反馈到HMI上。按照这种方法就建立了一张上下位机地址分配、对应表,因篇幅所限,该表略。[page]

    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特殊功能模块,并进行通信程序设计,低成本的解决了本系统的通信架构问题,可为分布式控制系统通信网络兼容性设计的一个思路。

关键字:Modbus  通信协议  分布式控制系统 引用地址:Modbus通信协议在分布式控制系统中的应用

上一篇:CC—Link总线在铣床运动控制中的应用
下一篇:PROFIBUS现场总线在物料输送控制系统中的应用

推荐阅读最新更新时间:2024-05-02 23:26

c51单片机实用通信协议
一、基本格式: 通信头- 巴克码- 地址字- 长度字- 命令字- 信息位- 校准字 1. 通信头:占1~8个字节,表通信开始(0x00、0xff不能用作通信头); 2.巴克码:占1字节,一般为0x72,表通信头结束; 3.地址字:表终端的地址,占1字节(0x00作为广播地址); 4.长度字:占1字节,表示从地址字到信息位之间的字节数; 5.命令字:占1字节,指示终端的不同操作; 6.信息位:不定长,从0~252字节; 7.校验位:两个字节,采用和校验及CRC校验。 二、应答 1.如果终端接收正确,则应答ACK;如果终端接收错误,则应答NAK; 2.发送方收到ACK,此次通信结束; 3.发送方收到NAK,重发刚
[单片机]
基于ARM9的仿人机器人分布式控制系统
1 引言 仿人型机器人具有类似于人类基本外貌特征和步行运动功能,还具有视觉、听觉等功能,它可以实现类似人类的行走,灵巧轻便,对行走环境有良好的适应性,既能在平地上行走,又能在非结构的复杂地面上行走,如上下台阶,跨越、绕过障碍物等。另外,仿人型机器人是集材料、机械、电子、能源驱动、计算机感知、传感、控制、虚拟现实与人工智能等多门学科于一体的综合性平台,它的研究能够带动诸多相关学科和技术的交叉发展与进步,并为相关学科的研究提供一个平台。因而,近年来,仿人型机器人的研发受到国内外学者的广泛关注。小型机器人是近年发展起来的仿人机器人的一种,主要的研究集中在日本。小型仿人机器人,结构轻巧,集成度高,运动灵活;未来可在工业、民用、军事等许多
[单片机]
基于ARM9的仿人机器人<font color='red'>分布式</font><font color='red'>控制系统</font>
你用了那么久的全网通 居然现在才成为国际标准?
6月9日,GSMA国际标准组织在瑞典GSMA-TSG第29次会议上,将六模全网通终端相关要求的提案标准加入到《GSMA-TS.37多卡终端技术规范》当中,其明确规定了全网通终端应同时支持LTE(TDD,FDD)、WCDMA、GSM、TD-S以及CDMA网络制式。全网通终端连续获得两大国际标准组织认可,标志着全网通终端成为国家标准后,再次跃升成为国际标准。   GSMA:GSMA(全球移动通信系统协会),成立于1987年,是全球移动通信领域的行业组织,目前其成员已包括200多个国家和地区的约800家移动运营商和200多家相关企业,如手机制造商、软件设计商、设备提供商、互联网公司、媒体和娱乐机构等。成立数十年来,GSMA与各国政府、
[手机便携]
PIC单片机与触摸屏串行通信的MODBUS协议实现
摘要:介绍一种在PIC单片机与触摸屏之间采用Modbus协议实现异步串行通信的方法。简单介绍了Modbus通信协议,给出了硬件电路连接图、程序流程图以及用PIC单片机C语言编写的部分通信程序。实际使用证明该方法数据传输稳定可靠,并提供了良好的人机交互环境。 关键词:触摸屏 PIC单片机 Modbus协议 通信 工控中经常需要观察系统的运行状态或者修改运行参数。触摸屏能够直观、生动地显示运行参数和运行状态,而且通过触摸屏画面可以直接修改系统运行参数,人机交互性好。单片机广泛应用于工控领域中,与触摸屏配合,可组成良好的人机交互环境。触摸屏和单片机通信,需要根据触摸屏采用的通信协议为单片机编写相应的通信程序。Modbus协议是美国M
[单片机]
STM32 SPI通信协议总结
简介 SPI是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(单向传输时)。也是所有基于SPI的设备共有的,它们是SDI(数据输入),SDO(数据输出),SCK(时钟),CS(片选)。 SDO --主设备数据输出,从设备数据输入 SDI --主设备数据输入,从设备数据输出 SCLK --时钟信号,由主设备产生 CS --从设备使能信号,由主设备控制 工作过程: 1、主机启动发送过程,送出时钟脉冲信号 2、主移位寄存器的数据通过SD
[单片机]
STM32 SPI<font color='red'>通信协议</font>总结
现场总线通信协议的主要内容
  1、物理层(PL):规定传输媒体的各类,传输长度,传输速率,与现场仪表连接技术及台数、供电方式、本安隔离栅等,这一层完全是硬件方面的问题,信道编码采用曼彻斯特编码。   2、数据链路层(DLL):主要作用是对总线上传输数据的存取、控制方式和错误检测进行规定。数据的存取分定时传输和非定时传输两种。定时传输如控制系统的数据是按预定时序进行;非定时传输如报警信息、故障诊断信息等是随机无序的。无论哪种传输,都受DLL主设备内LAS(Link Active Schedule-链路活动调度器)控制。   3、应用层:分为FAS访问子层和FMS报文子层。这一层主要是为设备间和网络间数据要求服务的。包括发送变送器来的PV信息和操作
[嵌入式]
Modbus485转profinet网关连接伺服主轴驱动器与PLC的具体应用
PN控制器通过开疆智能Modbus485转profinet网关与英威腾伺服器通讯。这一通信方式极大地简化了工业自动化系统中的控制过程。本案例是用Modbus485转profinet网关连接英威腾DriveServo200系列伺服主轴驱动器与PLC的配置案例,用到设备为西门子S7-1200PLC, 开疆智能Modbus485转profinet网关,英威腾DriveServo200系列伺服主轴驱动器。 配置案例:打开博图,安装gsd文件。 选择gsd所在位置即可确定后会出现在图中,选择安装即可。 安装完毕后在如下地址找到Modbus485转profinet网关模块。 Modbus485转profinet从站连接到12
[嵌入式]
<font color='red'>Modbus</font>485转profinet网关连接伺服主轴驱动器与PLC的具体应用
Modbus转Profinet网关连接丹佛斯变频器配置案例
本案例是实现Profinet转Modbus的通讯协议的互转。利用稳联技术Modbus转Profinet网关WL-ABC3010把三菱FR-A700变频器接入到西门子1200PLC。 配置方法: 1、打开博图,新建项目并添加gsd文件; 2、建立profinet连接,设定网关的IP地址和设备名称,IP要和网关保持在同一网段; 3、进入设备视图选择输入输出的总数据长度; 4、从右侧硬件目录中添加所选长度; 5、下载配置到PLC; 6、打开网关配置软件进行modbus参数配置,点击红圈中的新建,选择PN2MM; 7、设置网关的IP地址和设备名称,要和PLC组态保持一致; 8、设置网关的485参数波特率,数据
[嵌入式]
<font color='red'>Modbus</font>转Profinet网关连接丹佛斯变频器配置案例
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved