您的位置 首页 观点

根据Cortex-M3的MODBUS协议完成及其使用

针对无损探伤试验仪中变频器通信问题,依据MODBUS协议规定,利用RealView MDK开发了基于ARM Cortex-M3微控制器的嵌入式软件,实现了与变频器的MODBUS通信,完成变频调速的运动

漏磁探伤作为非触摸式的无损探伤技能,其具有检测速度快、灵敏度高、无需耦合剂、易于完结自动化等特色,是钢轨探伤技能的要点研讨方向。为处理漏磁探伤研讨中的实验仿真问题,研发了依据嵌入式体系的无损探伤实验仪,经过完结MODBUS协议与变频器通讯,以此驱动沟通电机与机械实验装置,完结运动操控并进行无损探伤实验。

针对无损探伤实验仪中变频器通讯问题,依据MODBUS协议规则,运用RealView MDK开发了依据ARM Cortex-M3微操控器的嵌入式软件,完结了与变频器的MODBUS通讯,完结变频调速运动操控功用。

1 MODBUS协议

1.1 MODBOS协议简介

MODBUS是Gould Ine注册的通讯协议商标,该协议具有纠错能力强、数据传输量大、实时性好等特色,是工业自动操控范畴运用较广泛的通讯言语,现在已成为我国工业自动化范畴的一种国家规范。

MODBUS协议界说了一个操控器能辨认的音讯结构,它描绘了操控器恳求拜访和应对回应其他设备的进程,以及过错检测和记载的规范,拟定了报文字段和内容的公共格局。MODBUS归于运用层报文传输协议,其通讯结构为一对多的主从查询形式,即主从Master-Slave形式。 MODBUS网络上能够有多个从节点,但有且只能有一个主节点,主节点依照通讯协议对从节点宣布恳求操作,从设备收到主节点的恳求后,做出相应的呼应再向主节点回复应对音讯。

1.2 MODBOS协议组成

MODBUS协议具有两种传输形式:ASCII形式和RTU形式。ASCII形式中数据以ASCH字符码标明,经过冒号、回车字符断定数据帧的开端和完毕,选用IRC数据查验;RTU形式中数据以非紧缩BCD码标明,经过时刻符号完结数据帧开端断定,选用CRC数据校验,具有数据吞吐量高、传输安稳、通讯效率高的长处。

因为变频调速体系的安全功用要求较高,所以挑选通讯效率高、时刻管理严厉的RTU传输形式。在协议帧组成上,MODBUS界说了一个根本的,与通讯层无关数据协议单元PDU(Protocol Data Unit),并经过在PDU上增加地址、校验等附加域界说了运用数据单元ADU(Application Data Unit),构成完好的数据帧,MODBUS RTU数据帧组成如表1所示。

在数据帧开端断定上,MODBUS RTU选用了如图1所示的时刻符号办法,即相邻的两帧之间有必要距离至少为总线发送3.5个字符的时刻,该时刻称为T3.5。

在MODBUS数据帧中,功用码是指主节点对从节点的恳求操作类型,常用的MODBUS功用码及其功用如表2所示。

MODBUS RTU选用循环冗余校验码CRC(Cyclic Redundancy Check)是一种被广泛选用的多项式编码,编码简略且误判概率很低,在串行通讯、以太网、MPEG解码等通讯范畴中得到了广泛运用。在通讯进程中,发送方用待发送数据除以一个收发两边约好的生成多项式,将得到余数作为CRC校验多项式,附加在待发送数据尾部作为一个全体发送给接纳方。接纳方将收到的数据相同除以生成多项式,若余数为零刚传输正常,若余数不为零则传输犯错。

2 电路衔接及硬件参数

在无损探伤实验仪中,选用依据ARM Cortex-M3内核的STM32F103ZET6微操控器作为处理中心,而变频器选用了烟台惠丰公司的F2000-G矢量变频酪。STM32F103ZET6经过依据MAX3485的RS485链路与F2000-G相连,依照MODBUS协议与之通讯,完结变频调速的操控功用。RS485接口电路如图2所示,STM32F103ZET6的USART3的Uart3Rx、Uart3Tx衔接到MAX3485的RO、DI以进行RS232的数据收发;STM32F103ZET6的GPI01以I /O形式与MAX3485的接纳使能端RE、发送使能端DE相连,对RS485半双工总线的通讯方向进行一致操控;而MAX3485的差分信号端A、B则经过插座与F2000-G相连,一起为确保通讯质量,消除总线上的信号反射,需在RS485网络终端的差分总线间串联50 Ω的电阻R1。

在外设初始进程中,首要需求初始化USART3,依照F2000-G要求,选用的通讯参数为:波特率9 600 kb·s-1,8位数据位,2位中止位,无奇偶校验;其次,还需初始化STM32F103ZET6的GPI01为输出形式,以此操控RS485的通讯方向;再次,因为MODBUS RTU选用时刻符号的方法进行协议帧的开端断定,所以运用STM32F103ZET6的定时器TIM2用以断定数据帧的完毕,而MODBUS RTU中T3.5在工程运用一般取4个字符发送时刻,因而设置TIM2的溢出时刻为3 ms;终究,为处理或许的总线推迟等通讯毛病,本文运用了体系定时器SysTick作超时断定,概括考虑到变频器动作时刻、通讯推迟等要素,超时断定的时刻阈值取200 ms。

3 MODBUS协议完结

