时间:2022-03-09 22:24:46
绪论:在寻找写作灵感吗?爱发表网为您精选了8篇modbus协议,愿这些内容能够启迪您的思维,激发您的创作热情,欢迎您的阅读与分享!
关键词:STC89C52 通讯协议 Delphi Firbird
1节点设计以及网络组成
1.1本系统主控芯片采用宏晶科技STC89C52单片机,与其它CPU芯片相比,具有显著特点,加密性强,超低功耗,速度快,可靠性高,驱动能力强,抗静电和抗干扰能力强。
1.2DS18B20传感器
DS18B20是美国DALLAS公司生产的一线式数字式温度计芯片,它具有结构简单,不需外接元件,测量温度范围在-55°C—+125°C之间。采用一根I/O数据线既可供电又可传输数据、并可由用户设置温度报警界限等特点,可广泛用于食品库、冷库、粮库等需要控制温度的地方。
1.3网络节点设计
网络节点结构示意图
1.4网络组成
该控制网由PC机和若干分节点组成,PC机主要负责轮询各分站点数据,发送请求数据包和控制数据包,然后分节点判断数据包,根据相应的指令通过RS232接口把数据发送给PC机,最大站点数可设50个节点,PC机对采集的数据进行分析处理。
2 控制网络通讯协议
2.1简单节点流程示意图
本控制网采用同一程序,通过面板按键设置本机的分节点地址,节点开始上电,CPU开始初始化I/O、串口等模块,接着根据设置的参数读取操作站点,从而执行相应的程序并分析数据,数据正确,进行正常显示,否则PC机根据不同的报警信息发出声光报警。
简单节点流程示意图如下
2.2数据包格式
通讯参数:波特率:1200,数据位为1,数据位为8,停止位为1,校验位为1,方式采用主从式通讯,计算机为主机,各下位分机为从机。主机先发数据请求命令,只有符合地址条件的从机才回传或接收数据,在数据传输中,为提高系统的可靠性和实用性,要求传送的数据包尽可能短,并且传送的信息量要大。
2.2.1请求数据包
本数据包用于PC机向分节点请求数据使用。请求数据包格式如下:长度为4个字节数,首位码、读标志、目的地址、数据量均为一个字节数。
2.2.2回送数据
本数据包用于分节点发送PC机所请求的数据,回送的数据包长度可以根据发送的指令而变,根据PC机发送的请求,数据包回送PC机所请求的数据。
回送数据包格式如下:首位码、地址均为1个字节数,回送数据根据发送指令确定字节数,备用字节、校验码为两个字节数。
2.2.3控制数据包
本数据包主要用于PC机向分节点发送数据使用。控制数据包格式如下:长度为5个字节数,首位码、写标志、目的地址均为1个字节数,数据量为2个字节数。
2.2.4协议的实现及应用
在设计基于RS-485的分布式测控系统时,在上位机呼叫下位机地址之后就可以利用本协议的规范来设计具体的通信流程。 基于本协议的通信可以有两种机制。一种是面向握手的,即每发出一帧,总是要等待确认帧,否则将认为是通信出错。这是一种可靠的通信方式,适合传输系统命令和一些非常重要的系统参数。另一种是无握手的,即发送方假设接收方总是接收正确,从而无须等待确认帧就不停地发送,适合大量前端采集数据的发送。这种机制的优点是发送过程简 单、快速,缺点是不能保证传输过程的可靠性。
本协议利用握手通讯方式已经成功地运用到多个冷库、粮库监测系统中,不仅简化了通信程序的设计,而且保证了通信的高效和可靠。下位机负责现场的温度的采样和存储,上位机负责循环呼叫下位机,以了解现场情况是否正常,并且每隔一定时间收集下位机存储的数据并对数据进行分析管理。
2.3通讯的可靠性
本系统采用主从结构,利用PC机轮询各节点,能有效解决网络冲突问题。传输数据增加了冗余,并且在所传送的数据中进行了硬件的循环冗余校验。
3 结束语
本系统上位机软件采用Delphi开发,数据库采用Firbird,上位机设计分为组态部分和监控运行部分,可视化直观的界面操作,组态方便,可根据分节点所接传感器数量不同,自由分配通道,利用上位机强大的数据处理能力,进行数据分析和处理,可对各节点进行数据显示、上下限报警、实时趋势显示,具有很大的实际应用价值。
参考文献:
关键词 MODBUS协议;DCS系统;PLC系统;通讯应用
中图分类号TN91 文献标识码A 文章编号 1674-6708(2013)82-0188-02
DCS系统以及PLC系统以其独特优势而被各行各业广泛应用,为实现生产的经济高效、节能环保提供了可靠的基础保障。但DCS系统与PLC系统之间的通讯始终是工程生产的重点问题,本文对MODBUS协议基础上,实现DCS系统与PLC系统之间的通讯进行分析与探讨,以其对工程生产提供帮助。
1 系统组成
1.1 通讯系统
Modbus通讯协议是一种通用的电子控制器应用语言,可利用网络或其它设备实现控制器之间的通讯,Modbus协议可以在忽略控制器通信方式的前提下,对其所能认识与使用的消息结构做出定义,是一个通用的工业标准,它还对控制器与其他设备之间的访问请求与过程进行描述,可以侦测错误信息并进行记录。并且,Modbus协议还制定了公共内容格式及消息域格局,控制器可设置为RTU或ASCII中任一种传输模式,用户可在标准的Modbus网络通信中选择所需模式及串口参数,Modbus网络上所有设备在控制器配置时,都应将传输模式以及串口通信参数选择一致。本文基于RS485协议来实现DCS与PLC之间的数据共享,可通过DCS控制PLC,也可将PLC的数据上传到DCS。实际操作时,可将一块MODBUS转DP通讯模块增加于DCS控制器下方,以使维护与控制简单方便,而基于MODBUS协议,此通讯模块可作为通讯主站,实现与现场PLC间的通讯,也可基于Pmfibus-DP协议并作为从站,实现与DCS系统的挂接。
1.2 DCS系统
集散控制系统DCS是以通信网络为连接纽带并包括过程监控级与控制级的多级计算机系统,它将计算机技术、控制技术、通讯技术以及显示技术等有机结合起来。本文DCS系统采用的是和利时MACS V控制系统,不仅可以实现集中操作而分散控制,还可以分级进行管理,组态及其方便且配置较为灵活。
1.3 PLC系统
因工业化发展需求而产生的PLC数字运算操作系统,它利用可编程存储将定时计数、顺序控制及逻辑运算等操作指令存储起来,再经由数字模拟输入与输出对机械设备或生产过程进行控制。可编程控制器与相关设备的选择应从其功能原则设计扩充简便为切入点,选择易与工业控制系统形成整体的设备,而且维护与控制也较为简便。本文PLC系统是由三套和利LK207、一套GE的IC200以及一套西门子S7-200组成。
2 系统组态
2.1 硬件组态
将通讯线自各PLC串口引出,并将其与MODBUS转PROFIBUS-DP协议转换模块的MODBUS接口连接。
2.2 软件组态
1)DCS系统组态。将MODBUS转PROFIBUS-DP协议转换模块中的GSD文件拷贝至MACS V系统的相应安装目录,再打开MACS V系统的控制器组态文件与工程,将此模块添加于硬件组态中,然后打开模块属性对通讯参数波特率等进行设置,再基于PLC读写数据对MODBUS读写数据块进行合理添加,数据块属性设置取决于数据起始地址及PLC地址。以各自地址以及PLC读写变量进行添加于程序中的子程序编写以及变量添加,然后对编译进行保存。将PLC变量至工艺画面添加至打开的MACS V画面的组态程序并保存,然后下装于操作员站,而将PLC传过来的量程或信号类型等变量属性添加至打开的MACS V数据库的组态程序,再联编并将其下装于服务器;
2)PLC系统组态。本文以GE公司的IC200型PLC来说明该系统组态。将GE PLC编程软件打开并对PLC Port(2) 进行设置,然后利用网络将小酒改后的设置内容下至PLC。
3 系统常见故障的判断与排除
若DCS系统与PLC系统之间的数据通讯正常,则对故障隐患的判断可通过模块状态指示灯来实现,可从模块上的数据传送与接收指示及错误状态表示对,作通讯状态进行判断并对故障进行诊断。而若DCS与PLC之间的数据通讯为不正常状态,则DCS系统画面所显示的数据不正常,模块状态指示灯有错误状态显示。对此,应对硬件错误及软件错误进行依次检查并排除故障。硬件方面,应使用DP电缆,接线时切忌将正负极性接反,模块选型时也要注意选择有较高的使用信誉度且实用效果较好的产品,由于兼容性差异的问题,两次以上的接口转换情况应尽量避免。而软件方面,首先要保持一致的DCS与PLC间的通讯速率,最好使用无校验而减少奇偶校验,其次要确保DCS与OLC系统的通讯数据地址合理有效,若有地址错位状况,可通过DCS系统设置来解决。
4 结论
综上所述,在实现DCS系统与PLC系统之间的通讯中应用MODBUS协议,可以取得良好成效,即是说,基于MODBUS协议的DCS与PLC通讯的实现,具有稳定的通讯性能,可以为工艺监控提供可靠技术支持,为工程生产创造良好的条件,有效实现生产的节能减排、经济高效。
参考文献
[1]赵钊.基于Modbus协议的DCS系统与PLC系统的通讯[J].节能技术,2011(4).
[2]王刚,王玉琪,王冰.用Modbus协议实现DCS与PLC之间的串行通讯[J].自动化技术与应用,2010(4).
关键词:Modbus 数据读取 工业控制 网络通信
中图分类号:TP274.2 文献标识码:A 文章编号:1007-9416(2012)11-0049-02
Modbus是一种工业上开放的现场总线协议,是目前通用的工业标准之一。该协议能够使得各个厂家之间的控制设备能够相互通信和进行数据传输,在工业过程控制中具有广泛地应用[1]。Modbus协议包含三种模式,即Modbus TCP、Modbus RTU和Modbus ASCII模式[2]。本文在研究Modbus TCP协议模式的基础上,设计了一种基于TCP/IP的Modbus的数据读取功能。通过该读取功能,用户可以在PC机上可以读取PLC控制器上的数据。
1、Modbus TCP/IP协议数据帧的格式
由于Modbus TCP/IP协议运行于TCP/IP协议上,因此Modbus TCP/IP协议的数据帧被封装于TCP/IP协议数据帧中的数据单元中,作为TCP/IP协议中的数据部分发送给各种控制设备;支持Modbus协议的控制设备收到Modbus请求之后,根据请求的内容将结果返回给客户端。本文所设计基于Modbus TCP/IP的数据请求和响应帧格式如下图所示。
事务元标识符:该标识符用于事务处理的配对,该域中的内容为用户自行设定,如可以将每一帧的编号放在该域中。
协议标识符:该标识符用于系统内的多路复用,当使用的Modbus协议时,该值为0。
长度:该域中的数值表示后继域内容的字节数,包括单元标识符和协议数据单元。
单元标识符:为了系统内路由,使用这个域。在服务器的响应帧内容中服务器必须使用相同的值返回该域的内容。
本文设计的读写功能所用到的Modbus功能码的定义如下表所示。
表 Modbus功能码
协议的数据单元包括功能码和数据两部分。本文以读取2个寄存器的数据为例来说明该部分帧格式的设置。
功能码:读写多个寄存器的功能码为03,该域大小为1字节。
数据:数据部分包含读起始地址和读的数量。本文从起始地址开始连续读取2个寄存器的内容,因此读起始地址为0,该域大小为2字节;读的数量为2,该域大小为2字节。
2、数据读取功能的实现
本文在上一节设计的数据帧格式的基础上,使用VC++ 2010实现了基于Modbus TCP/IP的数据读取功能,并使用MODBUS Simulator作为Modbus的TCP服务器。
数据请求的主要代码如下:
MODBUS Simulator的地址0000-0001写入了67.5。如图2-2所示。
在数据读取客户端中,首先点击“连接服务器”按钮,客户端提示连接服务器成功后,点击“启动定时器”按钮,则客户端开始周期性地从Modbus服务器中读取数据,并显示在客户端上。
3、结语
本文在研究Modbus TCP/IP协议的基础上设计基于Modbus协议的数据读取的数据帧格式,并使用VC++ 2010实现了该数据帧的数据读取功能。通过该读取功能,用户可以在PC机上可以读取PLC控制器上的数据。
参考文献
[关键词] Modbus; 监控; 功能码
1 引言
在油库和各种石化单位,定量装车作业十分繁忙,装车操作过程又要求相对精确。更加重要的是,涉及石化产品具有一定危险性。为了提高了装车精度和效率,降低损耗,减轻工人的劳动强度,同时尽可能保证安全作业,本文设计了基于Modbus协议的定量装车自动监控系统,并交付某公司使用。实际应用表明系统监控画面直观,人员操控方便,具备一定的主动安全保障能力。
2 Modbus协议
Modbus通信协议是美国Modicon公司开发的一种通信协议,它采用Master/Slave方式工作,一个主站可以连接多个从站,从站只能根据主站的请求作出相应的应答。它是一种开放、标准、免收许可费的通信协议。目前该协议已经广泛应用于自动化控制和测控仪表,并且已经成为我国工业自动化网络协议规范的国家标准之一。
Modbus协议有2种传输模式,即RTU模式和ASCII模式,相对于ASCII模式,RTU模式表达相同的信息需要较少的位数,且在相同通信速率下具有更大的数据流量,因此本系统选用该模式完成设计与实现。
Modbus协议的采用LRC和CRC两种校验模式来保证控制命令传输无误。本文采用CRC-16校验方式,该方式会根据当前发送或接收的命令字节码,计算对应的2个字节的CRC校验码。并将其加到命令字节码之后一并发送,组合之后的命令字节码格式为:
系统在实现过程中,考虑到最终将会采用普通的X86系列PC机作为监控终端,而该型机都是big-endian方式做多字节数据存储,与Modbus协议要求的little-endian刚好相反, CRC的计算结果必须满足这一要求。本文稍微调整了CRC-16校验码的产生方式如下:
Step1:将0xFFFF装入CRC寄存器;
Step2:将命令字节码的第一个字节与CRC寄存器异或,结果存放在CRC寄存器中;
Step3:CRC寄存器右移1位,高位填充0;
Step4:检查CRC寄存器的最低有效位,如果该位为0,则重复Step3;如果该位为1,则将CRC寄存器的值与0xA001异或;
Step4:重复Step3和4,直到完成8次移位之后,完成命令字节码中的对一个字节的处理;
Step5:对命令字节码的下一个字节重复Step2到Step5的处理,直到所有的字节都处理完成为止;
Step6:最终CRC寄存器中的内容就是该条命令字节码对应的CRC校验值;
例如,某命令字节数据[ 1 | 15 | 0 25 | 0 12 | 2 | 168 3 | 216 120 ]的含义为:给1号地址设备15号命令(写多个线圈),从它的25号起始地址开始(0 25),连续写12个线圈(0 12),写入内容为命令数据区的1010 1000 0011(168 3),根据命令计算出CRC校验码为(216 120)。
3 系统工作原理
本系统采用典型的RS232/485总线将上位机服务器端、上位机客户端以及各个下位机组成一个工业可控以太网,各下位机选取符合Modbus plus规范的相关设备,便于直接获取的操作过程中的各种数据信息,并封装成协议标准进行传输和通讯。主操作界面如图1所示。
系统工作原理框架如下:
(1)下位机通过传感器采集温度计、流量计、比重计等相关数据,并封装成Modbus协议格式数据供上位机客户端查询。
(2)上位机客户端通过串口和桥接器连接各个下位机,利用多线程串口读取函数主动进行数据收集,下位机按照上位机客户端的要求回传相应数据。然后,上位机客户端将收到的数据按功能码进行解析,并以图例、表格、文本等多种形式实时显示和记录。
(3)上位机服务器端通过TCP/IP网络与各个上位机客户端相连,对多个上位机客户端的状态信息进行收集、分析和存档,并通过主动发送命令的方式给上位机指令,进而通过上位机客户端给下位机下达控制命令,达到“监视――控制”双功能。
4 软件系统设计
上位机服务器通过接收Modbus请求,与上位机客户端进行交互,并对操作过程实时监控,利用成熟的数据库管理系统,接收、存储、处理和备份整个过程中产生的所有数据,为客户提供服务,并为进一步的数据分析提供历史依据。上位机服务器端主要功能包括:
(1)系统管理:该模块包括了各类管理员,操作人员的用户注册,授权和管理等等,防止非法操作人员恶意登录造成操作失误,也避免非授权操作员随意更改系统工作参数可能造成系统运行偏差。
(2)数据库管理:该部分模块选择成熟的数据库管理系统SQL Server2005对整个系统运行过程中所需要记录的所有数据信息就行存储和管理,为整个系统的运行和监控提供可靠的数据支持;
(3)系统工作状态显示:该模块负责以图像模拟显示多种数据状态,有利于管理人员实时监控各下位机客户端的操作情况。并且提供多种显示图像帮助管理人员分析各种操作情况,这是系统的核心功能之一, 在实现获取个下位机状态之后,对下位机进行直接控制是系统必需的核心功能之一,虽然在实际装车控制中主要使用的功能码只有2、4、15、16号命令,但是本系统实现了全部Modbus功能码,便于今后对新设备的扩充。。
(4)Modbus协议命令:该模块能够按照标准的Modbus协议,接收来自上位机客户端传送来的Modbus请求,完成数据采集、数据分析和数据存储工作,是系统工作状态显示实现的基础;
(5)安全警报功能:授油工作本身是具备一定危险性的工作,安全责任事故问题必须引起足够的重视。可以根据各种系统状况进行报警处理,保证系统工作状态安全可靠,避免业务事故的发生,并且具备自动报警信息记录功能,收集历史上曾经出现的安全事故信息,为安全人员分析发现安全事故规律,查找安全隐患提供数据支撑。
上位机客户端能有效地按照预定订单号自动完成装车作业,或者在操作员的控制下,进行控制参数设置,定量控制、数据采集、业务受理和报表打印等具体业务。上位机客户端主要功能包括:
(1)实时授油监视:该模块负责实时动画模拟显示整个下位机控制分组内所有鹤管的出油状况,及相关关键参数数值显示。例如:发油订单号、车号、油品类型、参数设定、误差范围等等;
(2)强制发油控制:该模块在特殊情况下,可以人为指定操作指令,以取代自动发油过程,控制启动发油、暂停发油、恢复发油、强制结束等方式来进行特殊操作,扩展控制功能,更加适应实际操作的变化;
(3)业务计划管理:该模块下,客户可以根据预约过的订单号,自动完成装车过程。也可以在没有订单号的情况下,有操作人员生成新的装车业务,并进行结算;
(4)业务查询:该模块按照操作员和客户要求的方式(诸如进行订单号、装车时间、油品类型、装车单位、操作员编号等等)进行多种关键字查询和统计功能,并且自动生成相关联报表。
(5)打印功能:其自定义打印功能,更加贴近实用,可以由用户自主选择打印;
5 结论
本设计采用OOAD思想,用UNL建模,并使用Borland C++作为开发工具,规范化的设计和编程过程,以及大量集成的成熟控件足以支撑本软件系统的快速开发。结果表明,软件系统既可以对标准Modbus功能码进行调试,也可以对自定义功能码进行设置,还可以实时监测和控制下位机状态,并结合数据库功能记录所有关键操作和核心设备配置参数信息,保障差错恢复。系统运行稳定可靠,使用简明方便,很好地满足项目要求。
[参考文献]
[1] AEG Schneider Automatic Inc. Modicon IBM host based devices user’s guide Apr.1996
[2] 张克涵,张呼和,顾李冯.VC环境下的电机状态监测软件设计[J].测控技术2012年第31卷第2期
[3] 吕国芳,唐海龙,李进.基于ModbusRTU的串口调试软件的实现[J].计算机技术与发展 2009年第19卷第9期
[4] 袁辉,李延香.基于Modbus通讯协议数据采集系统的设计[J].科技咨询导报 2007 No.19
[5] 陈柏金.通过串行口访问modbus现场控制网络[J].微计算机信息 2003.19(1)
[6] 王念春.基于Modbus的PC与下位机PLC间的通信程序[J].自动化仪表 第22卷第8期 2001年8月
[7] 徐涛,闫科.基于Modbus协议的串行接口实现与DCS通讯[J].工业控制计算机 2002年4月
[8] 罗朝霞,张高记.基于TMS320F240TA DPS的Modbus通信协议的实现[J].微计算机信息2005.21(72)138-139
[9] 房传礼,李建华.基于Modbus协议的大屏幕在线监视系统设计[J].自动化与仪表 2010年7月
[10] 卢文俊,冷杉.基于Modbus协议的控制器远程监控系统[J].电力自动化设备 2003年第23卷第6期
[11] 甑君,卫强,于耀.应用多线程技术实现串行通信与信号采集识别的同步[J].计算机工程 2003(10)196-197
[12] 李俊,徐红兵.基于Modbus协议的汽轮机保护系统通讯设计[J].自动化与仪表 2006年7月
[13] 方羽,梁广瑞.基于uCOS的Modbus协议的实现.装备制造技术[J] 2009年第1期
关键词:智能调压器;串口服务器; MODBUS协议
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2015)27-0197-03
Abstract: In this paper, it mainly implements a gas pressure controlling system, containing of five intelligent regulators and one host computer, in which each intelligent regulator connects with the host computer via a port. This system provides our customers with an efficient integrative solutions that realizes unified controlling management of five regulators by one host computer. Specifically, this system uses MODBUS communication protocol to realize the communication between each regulator and host computer. Additionally, users can remote access control, and query or control the state of regulators on time.
Key words: Intelligent regulators; Serial port server; MODBUS communication protocol
本课题来源于某燃气设备公司的一个项目,首先先对该项目进行简要的介绍。该燃气公司目前拥有五台智能调压器,如图1所示。该调压器拥有五种功能,分别是流量测量、本地或远程出口压力设定、流量限制、远程监控和终端用户管理。它的优点是功能多,且只需要一个电源。
每台智能调压器通过串口与上位机通讯,现在需要实现了一个高效整合解决方案,通过一台上位机对五台调压器的统一控制管理,并且用户可以远程对其进行访问控制,即时地查询和控制调压器的状态。
1 方案综述
1.1 硬件实现方案
由于每台智能调压器都是通过串口和上位机一对一连接,而上位机只有一个串口,所以想要用一台上位机实现对五台设备的集体控制,首先要解决硬件连接上的问题。
我们的解决方案是使用一个串口服务器[1]。串口联网服务器让传统的RS-232/422/485设备立即联网,利用基于TCP/IP的串口数据流传输的实现来控制管理[2]。串口服务器拥有多个串口,并且通过以太网与上位机连接,在上位机上虚拟多个串口,实现了一带多的功能。
本课题所使用的串口服务器可以同时和八台设备连接通信,很好地解决了硬件上的问题。
1.2 软件实现方案
硬件的问题通过串口服务器比较容易地解决了,下面重点在于软件上的实现。
首先,需要在调压器和上位机间建立通信,由于通过串口服务器,上位机具备了多个虚拟串口,所以可以直接使用传统的一对一通讯协议。在本系统中,我们使用MODBUS通讯协议中的命令3,命令6和命令16,来实现上位机对调压器的读多个寄存器,写单个寄存器和写多个寄存器的功能。
其次,为了实现多个用户远程的访问控制调压器,我们使用SQL SERVER 2008数据库作为中间媒介,现场的上位机通过串口服务器实时采集各个调压阀的状态,并存入数据库中, 而用户可以使用我们提供的应用程序在任何地方访问数据库,读取数据,从而远程监测燃气压力控制系统的状态。同理,远程用户可以将控制命令写入数据库,而现场上位机将这些命令从数据库读出,并转发给各个调压器。
最后,根据权限的高低依次设计Admin、Controller、Observer三种用户角色,所有远程用户必须使用账户密码进行登录,根据不同的权限进行不同的操作,这样可以保证系统的安全性。
2 MODBUS协议简介
MODBUS是OSI模型第7层上的应用层报文传输协议,它在连接至不同类型总线或网络的设备之间提供客户机/服务器通信[3]。MODBUS协议定义了一个与基础通信层无关的简单协议数据单元(PDU)。特定总线或网络上的MODBUS协议映射能够在应用数据单元(ADU)上引入一些附加域,如图2所示。
在本系统中,功能码代表了上位机向调压器指示的操作类型。根据需求,我们使用到了功能码3,6和16,下文将简单介绍这三种功能码。
2.1功能码3
功能码3用于读取寄存器连续快的内容,上位机通过这条命令,结合地址表,采集调压器当前状态。功能码3的请求报文,如图3所示。
2.2 功能码6
功能码6将某个值写入远程设备的单个寄存器中,上位机通过这条命令,结合地址表,设定调压器的状态。在本系统中,我们并未直接实现功能码6,而是将功能码6作为功能码16的一种特殊情况。
2.3 功能码16
功能码16用于将多个值写入远程设备的连续寄存器块中,上位机通过这条命令,结合地址表,连续设定调压器的多个状态。特别地,将寄存器数量设为1,即可作为功能码6的实现,用于设定单个状态值。功能码16的请求报文,如图4所示。
3 上位机控制程序
上位机控制程序是在现场的上位机的一个进程,由它对整个系统进行实时的控制。主要有以下两个功能:
1)运行时不断更新调压器监测数据到数据库中,供远程用户从数据库中读取。
2)从数据库的命令表项里读取远程用户命令并执行。
上位机控制程序使用定时器的方式,每5秒调用已实现并封装的MODBUS协议的接口,采集各个调压器的状态,并且使用[4]将当前状态更新到数据库的CURRENT_STATUS表,如表1所示。这张表里永远只有一条数据,这样远程用户通过不断的读取这张表里的第一行数据,就可以实时监控系统状态。
其次,上位机控制程序使用从数据库中的COMMAND_TABLE表中读取远程用户的命令,如表2所示。上位机控制程序通过表中DONE字段判断这条命令是否已执行,对于未执行命令,上位机程序调用MODBUS库接口,根据命令类型,调压器编号去设定调压器状态。
4 数据库表项和用户角色
4.1 数据库表项
在本系统中,数据库用来实现远程用户对调压器的监测和间接控制以及存放历史数据。在数据库中设置了四张表,分别是:
1) 历史信息表:用于记录实时采集的系统数据,采用月表的形式,在每月固定时间新建一张。
2) 当前信息表:实时记录当前调压器的状态。
3) 命令表:用于特定权限用户写入命令,上位机控制程序从中读取命令并执行。
4) 用户表:admin用户使用,记录用户信息,每注册一个新用户增加一个表项。
历史信息表和当前信息表都只提供给远程用户读取功能,而由上位机控制程序更新(写入)。由于有五台智能调压器,每台调压器都拥有各自独立的历史信息表和当前信息表。
4.2 用户角色
根据安全性的需要,用户分为以下三种:
1) Admin用户:拥有最高权限,主要用于管理其他用户。可以访问数据库中所有表,只有admin能访问用户表。
2)Controller用户:既可以查看历史信息和当前状态,即读取数据库中五台设备的历史信息表和当前信息表,也可以写控制命令到命令表,提供给上位机控制程序执行,对调压器进行远程控制。
3)Observer用户:权限最低,作为观察用户,只能访问历史信息表和当前信息表,不能访问命令表,即不能对调压器进行控制[5]。
5 结论
本文实现了一个高效整合的燃气压力控制系统,硬件上使用串口服务器扩展硬件上位机的串口,实现一带多的功能。通讯上,使用MODBUS通讯协议,实现了协议中的功能码3,功能码6和功能码16。使用SQL SERVER 2008数据库作为中间媒介,实现了远程监测和控制的功能。安全性上,根据权限的高低依次设计Admin、Controller、Observer三种用户角色,保证了控制系统的安全性。
参考文献:
[1] 董小吉. 利用NPORT串口服务器组网解决方案[J]. 治淮, 2006(1):41-42.
[2] 王双庆, 邢建春, 王平,等. 基于NPort串口服务器的人防工程智能设备集成[J]. 工业控制计算机, 2008(8):8-10.
[3] 潘洪跃. 基于MODBUS协议通信的设计与实现[J]. 计量技术, 2002(4):35-36.
关键词:modbus;一致性测试;自动化;用例生成器
中图分类号:tp393.09文献标识码:a
文章编号:1004-373x(2010)01-171-03
automation of modbus conformance testing
zhao jian
(northwest airtraffic management bureau,xi′an,710082,china)
abstract:the existing modbus protocol conformance testing method has following problem: there is not automatictesting method for it,and this brings negative impact on the effectiveness of test.in order to solve this problem,the architecture of automation method for modbus protocol conformance testing,the architecture includes test case generation and test result analyzer.the automatic conformance testing system based on the architecture is realized.in practice,the system found a number of hidden modbus conformance errors,this proves that the availability and effectiveness of the method.
keywords:modbus;conformance testing;automation;test case generation
0 引 言
modbus协议已经成为一种事实的工业标准,但modbus设备间的一致性、互操作性较差,是制约modbus发展的瓶颈。为了解决modbus协议的一致性和互操作性问题,国内外的研究机构展开了深入的研究并取得了一些成果。
在modbus-ida国际组织的支持下,进行modbus一致性测试的实验室陆续建立。目前,在国外得到modbus-ida国际组织授权的modbus一致性测试实验室仅有两处:一处是位于美国密歇根大学的modbus tcp一致性测试实验室;另一处为设在该课题所在机械工业仪器仪表综合技术经济研究所的modbus serial line/tcp一致性测试实验室,它是独立于产品制造商的第三方测试机构[1,2]。国外其他研究机构对modbus测试系统的研究处于发展阶段,modbus测试系统被应用到火电厂、电力监控系统、控制系统安全认证中,但都未形成一致性和互操作测试标准和自动化方法[3-6]。
在国内对进行modbus一致性和互操作性测试研究的机构主要有:北京交通大学的研究人员开展了modbus串行链路协议一致性测试系统的研发工作[7,8];开普电器检测研究院在modbus协议一致性测试方面有多年的经验,已加入modbus-ida协会[9]。
总得来说,国外在modbus协议的一致性和互操作性测试的研究已经取得了一定的成果,并形成了一些测试系统,但国内用户分享成果的代价较大,并且无法进行modbus设备的互操作性测试,并且尚未形成测试自动化方法;国内的研究已经起步并取得了一些初步研究成果,但在国内尚未形成测试标准和测试自动化方法。
为了克服目前研究中所存在的问题,本文主要研究modbus协议的一致性测试的自动化方法,测试的自动化方法主要包括测试用例的自动生成和测试结果的自动分析两方面,限于篇幅对测试结果的自动分析方法不予展开论述,主要论述测试用例的自动生成方法。
1 一致性测试的基本原理
协议测试理论经过几十年的发展,在许多方面都取得了很大的进展,其中最成熟的是协议一致性测试的理论,主要代表是iso制定的国际标准iso/iec-9646:协议一致性测试的方法和框架。图1是一致性测试的基本示意图。iut(implementation under test)是根据规范的具体实现,是一个内部不可见的实体;规范(speciflcation)以某种形式化语言或者自然语言描述,但不管怎样的描述形式,其根本都是一个扩展自动机模型;测试仪(tester)根据规范为iut产生一组测试序列 (test sequence),然后观察iut的外部行为是否符合规范的描述[7,8]。
图1 一致性测试原理示意图
目前的实际工程测试中,测试序列主要是由少数专家凭借经验制定的。因为原始的规范通常都是自然语言描述的,不同的实现者在使用形式化语言建模的过程中,就可能产生了一个一致性问题:原始规范和形式化规范之间可能在语义上产生偏差。根据这样衍生的形式化描述产生的测试序列不能作为判断是否通过一致性测试的依据。
对于一致性测试的过程,大约需要分五个步骤来完成[8],图2是一致性测试的过程。
图2 一致性测试的过程
第一步,分析测试需求。也就是说,分析相应的标准或规范,从中找出一组测试标准,建立用于实现的一致性描述pics(protocol implement conformance statement)。每个pics应该尽可能的简单并且仅仅集中在一个原子功能上,测试标准之间要做到不相抵触。
第二步,在pics上增加一些用于测试实现的协议实现额外信息pixit(protocol implementation extra information statement),pics和pixit就组成用于测试实现的一致性信息citi(conformanee information for testing the implementation)。
第三步,基于citi,生成一组抽象的测试用例atc(abstract test case)的集合——抽象测试套件ats(abstract test suite)。
第四步,对各atc中的参数选择合适的输入值以及相应的“预测结果”,得到可执行的测试用例etc(executable test case)的集合——可执行的测试套件ets(executable test suite)。当然,生成的可执行测试套件是与所处的测试平台是密切相关的。
第五步,对被测单元uut(unit under test)执行etc的时候,被测单元的测试过程将会产生一个“通过”或“失败”的报告。报告“失败”即未能通过测试则意味着与规范不一致。
2 一致性自动化测试方法
目前测试过程中的“生成ets”、“测试uut”等工作步骤中实现了简单的测试系统,能够对一些工作实现自动化,如根据手工输入的modbus协议的从站号、功能号、地址等参数生成测试用例,能够自动执行测试用例并生成简要测试报告。但这些测试过程存在以下问题:测试用例的生成需要大量的人为干预;另外,测试结果只是简要的测试报告,没有更进一步的分析报告,以帮助用户更容易地确定问题所在。
如图2虚线框部分所示,“生成ets”、“测试uut”等工作步骤可以实现测试自动化。自动化后的体系结构如图3所示。其中可视化用例设计器、测试用例生成器完成测试用例的自动生成工作;测试结果分析器完成测试结果的自动分析工作。限于篇幅对测试结果的自动分析方法不予展开论述,主要论述测试用例的自动生成方法。
图3 一致性测试过程的自动化示意图
通常在一致性测试过程中,测试用例的设计和生成是软件测试的关键任务和难点,据统计,约有40%一致性测试开销用于设计和生成测试用例上。长期以来,测试用例的设计和生成主要依靠手工完成,这意味着要求测试人员具有相当的经验和较高的专业水平。因此,实际工程中的测试用例生成往往带有很大的盲目性,主要依靠直觉经验产生测试用例,这导致测试用例数量多,测试效果差,测试成本居高不下。另外,如何生成最能发现被测系统(或程序)存在问题的测试用例,如何能用最少的测试用例实现足够大的覆盖率,也是测试人员一直追求的目标。这些问题的解决方案就是测试用例的自动生成[10]。
2.1 测试用例的自动生成方法的体系结构
图3中的测试用例自动生成器是测试用例自动生成工作的核心。其体系结构如图4所示。
其中用例设计描述是描述用例特性的文本,根据所选择的算法不同而描述方式也不同:如采用“基于形式规格说明的方法”则用z,vdm,obj,larch [11]等语言来描述,如采用“组合覆盖方法”则用xml脚本来描述。
图4 测试用例自动生成器的体系结构
算法适配器为各种算法提供接口,它向上为描述解析器提供算法支持服务,向下解释各种算法,使得体系结构能够兼容多种算法而增强体系结构的扩展性和适用范围。
描述解析器基于算法适配器来分析用例设计描述,将描述统一转换成用例生成器可识别的内部描述形式,然后传递给用例生成器。
用例生成器获得来自描述解析器的内部描述,并根据描述自动生成可执行测试用例。可执行的测试用例支持多种形式存储,如内存存储、文件存储、数据库存储等,具体的存储格式随用例执行器的需求而变。
2.2 测试用例的自动生成方法的实现
为了验证体系结构的合理性和有效性,基于microsoft vc 6.0 sp6、modbus activex控件、“分类树方法”、cte xl(classification tree editor extended logics)实现了modbus协议一致性测试的自动化系统。
其中cte xl是我们系统中的可视化用例设计器,它是一个语法控制的、可视化、图形化的编辑器。帮助我们更加有效地使用分类树方法进行测试用例的设计。
分类树方法是黑盒测试中的一种部分测试方法,由grochtmann 和grinun 提出,后又由chen 和poon 改进[11],它是一种有效的功能测试方法。分类树方法的基本思想是: 首先逐层划分测试对象的输入域,然后将划分的独立的类结合为无冗余的测试用例,这些测试用例覆盖了整个输入数据域。
算法适配器、描述解析器、用例生成器、分类树方法均使用microsoft vc 6.0 sp6实现。
modbus activex控件用来执行用例并生成测试报告。该控件具有多线程、多任务、多优先级等特性,支持modbus serial line/tcp通信协议,支持rtu和ascii两种通信模式,具有良好的性能。
系统实际使用时,首先用cte xl构建用例设计,也就是生成z语言描述的规格说明,然后描述解析器解析该规格说明并生成测试用例模板(系统内部格式),交由用例生成器生成可执行的测试用例,最后由modbus activex控件用来执行用例并生成测试报告。人工参与的部分只是在第一步,即用cte xl构建用例设计,其余部分均自动完成,大大降低测试人员的工作量,提高了测试工作的效率和客观性。
该实现已经被应用到“山东石油化工厂装车管理系统”中用来测试管理系统和油气批量控制仪之间modbus通信,也被应用到“长庆单井计量信息系统”中用来测试信息系统和plc之间的modbus通信,限于篇幅测试过程不赘述,经过测试发现了一些隐藏的modbus一致性问题并且便于使用,提高了一致性测试有效性和客观性,同时增强了产品的可靠性和可用性,也证明了本文所论述的一致性测试自动化方法的有效性和实用性。
3 结 语
在分析了现有modbus协议一致性测试中存在的问题后,本文提出了一致性测试的自动化方法,基于这个方法设计并实现了一致性测试系统,在实际应用中该系统发现一些隐藏的modbus一致性问题,提高了modbus一致性测试的有效性和客观性,证明了该方法的有效性和实用性。目前该方法的实现基于分类树方法,下一步将研究其他测试用例自动生成方法,使其进一步完善。
编辑整理
参考文献
关键词:MODBUS PLC 变频器
中图分类号:TP273 文献标识码:A 文章编号:1007-9416(2012)02-0072-02
1、引言
MODBUS作为一种简单易用的通讯协议已经越来越多的应用在各类仪器仪表中,下面笔者以西门子公司的S7200PLC通过自由口与ABB公司的ACS510变频器使用MODBUS协议进行通信为例,对MODBUS通讯的应用进行叙述,以期达到抛砖引玉的效果。
2、硬件配置
图1给出了SIMATIC S7-200CPU与四台ABB ACS510变频器构成的MODBUS网络。S7-200CPU为主工作站。变频器1、变频器2,变频器3和变频器4为从工作站。设置变频器的通讯协议参数9802均为1,即变频器通过RS485串行通讯口和MODBUS总线相连。设置通讯速率参数5303为19.2kb/s。设置校验方式参数5304为偶校验,1个停止位。设置控制类型参数5305为 ABB传动简版。从左到右变频器1、2、3和4的站地址参数5302分别设置为3、4,5和6,并将变频器4的总线终端电阻DIP开关置ON。在对变频器以上参数设置完成后应对传动重新上电激活,使新地址及通讯协议生效。
变频器控制要求:
变频器分现场和远程两种控制模式,现场控制柜设置三位置模式选择开关,分别为停止、本控和远程。在本控模式下启动/停止命令由现场开关触发数字输入DI1控制,频率由现场的电位器改变模拟输入AI1的输入电压进行调节。当选择远程模式时,数字输入DI2接通,通知PLC现变频器已经处于远程控制模式。为能够实现以上功能并在人机界面能够观察到变频器的运行频率和通过模拟输入AI2输入的实际流量,还需要对变频器其他部分参数进行设置,见表1。
3、程序设计
3.1 通讯内容
主工作站轮流发送请求报文到每个变频器从工作站,随之每个从工作站产生响应报文。PLC主工作站分别对每个变频器从工作站进行如下操作:
(1)对每个变频器的输出线圈1~3的状态进行查询;
(2)查询变频器状态寄存器40004状态字、40005实际值、40006实际值和40007实际值。40005~40007数据值对应于表1中变频器参数5310、5311和5312中的实际值。
(3)写变频器控制字,对变频器的远程启停进行控制。
(4)写变频器寄存器,对变频器的外部2给定进行控制。
对一个变频器的数据全部读写完成后,开始对下一站号变频器的数据进行读写。当所有变频器的数据读写完成后,主工作站重新开始对最小站号变频器的数据进行读写。数据的传输及接受采用PLC自由通讯口模式进行,报文按照modbus的协议组织。
3.2 通讯格式
MODBUS请求报文格式如表2。
因在S7-200PLC发送指令XMT中,发送缓冲器的第一个字节指定的是数据传输的字节数,从第二个字节以后的数据为需要发送的数据。因此,结合MODBUS请求报文格式,PLC发送数据的格式如表3。
在整个网络通信过程中,主工作站轮流发送请求报文到每个从工作站,随之每个从工作站必须产生响应报文返回到主工作站。当主工作站向从工作站发送请求报文和接受从工作站返回的响应报文时,在主工作站储存区开辟了发送缓冲区和接受缓冲区。主工作站向从工作站发送请求报文时,首先对相应从工作站输出缓冲区的数据进行CRC运算生成校验码,并将校验码叠加在输出缓冲区的数据之后再传送到发送缓冲区,然后再由发送指令发出。建立一个远程循环结束标志位,当响应报文全部接受完成,置该位为ON。主工作站在接受从工作站的响应报文时,先把响应报文输入到接受缓冲区,再把接受缓冲区中的数据传送到输入缓冲区。为此,在主工作站中要留有两个数据存储区,一个作为报文请求(输出缓冲区),另一个作为报文响应(输入缓冲区)。
在MODBUS RTU通讯协议中都必须要求有CRC循环冗余校验。CRC循环冗余校验为两个字节,附加在报文后面的CRC的值由发送设备计算,当放置CRC 值于报文时,高低字节必须交换。首先发送低位字节,然后再发送高位字节。故此在发送缓冲区中的数据要比输出缓冲区的数据多两个CRC循环冗余校验字节。接收设备在接收报文时重新计算CRC的值,并将计算结果于实际接收到的CRC值相比较。如果两个值不相等,则传送的数据为错误。
3.3 程序描述
SBR0子程序:在PLC上电初始化阶段,设置通讯口为自由口通信方式,并设置波特率及校验方式,允许全部中断时件,并设置定时中断的时基为20毫秒。在这里设置波特率为19.2KB/S,偶校验,每字符8个数据。注意必须与从工作站的通讯参数相同。为输出和输入缓冲区的数据地址建立间接寻址指针。并设置请求报文的剩余数目为4,设置从工作站的查询剩余数目为4。
将输出缓冲区指针中指出的地址为起始地址的12个字节通过块传送命令传送到发送缓冲区单元中。并复位远程循环结束标志位。
对发送缓冲区中的报文进行运算生成CRC,交换CRC 寄存器中的高低字节,并将交换完成的CRC 寄存器叠加到发送缓冲区中。
启动定时中断和发送中断,并通过发送指令将发送缓冲区中的请求报文发送。
建立跳转入口,标号1。
若循环未结束,跳转到标号1。程序不向下执行,直至远程循环结束,标志位为ON。
远程I/O更新完成,将接受的报文通过块传送命令传送到接受缓冲区指针指出的接受缓冲区中。
修改发送缓冲区和接受缓冲区指针值,指向下一个输出和输入缓冲区字节地址。将请求报文的剩余数目减1。
当请求报文的剩余数目为零时,重新设置请求报文的剩余数目为4,将从工作站的查询剩余数目减1。
当工作站的查询剩余数目为零时,重新设置从工作站的查询剩余数目为4,为输出和输入缓冲区的数据地址重新建立间接寻址指针。
INT_0中断程序:在接受报文超时情况下,禁止接受中断和接受定时中断,置远程循环结束标志位为ON。
INT_1中断程序:在发送超时情况下禁止发送中断和发送定时中断,置PLC为STOP模式。
INT_10中断程序:禁止发送完成中断,启动接受定时中断INT_0和接受数据中断程序INT_11。
INT_11中断程序:若接受的首字符(从工作站地址)为从工作站的正确地址,则建立一个接受字符的地址指针。并把接受到的字符装入到接受字符指针指出地址中。增加指针的数值,指向下一个地址。并启动中断程序INT_12。
INT_12中断程序:把接受到的第二个字符(功能码)装入到接受字符指针指出地址中,增加指针的数值,指向下一个地址。启动中断程序INT_13。
INT_13中断程序:把收到的第三个字符(字节数)装入到接受字符指针指出地址中,并修改指针值。第三个字符为接受的不含CRC校验码字符的总数目,剩余接受字符数目为将字节数加2,若反馈的功能码为十六进制数0F,全部剩余字符数目为5。将全部剩余字符数目置入到累加器AC1中,当累加器AC1为零时,接收字符也就完成。启动中断程序INT_14。
INT_14中断程序:将接受到的字符装入接受字符指针指出地址中,并修改地址指针值和将将累加器AC1数值减一。若累加器AC1的数值为零。则关闭字符接受中断和定时中断,并将远程循环结束标志位置ON。
4、结语
该系统自投入在线运行以来,系统调节迅速且运行稳定,并取得了良好的经济效果,在助剂添加中具有较高的推广价值。
参考文献
[1]殷洪义.可编程序控制器选择、设计与维护.机械工业出版社,2002年.
[2]S7-200可编程控制器系统手册.2004年.
【关键词】 Modbus协议 保护装置 报文丢失
南京地铁二号线变电所内高压供电设备的保护装置(P139保护装置和P521保护装置)与所内SCADA系统的网络通信服务器(WTS-65C)通过RS485接口运用Modbus协议进行通信。在正常运行状态和调试状态下,保护装置的信号能够准确、及时地传输给SCADA后台。地铁实际投运后,发生了多次重要保护动作没有被后台采集到的故障。这些故障的共同特点是保护装置本身可以观察到保护动作的完整信号记录,SCADA系统后台却只显示了开关跳闸的动作而无法查阅与之相关的保护告警报文。
1 Modbus协议介绍
1.1 背景介绍
Modbus协议是由美国MODICON公司在1978年开发的一种通信协议,最初是用在MODICON公司开发的PLC可编程控制器上,它支持传统RS232、RS422以及RS485通信标准。1996年MODICON公司又推出了基于TCP/IP的Modbus协议使得其在工业领域的应用更加广泛[1]。
1.2 Modbus通讯协议关键技术
各种不同公司和厂家的PLC、RTU、SCADA系统、DCS或与兼容Modbus协议的第三方设备之间可以通过Modbus协议连成工业网络,构建各种复杂的监控系统。参考ISO/OSI模型,可以发现在物理层,Modbus协议可以采用RS232、RS422、RS485接口以及以太网的物理层结构;在数据链路层,Modbus主要采用串行主从协议;由于Modbus现场总线的实时性特点,所以在网络层、传输层、会话层和表示层,Modbus协议模型中均没有定义;在应用层中Modbus规定了协议的模型,主要包括消息帧格式、功能码、校验、通讯时序控制等内容[2]。
电力系统中Modbus协议的数据分为四类:开入量;开出量;只读模拟量(输入寄存器),例如遥测值等;可读写模拟量(保持寄存器),例如保护定值、设备参数等[4]。Modbus需要处理的所有数据都需要存放在装置的存储器中,为了不把存储器物理地址和寄存器编号混淆,就需要把寄存器编号与存储器地址建立链接,通过统一管理存储器地址来管理寄存器。
Modbus的数据存储模型也分为两类,分别是带有四个独立数据块的数据存储模型和仅有一个数据块的数据模型。四个独立的数据块模型使用四个独立的存储器分区分别存储四种数据,这样有助于针对不同类型的数据进行相应的硬件处理,但是不同的工业应用场合使用的数据类型不会完全相同,因而可能产生存储器资源的耗费;共用一个独立数据块模型进行数据存储的方式可以节省存储器的硬件资源,但需要软件针对不同的数据类型对存储器空间进行划分。南京地铁二号线高压保护装置使用了仅有一个数据块的数据存储器结构。
2 保护信号丢失的原因分析及解决方案
2.1 南京地铁二号线Modbus规约数据传输方式
南京地铁二号线站内SCADA系统在RS485通信标准下采用Modbus一对多通信协议。作为Master的网络通信服务器采用RTU方式轮流向每一台35kV保护装置发送数据请求广播。请求报文为8字节报文,其数据格式如(表1)。
2.2 保护信号丢失的原因分析及解决方案
通过调查所有历史告警记录,我们发现故障中被丢失的保护信号也曾经被系统采样到并形成报文传至SCADA系统后台。这说明保护信号丢失的现象并不是必然发生,也就排除了系统结构倒致故障的原因。
通过查看保护装置的保护信号点表配置,我们发现保护信号的采样和维持皆取自于保护信号的条件信号。保护条件是否满足是判断保护动作是否发生的关键,所以保护动作信号从保护条件信号上采样并判断并没有问题。但是保护信号的维持也依靠保护条件信号的维持就产生了矛盾。对比试验条件和现场环境,可以发现实验条件下保护条件信号是人工手动加载于装置的接线端子之上的。信号的发生与消失的速度完全依靠人手工操作的速度,而这个速度明显慢于网络通信服务器的一个循环检测周期,因而保护信号因得到了手工延时可以被网络通信服务器采集到。现实条件下保护信号却是一个瞬态量。当有保护动作时,相应机构的动作延时一般不超过50ms,机构动作完毕后,作为保护动作的条件就消失,保护条件信号和保护信号随之消失。所以保护信号在保护装置中的维持时长一般短于50ms。当保护信号发生时网络通信服务器在保护信号维持的时间段内恰巧能够采集到相应的保护装置,则保护信号能够被采集并上传;如果此时网络通信服务没有采集到这一台保护装置,那么在保护信号消失之后网络通信服务器就不会采集到相应的告警。
3 结语
循环检测是Modbus协议的主要特点。作为串行通信条件下的一种通信协议,Modbus无法通过自身的构架改良来解决瞬态信号的采样问题。设法延长信号时长和提高采样器件的采样频率是两种可行的方法。后一种方法需要硬件升级,耗用较高的成本;前一种方法成本较低,但是需要合适的使用环境以及可实现的信号延时方法。
参考文献:
[1]李伟.基于Modbus协议的工控节点设计与实现[J].计算机工程,2007-36(16):226-228.
[2]史运涛,孙德辉,李志军等.基于Modbus协议的通讯集成技术研究[J].化工自动化及仪表,2010-34(4):67-72.
[3]卢文俊,冷杉,杨建军.基于Modbus协议的控制器远程监控系统[J].电力自动化设备,2003-23 (6):54-56.