您的当前位置:首页正文

基于MODBUS协议的多轴控制系统设计

来源:画鸵萌宠网
基于MODBUS协议的多轴控制系统设计

刘学平;李杰

【摘 要】在工程自动控制系统中,不仅需要多个变量来描述一个系统,而且需要同时控制多个变量,多运动轴按预定运动参数进行联动.针对电子设备中多轴控制的功能要求,设计了基于MODBUS协议的多轴运动控制系统.该系统采用运动控制芯片+微处理器的双CPU结构,增强了系统的抗干扰性,可实现多轴控制芯片来控制电机的运转,提高了运动控制精度,且结构简单,性能稳定,成本低廉,可用于多轴联动的工业设备控制系统中,具有很好的可移植性和拓展性.%In the engineering automatic control system, it needs not only several variables to describe one system, but also to control multiple variables at the same time, and the axis of movement links according to the predetermined motion parameters. In view of the functional requirements of multi-axis control of the electronic equipment, multiple axis motion control system is designed upon MODBUS protocol The system adopts the motion control chip + microprocessor double CPU structure, enhancing the anti-jamming of the system, being able to achieve multiple axis control chip to control the motor operation, improving the motion control precision, and the structure being simple, performance being stable, cost being low, which can be used for multiple spindle linkage industrial equipment control system, having very good portability and expanding. 【期刊名称】《机械设计与制造》 【年(卷),期】2013(000)002

【总页数】3页(P1-3)

【关键词】单片机;MODBUS协议;多轴控制 【作 者】刘学平;李杰

【作者单位】清华大学深圳研究生院,深圳518055;清华大学精密仪器与机械学系,北京100084 【正文语种】中 文 【中图分类】TH16 1 引言

随着科学技术和现代工业的发展,在工程自动控制系统中,系统变得越来越复杂,不仅需要多个变量来描述一个系统,而且常常需要同时控制多个变量。例如,电子装备在实际运动过程中,通常有多个运动轴按照预先设定的运动参数进行联动,提出的多轴控制系统就是以在这种应用背景下开发的,这种系统结构简单,性能稳定,成本低廉,可广泛应用于多轴联动的工业设备控制系统中,具有很好的可移植性和经济性。 2 系统总体设计

运动系统包括X 轴、Y 轴伺服电动机组成的工作台,一个360°旋转的T 轴伺服电机控制平台,一个垂直运动的Z 轴伺服电动机控制机构,一个步进电动机控制送/扯线装置,一个直流电机控制的铝线盘旋转机构,这6 个轴电动机共同完成超声波铝线自动邦定机的运动控制功能,整个过程要求高速、准确、精密。为此,设计了一块以C8051F020 和PCL6045BL 为核心的运动控制卡,辅以一些外围电路完成这六个轴的联动控制。利用工控机作为上位机,运动控制卡作为下位机,采用

MODBUS 协议,通过RS-232进行点对点通讯,通讯模式为RTU,附加CRC 校验。上位机发送读线圈(功能码01),写线圈(功能码05),读保持寄存器(功能码03),写寄存器(功能码06)四个命令完成对单片机IO 口、寄存器的读写功能。下位机的程序负责对主机的命令进行响应,并将对应的数据发回上位机。 3 系统的硬件构成

运动控制卡硬件设计既要满足系统的功能要求,又要保证实时性、可靠性和抗干扰性能。总体结构,如图1 所示。 3.1 C8051F020 单片机

系统应用在工业现场通常需要控制大量的外部设备,系统选取C8051F020 处理器作为下位机控制模块的核心,下位机硬件结构图,如图1 所示。它是C0851F 系列中功能较全的一款,此处理器采用3.3V 电压供电,功耗极低,具有64kbytes的可编程Flash,4kbytes的SRAM,支持大量的程序代码;具有64 个数字IO 引脚,足以控制系统所需的模拟和数字外设;内部有优先权交叉开关译码器,或称为“交叉开关”,按照优先权顺序将端口引脚分配给器件上的数字外设(如UART,PCA,定时器等)。同时,单片机内部有8 通道12 位ADC 和DAC,在进行操纵杆控制的过程中需要A/D 转换,利用单片机的内部资源即可。

图1 下位机硬件结构图Fig.1 Lower Level Computer Hardware Structure 3.2 PCL6045BL 模块