在变频调速体系中,STM32F103ZET6作为主节点担任变频调速体系的功用操控,而变频器F2000-G作为MODBUS从节点担任呼应主节点的恳求,完结对沟通电机的运动操控。因而本文中变频调速体系为依据MODBUS协议的主节点程序完结,MODBUS协议首要分为3部分:数据帧发送,数据帧接纳和数据帧处理。

3.1 数据帧发送

发送数据时,有必要将恳求操作封装成规范的MODBUS协议帧才干成功进行发送,即MODBUS协议的编码。由前所述,数据协议单元PDU包含功用码和数据码,PDU的封装能够概括为将操作类型和操作参数作为参数封装成PDU。构建PDU之后,在数据帧头部参加从机的地址,再将CR-C16校验值写入数据帧尾部即构成完好的运用数据单元ADU。

MODBUS中运用CRC16作为冗余校验,依照循环冗余查验算法,运用规范16位生成多项式,可对恣意长度的信息字段校验出一个16位的校验码。其程序流程可描绘如下:

(1)初始化一个16位寄存器,一切位进行置1。
(2)该16位寄存器与待校验数据串中第1 Byte的数据进行异或,成果存回该寄存器。
(3)该16位寄存器右移一位。
(4)若该寄存器右移移出位为1,则与校验多项式0A001H异或,不然重复过程3。
(5)重复过程3和过程4直到该Byte的8位数据均处理完毕。
(6)取数据串中下一个数据与该16位数据进行异或成果存回寄存器。
(7)重复过程3~过程6,直到待校验数据串中一切的字节数据均处理完毕。
(8)该16位寄存器中数据即CRC16的终究校验成果,加至数据帧结尾。

因为STM32F103ZET6芯片内USART3无硬件FIFO的特色,所以需求软件上运用行列的数据结构作为发送缓冲和接纳缓冲,以此进行串行口的收发使命。因而,在作业形式上USART3的发送选用查询式发送,一次性将发送缓冲区中的数据顺次循环地发送出去,即行列的出队操作;而其接纳形式为中止式,在USART3每次接纳中止的呼应函数中,软件按时刻先后顺序将数据写入接纳缓冲区内,即行列的入队操作。

3.2 数据帧接纳

在发送完恳求帧后,STM32F103ZET6经过GPIO操作总线的收/发使能端,将RS485总线由发送状况改为监听状况。在监听进程中SMT32F1-03ZET6完结变频器F2000-G应对帧的接纳。

因为MODBUS RTU应对帧断定采取了时刻符号法,因而本程序中运用了TM2作为触发器进行时刻管理。在接纳进程中,USART3每次接纳中止对TM2进行复位操作以防止TIM2的溢出中止;而当总线闲暇了3.5个字符的发送时刻后,TM2因为短少USART3的复位,将发生溢出中止,在中止呼应中完结封闭USART3完毕数据通讯和置应对帧接纳完结标志位的操作。这种时刻符号的程序均在后台中止中完结,主程序只需查询接纳完结标志位即可。
另一方面,因为从节点F2000-G或许存在着超时、无应对等通讯毛病,这就需求主节点STM32F103ZET6进行超时检测。在STM32F103ZE6中,SysTick作为体系定时器,在芯片发动后就以后台方法运转,按ms计时并实时更新体系时刻。因而在MODBUS RTU的超时判别中,主程序能够运用该时钟,循环地查询当时时刻,并和发送完恳求帧的开端时刻比较,若阈值时刻200 ms内依然未收到恳求帧,则以为通讯失利,回来应对超时码。

3.3 数据帧处理

在完结数据帧正确接纳的基础上,STM32F0103ZET6有必要进行应对帧处理,即MODBUS协议帧的解码。体系从接纳缓冲区中读取应对帧。首要提取ADU进行地址码和CRC校验码的断定;其次,再从PDU中提取ADU进行数据长度、功用码、数据码的断定;终究,假如校验失利则回来相应的校验失利码,若校验成功,则持续从ADU/PDU中提取的数据进行处理,完结变频调速的各种功用操作。终究,整个协议完结的软件流程如图3所示。

4 嵌入式变频调速体系

运用MODBUS协议,STM32F103ZET6可依照F2000-G供给的各种功用完结变频调速的功用,例如方针频率设置和变频操控等。常用功用指令的地址及其参数功用如表3所示。

在实践运用中,STM32F103ZET6经过HMI接口完结人机交互,依据用户输入完结对沟通电机的变频调速操作。例如,欲发动电机进行无损探伤实验时,程序对F2000-G的2000H处寄存器写入状况字0001H,发动电机正转运转。通讯记载如下,主节点STM32F103ZET6发动变频器发送:01 06 20 00 00 01 43 CA;假如从节点F2000-G操作正常则应对:01 06 20 00 00 01 43 CA。

当STM32F103ZET6正确读取完应对帧,并经过校验后,即可判别变频器已成功发动沟通电机,机械实验体系开端运转并逐渐加快到方针转速。

5 完毕语

以STM32F103ZET6为中心的嵌入式体系,经过MAX3485与变频器F2000-G组成依据RS485的网络。软件部分介绍了MODBUS协议的特色及其组成,剖析了MODBUS协议的完结原理,并结合嵌入式体系的作业特色完结了该协议的编程。依据MODBUS协议的嵌入式软件经过与F2000-G的通讯完结了对机电实验装置的变频调速操控。实践标明,该体系功用牢靠、通讯安稳,满意了无损探伤实验仪在转速为40~1 400 r·min-1范围内变频调速的操控需求。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/news/guandian/198643.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部