基于Modbus RTU通信协议的伺服电机联动控制系统

来源:互联网

点击:1662

A+ A-

所属频道:新闻中心

关键词:Modbus RTU 通信协议 伺服电机 控制系统

     工业控制已从单机控制走向集中监控、集散控制,如今已进入网络时代,工业控制器连网也为网络管理提供了方便。Modbus就是工业控制器的网络协议中的一种,通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。基于上述原理,文中设计了一套伺服电机联动控制系统,采用Modbus RTU通信协议进行数据通信,达到能够同时对2台电机联动控制的目的。

    1 系统构成以及原理

      在工业控制过程中,电机是控制系统一个重要组成部分。一般通过微处理器控制电机继而达到实现自动控制的目的。而上位机通过串行或者并行通信协议控制微处理器,来实现远程控制。

      文中提出了一种新的伺服电机联动控制系统的设计方案,采用Modbus RTU协议,使上位机(PC)直接可以和伺服放大器进行通信,本设计上位机采用一般PC即可,最好带RS485接口。伺服放大器选用富士公司RYH201F5-VV2,伺服电机选用富士公司GYS201D5-RC2。由于系统设计过程中节省了微处理器,所以不仅在数值处理运算和数据传送上运行速度快,实时性强,而且简化了系统复杂度,降低了成本。

      由于有的PC不自带RS485接口,因此上位机不能利用Modbus通信协议来控制伺服放大器。虽然市场没有专门接口转换电路,但是由于一般上位机(PC或者工控机等)都自带USB接口,自己根据Modbus协议和实验室现有器件,自行设计接口转换电路。

    2 Modbus RTU协议及实现


      2.1 Modbus协议

      Modbus是OSI模型第7层上的应用层报文传输协议,它在连接至不同类型总线或网络的设备之间提供客户机/服务器通信。标准的Modbus口是使用RS-232C兼容串行接口,它定义了连接口的针脚、电缆、信号位、传输波特率、奇偶校验。控制器能直接或经由Modem组网。控制器通信使用主-从技术,即仅一设备(主设备)能初始化传输(查询)。其它设备(从设备)根据主设备查询提供的数据做出相应反应。典型的主设备:主机和可编程仪表。典型的从设备:可编程控制器。本系统中主设备指上位机,从设备主要指伺服放大器。

      上位机可单独和伺服放大器通信,也能以广播方式和所有放大器通信。如果单独通信,伺服放大器返回一消息作为回应,如果是以广播方式查询的,则不作任何回应。Modbus协议建立了上位机查询的格式:设备(或广播)地址、功能代码、所有要发送的数据、一错误检测域。伺服放大器回应消息也由Modbus协议构成,包括确认要行动的域、任何要返回的数据和一错误检测域。如果在消息接收过程中发生一错误,或不能执行其命令,伺服放大器将建立一错误消息并把它作为回应发送出去。

      通信过程主要分查询和响应。查询指从上位机通过功能代码告之被选中的伺服放大器要执行的何种功能;响应指伺服放大器对查询信息功能代码的回应。通信是由来自上位机的查询开始的。伺服放大器之间不能进行查询。

    控制器能设置为两种传输模式(ASCII或RTU)之中的任意一种标准进行通信。文中选用RTU(远程终端设备)模式,还包括设置其他串口通信参数(波特率,校验方式等)。需要注意的是,在同一个Modbus网络上所有的设备都必须有相同的传输模式和串口参数。RTU模式下,数据帧格式是:地址+功能代码+信息+CRC-16校验。CRC校验的全称是循环冗余校验,其特点是:检错能力极强,花费CPU开销小。

      2.2 参数编辑

      2.2.1 参数绑定

      设计中伺服电机采用定位数据运行,默认最多15点定位数据,AD3~AD0分别对应1~15点定位数据。

      在伺服放大器上通过参数绑定,一一对应到伺服放大器输出端子,然后通过调整输出端子的逻辑值(0或者1),进而改变AD3~AD0的数值,最后决定选取的定位数据编号。其中部分参数绑定信息。

      例如:AD3~AD0分别对应1~15点定位数据,输出端子分别选用PA3-9~PA3-12,设定值分别为60~63,

     2.2.2 参数编辑


      通过参数编辑,改变定位数据编号,最终改变运行状态和运行结束停止位置。参数编辑信息见表2。

      例如:定位数据编号选择01,此时AD3~AD0分别为0001

      2.2.3 定位数据编辑

      通过定位数据编辑,可以设置一组定位数据,包括相对位置/绝对位置,定位结束停止位置,运行速度(转速),加/减速时间和M代码等。其中相对位置以上次运行结束坐标为参考系;绝对位置以原点为参考系。定位结束停止位置表示定位结束时候停止的位置,是数字量。运行速度表示运行过程中的转速,单位是转/分。加/减速时间表示从上次运行速度更新到设定速度变化所需要的时间,单位是0.1 ms。通过查询M代码可以查询伺服系统运行的定位数据编号,设置值为00~FF。

      例如:定位数据1:(绝对位置(ABS),停止位置100000,转速120转/分,加减速时间都是0.1 ms,不输出M代码)

      2.3 运行状态图

      按照来自Modbus通信的指令,进行定位运行。定位结束[INP]ON时,设定要运行的定位数据编号,若将自动起动[START]ON(起动)则执行相应定位数据编号的定位,具体运行状态图如图5所示。由此可见,START信号是上升沿有效信号。

      2.4 连续运行实现

      系统可以设置1~15号定位数据持续运行,每次运行先要设定运行的定位数据编号,然后将自动起动[START]1 ON(起动)。但是,运行到最后一个定位数据编号结束之后,系统就会自动停止运动。

      根据运行状态图,可以设置其他编号定位数据运行后不输出M代码。当最后一个定位数据运行完成后输出一个M代码。实时查询M代码,如果查询到设定的M代码,表明系统设定最后一个定位数据编号已经执行完成,然后立即通过软件开启START。由于[START]信号是上升沿有效信号,因此,每次将[START]ON之后,要置于OFF,方便下一次ON时有上升沿。

    3 上位机软件系统设计

      上位机采用LabView 2010软件编译。当按下启动按钮,定位运行,此时定位指针指向设定初始定位数据编号,然后自动启动信号[STA RT]置于ON,此时,系统开始运行;然后,将[SFART]置于OFF,方便下一次启动。系统此时开始检测是否有急停或者停止按钮,如果有,就立即停止,如果没有,就每隔300 ms查询M代码状态。如果正好是设定的M代码,就表明最后一个定位数据编号运行结束,将定位指针指向初始定位数据编号;如果不是设定的M代码或者没有M代码输出,就返回。

      Labview软件设计部分程序,设置波特率是9 600,偶校验,停止位是1位。由于采用队列操作,并且根据数据流小的特点,设置Modbus通信等待时间是150 ms,大大提高运算速度和程序效率。

    4 结束语

      文中介绍的基于Modbus RTU通信协议的伺服电机联动控制系统,不仅通信可靠性高,运算速度快,实时性强,而且硬件结构简单。最大的创新之处在于根据伺服放大器功能和原理,进行巧妙的软件设计,实现了系统连续运行的目的。此外,在复杂控制系统中利用此设计思路,能更加体现出设计优势,降低系统成本和复杂度,相信一定会被用到更多的工业现场。

    (审核编辑: 智汇张瑜)