多轴控制芯片采用日本某公司生产的PCL6045BL 芯片,这款芯片是一种通过总线接收CPU 命令并产生脉冲控制步进电机或脉冲驱动型伺服电机的CMOS 大规模集成芯片,具备数控系统所需的完整的外围接口,包括驱动步进电动机和伺服电动机所需的高速脉冲,返回位置、速度信号的光电编码器接口,手持脉冲发生器,机械位置及伺服驱动器I/O 信号接口。它可提供多种输出控制功能,包括匀速、线性或S 曲线的加减速,连续、定长、回原点等输出方式。它可控制四轴的运动,

包括(2~4)轴线性插补以及任意两轴的圆弧插补。该芯片可与8 位或16 位CPU 连接。CPU 通过对PCL6045BL 内部寄存器读写操作,实现CPU 与PCL6045BL之间的数据交换,及对运动轴和外围接口进行参数化控制。PCL6045BL的外围电路,如图2 所示。PCL6045BL的所有接口的逻辑均可通过寄存器写操作改变,所有接口的状态均可通过寄存器读操作查询 图2 PCL6045BL 外围电路Fig.2 PCL6045BL’s Outer Circuit 3.3 数字信号输入/输出模块

数字信号输出模块负责为外部设备提供控制信号,设计外部设备采用24V 供电,而单片机数字输出信号电压为3.3V,因此控制端与外部设备之间需要通过光耦隔离。从速度上来分,数字输出口可以分为高速输出口和低速输出口,前者主要控制伺服电机和步进电机等需要高速信号的设备,采用高速光耦进行隔离。后者控制继电器等设备,采用普通光耦进行隔离。从功率上分,可以分为大功率输出口和小功率输出口,前者提供给大功率外设,采用达林顿光耦进行隔离,提高带负载的能力。将供电电路和控制电路隔离,可以保证控制系统的稳定可靠和抗干扰性。 图3 输出模块Fig.3 Output Module

数字信号输入模块负责接收工业控制中的开关信号,如行程控制中的限位开关,设备操作中的启动、急停按钮等。设计开关信号均为24V 供电,通过普通光耦与3.3V 单片机数字输入信号隔离。 图4 输入模块Fig.4 Input Module 3.4 通信模块

Modbus 协议是某公司1978 提出的用于可编程控制器之间进行控制和通信的协议。通过Modbus 协议,符合该协议的控制设备可以组成工业网络,进行集中监控。标准的Modbus 端口是使用与RS-232C 兼容的串行接口,它定义了连接口的针脚、电缆、信号位、传输波特率、奇偶校验。控制器可直接或经由调制解调器

组网。Modbus 协议采用主从的通信方式,每次通信均由主机发起,主机发送按照一定的格式发送命令和数据,从机接收到命令和数据后进行解析,然后打包生产相应的回传消息包给主机。

Modbus 协议使用ASCII 或RTU 通讯模式。在配置每台控制器时,用户须选择通讯模式以及串行口的通讯参数(波特率,奇偶校验等),需要保证在Modbus 总线上的所有设备都配置了相同的通讯模式和串行通讯参数。RTU 通讯模式相比ASCII 通讯模式具有更高的传输效率,本系统中采用RTU 模式。 3.5 通信过程

Modbus 协议中的消息包中的参数类型主要有两种:线圈和寄存器。一个线圈变量对应1 位2 进制数,取值为0 或1;一个寄存器对应16 位二进制数,取值范围为(0~65535)。从数据操作上看,Modbus 协议主要就是主机对从机的线圈和寄存器进行读写操作。主机准备请求并向从机发送请求,从机接收主机请求后校验,然后处理,并向主机发送回复,如果出现差错,从机将返回一个异常的功能码。 系统中单片机与工控机通过RS232 串口进行通信。C8051F020 芯片中包含的串行通讯模块带有与RS232 标准一致的异步串口(UART),使得C8051F020 可以很方便的与工控机通信。由于单片机产生的是非TTL 电平信号,因此在与标准RS232串行通讯口连接前需要进行电平转换,系统中采用标准的电平转换芯片MAX3232CSE,该驱动芯片功耗低、集成度高、(+3.3~+5V)供电,具有两个接收和发送通道。 3.6 可靠性设计

