Modbus 协议在工矿电机车上的应用
扫描二维码
随时随地手机看文章
0 引言
当前,工业控制已从单机控制走向集中监控、集散控制等,这就要求不同类型的自动化设备之间要互连通信,从而进行数据的交换和传递。串行通信由于其简单高效,易于编程实现,始终是各种自动化设备之间实现通信的主要方式之一。目前的智能仪表和测控系统为了实现与控制设备的连接,普遍都提供对串行通信的支持。基于串口的通信协议有很多,如:Modbus协议、CDT规约等,甚至许多厂家都定义了自己专用的通信协议。其中,Modbus协议因其简单规范,功能齐全,易于编程实现等优点,在串行通信中得到了广泛的应用。
1 Modbus协议简介
Modbus 协议是工业控制器的网络协议中的一种。Modbus协议是Modicon公司于1978年发明的一种用于对电子控制器进行控制和通信的通信协议。
通过此协议,控制器相互之间、控制器经由网络( 例如以太网) 和其他设备之间可以进行通信。Modbus协议的开放性、可扩充性和标准化使它成为一个通用工业标准。Modbus 协议并没有规定物理层,只定义了控制器能够认识和使用的消息结构,而不管它们是经过何种网络进行通信的。在实际应用中,可以使用RS-232,RS-485/422,MODEM加电话线,甚至TCP/IP来联网。所以,Modbus的传输介质种类较多,可以根据传输距离来选择。
Modbus 通信采用主从方式,在同一个网络中有一个主设备及最多达255 台的从设备,从设备的地址编码为1耀255。通常情况下,主设备只与1台从设备通信,但当主设备发出的地址码为0 即采用广播方式时,可以将消息发送给所有的从设备。标准的Modbus使用RS-232C串行接口,因此,Modbus 通信也是以帧为单位,帧的数据结构与RS-232C帧相同。
Modbus每次通信发送和接收的数据包由若干帧组成,协议正是定义了这些帧的意义,控制器只要按照协议解释其接收和发送的帧数据,就能与在同一网络中采用同样协议的控制器实现通信。
Modbus通信方式有两种,一种是ASCII(美国标准信息交换码)方式,一种是RTU(Remote Terminal U原nit,远程终端装置)方式。一般来说,通信数据量少而且主要是文本的通信要采用ASCII方式,通信数据量大而且是二进制数值时,多采用RTU方式。
2 工矿电机车控制系统的硬件组成
如图1所示,工矿电机车控制系统主要由以下三部分组成:司机操纵台、牵引逆变器、交流牵引电机。
司机操纵台安装有司机控制器和集中智能显示装置等。司机通过司机控制器给牵引逆变器发出命令(如:前进、后退、牵引、制动、速度给定等),对机车进行控制。机车的运行状态,如:牵引逆变器直流输入电压、牵引逆变器输出电流、电机转速、机车速度、里程、蓄电池电量以及故障报警和信息等,则要通过RS-485总线传递给集中智能显示装置;同时,集中智能显示装置也可以通过RS-485总线对牵引逆变器进行参数设置,以适应不同工况和不同用户对牵引逆变器提出的不同要求。
3 通信系统的硬件实现
工矿电机车串行通信是采用RS-485 总线进行架设的。牵引逆变器与集中智能显示装置上的串口电平都是TTL,为了在它们之间利用RS-485总线进行串行数据传输,需要把TTL 电平转换为RS-485电平,TTL 和RS -485 之间的电平转换芯片有MAX481等。图2是牵引逆变器与集中智能显示装置通信连接示意图。通信双方的DSP 芯片都采用TMS320F240芯片,因而电路是对称的,TXD、RXD引脚分别接DSP的TXD和RXD引脚,485_EN与一个IO口相连,如IOPA.3口。
RS-485 数据信号采用两线制接线方式。两线制接线方式使用一对屏蔽双绞线,其中一线定义为A,另一线定义为B,如图2所示。在发送端TXD将串行口的TTL电平信号转换成两路差分信号A、B 输出,经传输后在接收端将差分信号还原成TTL 电平信号。通常情况下,发送驱动器A、B 之间的正电平在+2耀+6 V,是逻辑“0”状态,负电平在-2耀-6 V,是逻辑“1”状态。
4 通信系统的软件设计
工矿电机车的使用环境非常恶劣,灰尘比较大、现场干扰大。由于Modbus通信协议的可靠性非常强,所以软件的通信协议采用Modbus 通信协议,通信方式采用RTU方式。
4.1 Modbus通信帧的设定
一般的,基本Modbus通信帧如表1所列。
4.2 DSP通信初始化子程序
DSP的初始化子程序很重要,引脚TXD、RXD的功能,通信波特率的大小,以及中断的优先级别都在此设定,程序编制的正确与否是能否正常通信的关键。现场的DSP通信初始化子程序如下。
LDP #224
SPLK #0037h,SCICCR
(一个停止位,奇校验,SCI 通信,空闲线多处理器模式,8位字符长度)
SPLK #0013h,SCICTL1
(禁止接收错误中断,未选定发送特征,禁止休眠,使能TX、RX)
SPLK #0000h,SCIHBAUD
(晶振10 MHz,CPUCLK=20MHz,SYSCLK=CLKIN=10 MHz)
SPLK #0040h,SCILBAUD
(波特率设定为9 600 b/s)
SPLK #0022h,SCIPC2
(设置SCIRXD、SCITXD为发送和接收引脚)
SPLK #0060h,SCIPRI
(RX,TX皆为低优先级)
从以上可以看出,本系统为单机通信,采用空闲多处理器模式,不使用SLEEP位。采用的通信格式为9 600波特率,8位数据位,1位停止位,无奇偶校验。其中,波特率采用公式(1)进行计算。
SCIBAUD=系统时钟频率
波特率伊8 -1 (1)[!--empirenews.page--]
4.3 通信程序流程图
本系统中,集中智能显示装置为上位机,牵引逆变器为下位机。上位机发送采用定时循环方式发送,接收采用中断方式接收;下位机发送和接收都采用中断方式。这样,既可以保证正常通信,也可以确保逆变器正常工作。
上位机定时循环发送子程序如图3 所示,接收中断子程序如图4所示。
下位机的接收中断子程序如图5所示,下位机的发送中断子程序如图6所示。
在此,需要特别强调的是,基于RS-485 总线的串口通信是一种半双工通信,发送数据和接收数据共用同一物理通道,在通信的任意时刻网络中的两台设备不能处于同一状态,否则,通信将无法正常进行。RS-485总线的发送和接收状态通过MAX481的接收/发送使能端设定。
5 结语
Modbus 具有开放性好,用户范围广,易实现,扩展性好,可靠性强等优点。将Modbus 通信协议应用在工矿电机车系统,现场运行取得了良好的效果,证明通信的可靠性很高。这样使司机通过司机操纵台上的集中智能显示装置能够及时了解机车的运行状态,并可根据这些信息采取相应的措施。因而,既可以提高效率,也可以确保机车安全、稳定运行。