基于Modbus协议的电火花控制系统
摘要: 提出了一套基于Modbus 协议的总线控制系统,分析了Modbus 协议的特点,介绍了Modbus 协议的内容及通信过程,给出了系统的软件实现方法,包括系统流程图及部分校验代码。
关键词:Modbus,现场总线,电火花,RTU
EDM CONTROL SYSTEM BASED ON MODBUS PROTOCALAbstract:Put forward the system based on Modbus protocol, analasys the advantage and disadvantage of the theprotocol, introduce the content and corresponding procedure of it, put forward the realization of the softwareincluding the diagram and some check code.
Keywords:Modbus, Fieldbus, EDM, RTU
0. 前言
国内的大多数电火花设备由于实时性等方面的要求,控制系统均是基于dos 环境设计,这种系统能满足电加工的基本要求,但也大大影响了人机交互的改进以及远程通信等现代控制的要求;模块化结构可裁减性强,便于满足不同用户的需求,是系统深入发展的良好基础;专业化的信号采集设备及检测装置成为系统稳定和可靠运行的保障;应用网络技术,可做到信息处理综合化,智能化;与此同时,VB、VC 以及各种组态软件的发展为人机界面及总线控制的发展的提供了良好的开发环境,使我们能够设计出更为合理及人性化的系统。本文试图将现场总线理论应用于电火花加工机床,并最终通过使用Modbus 协议实现各设备之间的互联。[4]
现场总线是应用在生产现场,在微机化测量控制设备之间实现双向串行多节点数字通信的系统,也被称为开放式,数字化,多点通信的底层控制网络。[5][6]在整个工厂的控制网络中,现场总线处于重要的基础地位。
1. 控制系统结构
1.1 系统基本结构
现场总线控制系统一般采用上位计算机结合下位智能仪表来实现控制功能。在本系统中,由于系统的检测装置简单易用,因此采用微控制器来读取信号并最终传输给上位机。一般来说,总线系统主要包括变送器,总线和检测站。在本套系统中,微控制器和检测装置成为智能仪表即变送器,它作为从机使用,但确是系统的核心部件,而上位机即检测站主要完成人机交互的任务以及一些优化、复杂计算和控制的功能。个性化的人机界面以及标准化的总线结构设计,可方便的扩展系统的控制功能。
整套系统结构图如图1 所示,系统最主要包括一个服务器,一台pc 机,三个微控制器及相关检测设备。
图1 系统结构图
这几层的工作主要包括:
1. 最底层为数据采集层,需要从现场采集实时的数据,比如油温,油面高度等。三个微控制器作为现场控制层的核心器件,每个被赋予唯一的本机地址用以识别身份。微控制器即变送器也是整个系统的核心设备,其作用主要是采集间隙电压,液位油温,限位报警,手控盒控制等实时数据,自动实现伺服控制,自动灭火,风扇开关,定时抬刀等功能,并同时将数据输出到modbus 现场总线测控网络。
2. 现场控制层的任务是将所有的加工状态通过双脚电缆送至控制室的监控计算机,组成现场总线网络,而在此网络中,所有传输的信息均遵循modbus 协议。Modbus 现场总线将现场变送器和检测站连接成一个测控网络,实现电火花加工的监测计量与管理。
3. 工厂监控层安装人机界面软件,负责监视所有加工参数即电规准,以及所有相关数据的显示及键盘输入信息处理等人机交互过程。pc 机作为监控计算机,通过以太网连接到远程管理中心,实现向上进行网络运行;监控计算机可以安装moden,通过现场进行单击操作。
4. 最上层为远程管理层,可以由以太网,top 等局域网段组成,一般设服务器,pc 机与服务器之间通过以太网卡,网关相连,也可通过路由器连接至广域网。服务器是系统的外扩部分,可以选用。
1.2 物理实现
目前,可以通过下列三种方式实现Modbus 通信:以太网上的TCP/IP;各种介质(有线:EIA/TIA-232-F、EIA-422、EIA/TIA-485-A;光纤、无线等)上的串行链路上传输;Modbus PLUS,一种高速令牌传递网络。选择何种实现方式主要是依据他所连接的设备所处的地位。一般采用标准的232 口即可,但由于计算机上的rs232 传送的距离不超过30m,因此可以选用485 接口。除此之外,422 口也为标准串行数据接口,表1列出了他们之间的主要差别。本套系统采用了隔离的RS-485 通信方式来提供对Modbus 的硬件支持。
Modbus 系统是一种主从网络,容许一个计算机和一个或多个从机通信。当在Modbus 网络上通信时,每个控制器都有自己的设备地址,主机识别按地址发来的消息,并决定要产生何种行动。当在其他网络上传输时,包含了Modbus 协议的消息转换为在此网络上使用的帧或包结构。此时,控制器既可以作为主设备也可以作为从设备, 但不能两者同时兼备。
根据各种设备的不同接口,总线上还可以串联打印机等设备,也可以将这些设备直接连接至监控计算机的打印机端口或USB 口,实现通信。
芯片要根据所接收的信息进行选择,如果是数字量,则最常见的单片机或pic 微控制器等均可选用,如果是模拟量如间隙电压,则要选择带模拟端口的芯片。
电缆选择可以根据所选择的传输通道及距离来确定,这里选用的是带屏蔽的双绞电缆。
2 Modbus 协议
Modbus 协议是OSI 模型第七层上的应用层报文传输协议,它在连接至不同类型总线或网络的设备之间提供客户机/服务器通信。互联网组中已经保留TCP/IP 系统端口502 用以访问Modbus,Modbus 协议已经成为一种流行的工业控制传输标准。
2.1 协议内容
Modbus 协议定义了消息与格式和内容的公共格式,主要采用命令/应答方式,每一种命令报文都对应着一种应答报文,命令报文由主站发出,当从站收到后,就发出相应的应答报文进行相应。Modbus 的信息帧包括站点、字节长度、功能码、操作地址、操作数据、CRC 校验值等。在Modbus 系统中有两种有效的传递模式即ASCII(美国标准信息交换码)和RTU(远程终端装置)模式。内容格式及字符长度如下:[2]
由于RTU 模式传输位数少,使用方便,本文内容均采用RTU 模式。
2.2 通信过程
Modbus 主从节点之间通信过程大致为:
(1)从节点通过特定的端口与主节点建立连接,等待接收主节点发送的请求帧信号。
(2)主节点根据实际需要达到的目的选择合适的功能,将其对应的功能代码保存在ADU 的功能代码域,把必要的参数和子功能代码保存在数据域中,并将传输标志、协议标志、数据长度等存放在标志域中,从而组成一个完整的数据帧发送到从节点。
(3)从节点对收到的请求帧经过错误检测后,根据协议的规定将其分解成基本功能单元,并按照功能代码的要求完成特定的操作,最后还要返回一个功能回应信号。如果请求帧或某一步操作出错,就返回一个错误报告。完备的出错应答是Modbus 的一个特点,这有利于通信主节点判断通信的错误原因,从而将其排除,保证通信可靠进行,提高通信成功率。[3]
3. 软件实现
软件实现时包括:初始化关键字,包括波特率设置,数据位数,停止位数,奇偶校验模式等,总线上所有的master 及slave 的以上设置应完全一致。
Modbus 编程主要需处理好校验码的生成及数据包开始标志的检测。[3]
3.1 地址定义
通信程序必须处理好数据报开始的标志,因为每次主机发送数据时,所有的从机都会接收到信息,但只有地址相同的从机才会响应,因此地址的判别至关重要。在两个数据包之间modbus 协议将提供3.5 帧的空闲时间,此时,总线上所有的从机要做好接收准备,一旦主机有数据包发出,从机立刻接受此数据。这当中的第1 帧即为地址帧。从机记录该地址并判断是否执行该功能。
通常,程序中会设置一个3.5 帧计时器,当线路上有数据时计时器不计数,一旦线路空闲则计时器计数开始,直至该计时器停止计数,这时线路上开始有数据包发出,这第一帧数据即为地址帧。值得注意的是,3.5 帧时间并非常数,应根据传输速率及帧校验方式(奇偶校验或无校验)而定。
3.2 功能码定义
客户所请求的服务和服务器所提供的服务均通过功能码(Function Code)标识。Modbus 功能码分三种,即公共功能码、用户自定义功能码和保留功能码,公共功能码是已定义的功能码,保证其唯一性,包含现存已定义的公共指配功能码和未来使用的未指配保留功能码。用户定义功能码有两个定义范围,即 65 至 72 和十进制 100 至 110。用户没有 Modbus组织的任何批准就可以选择和实现一个功能码。保留功能码是一些公司对传统产品通常使用的功能码,并且对公共使用是无效的功能码。
为使用方便,在本套系统中,我们仅编写Modbus 协议中的三个公共功能码,包括写单个寄存器0x06,读多个寄存器0x13,读写多个寄存器0x17。以写单个寄存器为例,请求信息为
除此之外,我们还可以扩展其他功能,比如利用读文件记录0x20,写文件记录0x21 两个功能码来存储系统的相关信息,如故障记录,使用过的规准查询,各设备使用情况等。
3.3 校验码的生成
根据传输模式的不同,系统需要产生不同的校验码(check sum),ASCII 模式采用LRC 校验(Longitudinal Redundancy Check)而RTU 采用CRC 校验(Cyclical Redundancy Check),实现这两种方法的函数均可以在相关资料中找到。下面是用C 语言设计的CRC 校验,其中Unsigned char* data 为指向讯息缓冲区(buffer)之指针 Unsigned char length 为讯息缓冲区中位元组数目,而产生的返回值reg-crc 即为回传之校验码。[2]
unsigned int crc_chk(unsigned char *data, unsigned char length)
{
int j;
unsigned int reg_crc=0xFFFF;
while(length--)
{
reg_crc^=*data++;
for(j=0;j<8;j++)
{
if(reg_crc&0x01)
{
reg_crc=(reg_crc>>1)^0xA001;
}
else
{
reg_crc=reg_crc>>1;
}
}
}
return reg_crc;
}
4. 总结
通过上述系统,希望能与先进控制设备实现对接,从而提高系统的改进速度,使机床整体性能得到提升。
本文作者创新点:将modbus 这项广泛应用的协议用于电火花加工机床,并在加工中取得了很好的加工效果,提高了整体机床的自动化程度。
5.参考文献
(1) 朱小襄.Modbus 通信协议及编程.电子工程师, vol.31. No.7 jul. 2005
(2) 台达VFD-M 变频器使用手册
(3) 基于Modbus/TCP 协议通信节点的实现.机床与液压,2004.No.12
(4) 杨大勇.电火花成形加工数控系统的研究.电加工与模具,2003 年第1 期
(5) 鲍吉龙,叶平. 工业监控系统的网络化发展.微计算机信息,2006 年第6-1 期,P66-68
(6) 阳宪惠.现场总线技术及其应用.北京:清华大学出版社,2000
(7) 陈维刚.一种工业以太网与现场总线协议转换器的研制.仪器仪表学报,第26 卷第5 期
作者简介:安连祥(1956—),男(汉族),教授,硕士生导师,控制理论与控制工程专业,研究方向:计算机智能控制。
王春睿(1981—),女(汉族),河北省张家口人,河北工业大学在校研究生,研究方向:控制理论与控制工程,主要从事电加工机床控制系统的设计和应用。
Biography: Wang Chunrui(1981—),female(Hahn nationality), born in Zhang Jia Kou city in Hebei province, postgraduate in Hebei University of Technology, research field:control theory and control engineering, mainly undertake in design and application of control system of EDM machine tool.Biography: An Lianxiang(1956—), male(Hahn nationality), Master tutor of control theory and control engineering, research field:computer intelligent control.