微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于PLC系统的现场总线运动控制模块的设计和实现

基于PLC系统的现场总线运动控制模块的设计和实现

时间:09-07 来源:互联网 点击:

机的插补运算、加减速和进给控制,由一个独立STM32微控制器完成,并称为NC运动控制芯片。

  目前市场上的运动控制芯片主要是日本和欧美公司的专用ASIC和各数控厂家自行开发的FPGA芯片,虽然性能优越,但价格不低。相对于使用ASIC芯片或FPGA芯片,完成同样的任务使用MCU方案,硬件生产成本和开发成本均具有明显优势,当STM32微控制器运行在其最高频率为72 MHz下时,性能完全可以满足中低端数控系统应用的要求。

  在三轴数控铣系统中,NC运动控制芯片需要实现三轴快速定位、二轴直线插补、二轴圆弧插补、三轴直线插补的功能。

  插补是在组成轨迹的直线段或曲线段的起点和终点之间,按一定的算法进行数据点的密化工作,以确定一些中间点,从而为轨迹控制的每一步提供逼近目标。在本控制器中,选用逐点比较法作为基本的插补算法,具有算法简单高效、进给速度均匀的特点,同时支持三轴的直线插补[1],满足本控制器对插补算法的要求。

  逐点比较直线插补,就是执行机构每走一步都要和给定运动轨迹上相应的坐标值相比较,比较的结果称为偏差函数F,根据偏差的正、负决定下一步的进给方向。实质上这是一种用阶梯折线来逼近直线的一种算法,它与规定运动轨迹之间的最大误差为1个脉冲当量(每走1步移动的距离)。因此,只要把脉冲当量设计得足够小,就可以达到运动精度的要求[2].

  1.4 Modbus-RTU协议的实现

  Modbus 协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的过程,如何回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。Modbus协议工业控制已从单机控制走向集中监控、集散控制,如今已进入网络时代,工业控制器联网也为网络管理提供了方便。Modbus就是工业控制器的网络协议中的一种。

  Modbus-RTU协议以帧为通信的基本单位,帧格式为:地址码1 B;功能码1 B;数据区N B;错误校验2 B CRC码。

  本运动控制器在其RS-485接口上实现了Modbus-RTU协议,使用了当今流行的免费开源协议栈FreeModbus-RTU,从而保证了可靠的通信、节约了开发成本。

  FreeModbus是针对通用的Modbus协议栈在嵌入式系统中应用的实现,其遵循BSD开放源代码协议,并可以免费用于商业用途,成熟可靠。移植FreeModbus到STM32处理器只需要少量资源,除了1个双工USART外,只需要配置1个定时器进行超时判断即可。

  2 基于C200HE型PLC的运动控制网络实验平台设计

  2.1网络结构

  欧姆龙(OMRON)公司的C200HE-CPU42型PLC带有RS-232口和通信板。通信板支持各种通信协议,如上位链接、RS-232通信、1:1链接、NT链接(1:1、1:N)以及协议宏功能等,并能根据需要进行切换。通过协议宏功能,用PMCR指令,通过指定按标准设置的顺序,就能设置成Modbus协议。

  运动控制系统的网络结构体系分为3个层次:管理层、控制层和器件层,如图5所示。


  (1) 管理层:是最高层,负责系统的管理与决策。其中PLC是整个控制网络的核心,它作为Modbus网络的主设备,通过Modbus网络与各运动控制器之间传输生产管理信息、质量管理信息及CNC的运行情况等数据。上位计算机运行组态软件,通过RS-232串行通信口与PLC通信,实时监控系统的运行。

  (2) 控制层:是整个网络系统的中间层,各运动控制模块挂接在Modbus网络上成为其从节点,负责下面CNC运行过程的监控、协调和优化。

  (3) 器件层:雕刻机是整个网络的最低层,是现场总线网络中直接面对现场的器件和设备,为网络的终端执行机构。

  2.2 用协议宏功能实现Modbus协议

  在协议宏软件CX-Protocol上创建工程,选择正确的设备名称、型号及网络类型。然后创建通信序列和接收序列,并下载到PLC通信板中。在PLC中编写程序,用PMCR指令调用指定的通信序列,实现与运动控制模块的通信。通信协议宏主要由发送/接收数据程序构成,每个通信协议最多包含0~999个发送/接收数据程序,每个发送/接收程序最多由16步构成。协议宏结构如图6所示[3].


  2.2.1创建通信序列

  将通信序列号设为"000",在通信序列中要设置PLC与通信板链接字、传输控制参数、响应接收方式、数据接收监控时间、数据接收完成监控时间、数据发送完成监控时间等内容。

  (1) 创建通信步(Step)

在通信序列"000"中创建Step00和Step01 2个通信步。Step00用于控制运动控制模块的运行,Step01用于查询运行状态。在每一个通信步中包括步号(Step)、重复计数器(Repeat)、命令(Command)、重试次数(Retry)、发送信息(Send Message)、接收信息(Recv Message)、是否

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top