在可靠性设计方面主要考虑以下因素:(1)数模方面采用统一地,用0Ω 电阻连接;(2)各电源引脚旁就近加0.1μF 退耦高频电容;(3)输入、输出信号采用光耦隔离;(4)单片机的晶振下面不走任何信号线,以抗干扰;(5)所有走线的弯折处均采用45°弯角。

4 系统的软件设计

整个系统的控制软件主要分为下位机和上位机两部分。下位机部分是由

C8051F020 和PCL6045BL 为核心的运动控制卡软件完成底层的电机控制、插补算法以及各种开关量的检测,并与上位机进行数据交换,软件编程环境采用Silabs IDE。上位机部分是在凌华工控机上,以WindowsXP 为平台,采用VC++6.0 开发整个系统的管理控制软件。上位机与下位机采用MODBUS 协议进行通讯。单片机对PCL6045BL 芯片进行控制通讯的流程图,如图5 所示。 图5 PCL6045BL 控制流程图Fig.5 PCL6045BL’s Control Flow Chart 5 上下位机通讯控制实验 5.1 开关信号输入实验

实验中C8051F020的P1.1~P1.2 等IO 作为数字输入,监控限位开关的运行状况。通过功能码01(读位)查询单片机的输入口状态。当限位开关闭合时,查询IO的状态为0,状态吻合。 5.2 步进电机控制实验

编写单片机程序,使C8051F020的定时器0 产生方波信号,其频率由一个16bit int 型变量存储。通过功能码06(写字)改变其寄存器的值,实现步进电机速度改变并用数字示波器观察输出方波,发现其频率与设定值相符。 5.3 直流电机控制实验

编写单片机程序,使能L6201 控制芯片,通过功能码06(写字)改变运转方向,实现直流电机的正转和反转,状态吻合。 5.4 伺服电机控制实验

编写单片机程序,控制PCL6045BL的寄存器,通过功能码06(写字)改变寄存器的值,使能伺服驱动器,输入需要运行的脉冲数,电机正常运转,利用编码器的返回值,查看是否有丢步。

5.5 操纵杆控制实验

实验中采用C8051F020 内部的ADC0 采集操纵杆内部电位器电阻的变化,来控制伺服电机的速度快慢,实验正常,速度变化平缓,达到了预期目标通过上述实验,说明这种基于MODBUS 协议的多轴控制系统能够满足工业设备的控制需求。 6 结论

设计了针对现在电子设备中多轴控制的功能要求,设计并开发了基于MODBUS 协议的多轴运动控制系统,该系统通过采用运动控制芯片+微处理器的双CPU 结构,增强了系统的抗干扰性能,利用多轴控制芯片来控制电机的运转,不占用微处理器的运行时间,提高了运动控制速度,并且该系统可移植性,可广泛应用于各类多轴控制设备中。经实验调试,该控制卡满足所需功能要求并且运行良好。 参考文献

【相关文献】

[1]Modicon Modbus Protocol Reference Guide,2008.

[2]邓元生.基于单片机的MODBUS 总线协议实现技术研究[D],2009.(Deng Yuan-Sheng.Bus protocol implementation technology research based on single chip MODBUS[D],2009.)

[3]Nippon Pulse Motor Co.,Ltd.,User’s Manual for PCL6045BL Pulse Control LSI. [4]Silicon Laboratories,8051F020/1/2/3 8K ISP FLASH MCU Family,rev.1.4,2003. [5]鲍可进.C8051F 单片机原理及应用[M].北京:中国电力出版社,2006:13-29.(Bao Ke-jin.C8051F MCU Principles and Applications[M].Beijing:China Power Press,2006:13-29.)

[6]何立民.单片机应用技术选编[M].北京:北京航空航天大学出版社,1995.(He Li-min.Single-Chip Microcomputer Application Technology Selected Works [M].Beijing:Beijing University of Aeronautics& Astronautics Press,1995.)

[7]叶佩青,张辉.PCL6045B 运动控制与数控应用[M].北京:清华大学出版社,2007.(Ye

Pei-qing,Zhang Hui.PCL6045B Motion Control And Cnc Application[M].Beijing:Tsinghua University Press,2007.)

因篇幅问题不能全部显示,请点此查看更多更全内容

Top