21ic电子技术开发论坛

标题: 记录STM32开发一个完整的EtherCAT的过程! [打印本页]

作者: goodluck09876    时间: 2019-7-20 10:24
标题: 记录STM32开发一个完整的EtherCAT的过程!
200855d327b240b122.png

作者: goodluck09876    时间: 2019-7-20 10:24
321905d327b558a747.png
作者: goodluck09876    时间: 2019-7-20 10:31
    运动控制是指对机械运动部件的位置、速度等进行实时的控制管理,使其按
照预期的轨迹和规定的参数(如速度、加速度参数等)完成相应的动作[yob。运动
控制起源于早期的伺服控制,伴随着数控技术、自动化技术和以太网通信技术的
发展而发展的。运动控制技术是推动工业自动化的主要动力,是促进企业产业转
型的关键技术「川。
    运动控制系统处理机械系统中一个或多个坐标上的运动以及运动之间的协调,
实现精确的位置控制、速度和加速度控制、转矩和力的控制等[f121。单轴的运动控
制系统可分为开环、半闭环和闭环伺服系统。多轴运动控制系统可以分成点位控
制、连续轨迹控制和同步控制[[13]。典型的运动控制系统,从结构上看,包括上位
机控制窗口、运动控制器、驱动器、电机以及测量反馈系统等几个部分组成,运
动控制系统示意图如图1-1所示。运动控制器是整个运动控制系统的核心,它按
照期望的机械运动向驱动器或放大器发出指令,进行插补运算、路径规划等任务,
并接受传感器反馈,实时监测运动情况并调整输出信号,从而达到性能指标实现
期望的运动。
476175d327ce2ae887.png
作者: goodluck09876    时间: 2019-7-20 10:31
    实时以太网(RTE, Real Time Ethernet)是常规以太网技术的延伸,以便满足
工业控制领域的实时性数据通信要求[[14]。目前,国际上有多种实时工业以太网协
议,根据不同的实时性和成本的要求使用不同的原理,大致可以分为以下三类[[15]
如图1-2所示。
938765d327d10e4462.png
作者: goodluck09876    时间: 2019-7-20 10:42
      (1)基于TCP/IP实现的工业以太网仍使用TCP/IP协议栈,通过上层合理的
控制来解决通信过程中的不确定因素。这种方式具有较高的传输速率,适应于大
量数据通信,更适合作为网关和交换设备的应用,不能实现很好的实时性。常用
的通信控制方法有:合理调度,减少冲突的概率;定义帧数据的优先级,为实时
数据分配最高优先级;使用交换式以太网等。使用这种方式的典型协议有
Modbus/TCP和Ethernet/IP等。
      C2)基于以太网实现的工业以太网仍然使用标准的、未修改的以太网通信硬
件,但是不适用TCP/IP来传输数据。它使用特定的报文进行传输。TCP/IP协议
栈能使用时间控制层分发一定的时间片来利用网络资源。该类协议主要有Ethernet
Powerlink, EPA C Ethernet for Plant Automation ), PROFINET IRT等。通过这种方
式可以实现较好的实时性。
      (3)通过修改以太网协议实现的工业以太网,实现应答时间小于lms的硬实
时,从站使用特定的硬件实现。由实时MAC控制实时通道内的通信,从根本上
避免报文间的冲突。非实时数据依然能在通道中按原协议通信。典型协议有德国
倍福的EtherCAT、西门子的PROFINET IRT等。
    综合比较以上三种方式实现的工业以太网,根据实时性和可靠性的要求,本
课题将采用EtherCAT总线来实现控制系统中主站PC机与从站运动控制器之间的
通信。

作者: goodluck09876    时间: 2019-7-20 10:52
    EhterCAT实时工业以太网技术由德国倍福自动化公司于2003年首次提出。
一经推出就在全球工业控制领域受到极大关注,在很多不同的领域、行业、企业
和科研单位都使用EtherCAT工业以太网技术成功地开发了他们的项目[29]。
    在国外,瑞典Lund大学利用EtherCAT成功开发了全球首台基于实时JAVA
的机器人;德国BMW技术研究中心利用EtherCAT成功开发出测试电机的机床;
德国的IGH公司利用EtherCAT技术研发了测试液压工具的机床;意大利的公司
ECS使用EtherCAT技术研发成功他们的数控机床;法国Vernet Behringer公司使
用EtherCAT工业以太网开发了CNC数控系统[[30]
    在中国,EtherCAT工业以太网也被广泛地应用。在2010年上海举办的世博
会中,互动金属球控制系统就是利用EtherCAT技术实现的,应用了TwinCAT自
动化软件和EtherCAT总线通讯;2006年,明阳电气有限公司使用EtherCAT开发
了广东省堪江风力发电机组的控制系统;2008年,科时敏公司利用EtherCAT现
场总线技术研发了热嫁胶贴标机的控制系统,使用了Beckhoff控制器和TwinSAFE
安全技术;2010年,沈阳高精数控技术有限公司利用EtherCAT总线和TwinCAT
开发出全数字高档数控装置。

作者: goodluck09876    时间: 2019-7-20 10:54
    EtherCAT工业以太网因其实时性强、可靠性高及同步性好等优点特别适合应
用于运动控制系统当中。本文在多轴运动控制系统中引入EtherCAT总线技术。在
深入研究EtherCAT总线技术和多轴运动控制技术的基础上,采用PC机为主站、
ARM+MCX314为从站处理器的系统架构。开发出一套基于EtherCAT的多轴运动
控制系统。
    近年来工业以太网发展迅速,不断取代现场总线走向工业自动化领域的总线
最前端。现场总线因为其多种标准并存,没有统一的国际标准,致使控制网络的
系统与信息集成面临困难局面,给用户带来极大的不便,因此给现场总线技术的
推广和应用带来不利影响。以太网技术因成本低、扩展性强和兼容性强等诸多优
点,受到人们的青睐。虽然基于以太网的运动控制系统具有诸多优点,但以太网
在工业控制领域应用仍受到诸多质疑,主要的原因是其不确定性和欠佳的实时性。
    目前,有许多方案致力于实现以太网的实时性,效果都不够理想。德国
BECKHOFF自动化公司于2003年开发出的EtherCAT实时以太网技术突破了其他
以太网解决方案的系统限制:通过该项技术,无需接受以太网数据包,将之解码,
然后再将过程数据复制到各个设备。EtherCAT从站设备在报文经过其节点时读取
相应的数据报文,同样输入数据也是在报文经过时插入到报文中。整个过程报文
只有几纳秒的时间延迟,实时性获得极大提高[[32] [33 ]
    1.  EtherCAT系统构成
    EtherCAT作为一种工业以太网总线,充分利用了以太网的全双工特性。使用
主从通信模式,主站发送报文给从站,从站从中读取数据或将数据插入至从站。
主站可使用标准网卡实现,从站选用特定的EtherCAT从站控制器ESC C EtherCAT
Slave Controller)或者FPGA实现,主要完成通信和控制应用两部分功能[34]
EtherCAT物理层选用标准以太网物理层器件。
    一个EtherCAT网段可被简单看作一个独立的以太网设备,此“设备”接收并
发送标准的ISO/IEC8802-3数据帧。但是,这种设备并不局限于一个ESC或相关
的MCU,而是由多个EtherCAT从站组成,如图2-1所示。这些从站能将收到的
报文直接处理,并读取或插入有关的数据,再将报文发送给下一个EtherCAT从站。
最末尾的EtherCAT从站返回处理完全的报文,然后由第一个从站发送给主站。整
个通信过程充运行于全双工模式下,TX线发出的报文又通过RX线返回给主站。
733235d32824c45004.png
作者: goodluck09876    时间: 2019-7-20 10:54
    报文通过从站控制器时,从站读取出相关命令并进行对应处理,数据处理通
过硬件完成,延间约为100-_SOOns,通信性能独立于MCU的响应时间。每个ESC
最大有容量为64KB的可用的内存编址,能进行连续或同步的读写。多个EtherCAT
命令数据可以被嵌入到一个以太网报文中,每个数据对应独立的设备或内存区。
    EtherCAT极大提高了以太网的性能,比如操作1000个I/O信号的时间约为
30微秒。单个报文至多容纳1486字节的过程数据,和12000位I/O信号相当,更
新所需时间约为300微秒。控制100个伺服单元的时间约为100微秒[[35][36]
    在基于PC的主站中,一般使用网络接口卡NIC C Network Interface Card
其中的网卡芯片集成了以太网通信控制器和物理层数据收发器。但是在嵌入式主
站中,通信控制器通常集成在微处理器中。
    EtherCAT从站设备同时实现应用控制和数据通信两部分功能,其组成如图2-2
所示,由四部分组成:从站控制微处理器、EtherCAT从站控制器ESC芯片、物理
层器件和其他应用层器件。
780625d3282756d5c3.png
作者: goodluck09876    时间: 2019-7-20 11:09
    EtherCAT报文由从站控制器来处理,使用双端口存储区完成主从站间的数据
交换。每个从站ESC在环路上按各自的顺序移位读写数据。当数据帧经过从站时,
ESC从中读取发送给自己的命令数据并放到内部存储区,插入的数据又被从内部
存储区写到子报文中。
    从站控制微处理器主要负责处理EtherCAT通信和完成控制任务。微处理器从
ESC获取控制数据实现设备控制功能,并采样设备的反馈数据写入ESC。从站控
制微处理器的选型根据设备控制任务,可以使用ARM或DSP;  8位、16位或32
位的处理器。EtherCAT从站采用M II接口模式时,需要使用标准以太网物理层器
件:物理层芯片PHY,隔离变压器等。采用EBUS接口时不需要任何其他芯片。
    2.  EtherCAT数据帧格式
    EtherCAT数据直接嵌入在以太网数据帧中进行传输,只是采用了一种特殊的
帧类型,该类型为Ox88A4,  EtherCAT数据帧结构如图2-3所示。
32775d3285fdecc69.png
作者: goodluck09876    时间: 2019-7-20 11:10
    EtherCAT数据包由数据头和数据实体两部分组成,EtherCAT数据头包含2
个字节,每个数据包里面可以只包含一个EtherCAT子报文,也可以包含多个子报
文;一个EtherCAT子报文对应着一个从站,因此一个EtherCAT数据包可以操作
多个EtherCAT从站,相应的数据长度在441498字节之间,表2-1给出了EtherCAT
数据帧结构定义。
893405d32861c43499.png
作者: goodluck09876    时间: 2019-7-20 11:10
31875d328630710ec.png
作者: goodluck09876    时间: 2019-7-20 11:11
    由于EtherCAT实时工业以太网技术具有适用范围广、拓扑结构灵活、数据通
信效率高、实时性强和同步性能好等多种优点,所以特别适用于实时性要求高、
通信数据量大的运动控制系统[[37]。本课题控制系统设计采用“PC+运动控制器”
的方案,构建多轴运动控制系统,采用PC机为主站、ARM+MCX314为从站处理
器的架构。其核心插补与控制算法都放在工业PC中完成,运动控制器要求大为
降低,其主要完成数字给定量到实际脉冲信号的转变。该控制系统方案的优势在
于简化硬件设计工作,主要以标准化的硬件为主:上位机可以采用工业PC机、
下位机使用开发的通用运动控制器,方便日后升级维护。工业PC机与运动控制
器直接采用
J决速发展,
EtherCAT实时工业以太网进行通信连接。随着实时工业以太网技术的
伺服驱动器也朝着网络化发展。
元可以直接通过以太网总线连接到工业PC
系统架构设计框图。
该方案可以省去运动控制器,伺服单
机,使其更具有生命力。图2-4为控制
327995d32866477e73.png
作者: goodluck09876    时间: 2019-7-20 11:12
工业PC机采用低功耗小体积无风扇的工业计算机,其运行实时Linux系统
通过运行在工控机上的上位机软件,上位机运行基于LinuxCNC开发的数控系统
具有设置运动控制参数,实时显示加工进度、系统的运行状态、发送控制指令等
功能。利用cncKad等软件将设计好的CAD图纸读取后,然后转化成要加工的代
码(G代码);数控软件将G代码文件导入通过LinuxCNC任务控制器中的G代
码解析器对其进行词法分析语义分析,然后输出加工函数发送给LinuxCNC的运
动控制器,运动控制器完成多轴插补、计算进给量和运动控制算法等功能后将位
置/速度指令通过通信网卡发送给 EtherCAT从站;从站运动控制器将收到
EtherCAT数据帧读取后,发送脉冲/方向控制信号给伺服驱动器(SC)控制电机
  C SM)走相应的规划轨迹。32路的I/O将采集的开关信号(如限位,安全防护,
紧急停车等)发送给从站运动控制器,起到安全保护的作用。
    在对一般数控装备(如数控冲床、数控机床)的电气图进行充分了解的基础
上,结合本控制系统架构,确定本课题多轴运动控制系统的设计指标分为主站PC
机和从站控制器两部分:
    主站PC机的数控软件:
    1.参数设置:系统参数设置、运动轴参数设置、工艺参数设置和模具库参数
设置;
    2.加工状态:自动加工状态显示、手动加工状态显示、I/O状态显示和加工
图形仿真;
软件设置:软件信息、外部设备通信设置和高级设置;
警告与诊断:警告信息诊断和历史警告信息记录。
从站运动控制器:
1.控制轴数:)_5轴;
2.伺服电机控制方式:脉冲(PUL)和方向(DIR);
3.信号隔离性能:低速隔离)1Mbps;
4.通道12位模拟量输入:-_5 V一+_5 V ;
_5.机械限位、原点、接近原点信号输入:}12路;
伺服驱动器接口输入:
  伺服启动(/S-ON ) ;
伺服驱动器接口输出:
指令脉冲(PULS , /PULS )、指令符号(SIGN,
/SIGN)、
伺服警报输出(ALM+,  ALM- )、编码器分频脉冲
输出C相(PCO , /PCO ) ;
    8.插补方式:}2轴直线、圆弧插补;
    9.控制算法:S型加减速控制算法;
    10.电源接口:直流12-24V ;
    11.通讯接口:2个EtherCAT以太网通讯接口;1个RS232接口;1个SPI
扩展接口。

作者: goodluck09876    时间: 2019-7-20 11:13
    EtherCAT主站可由PC计算机或其他嵌入式计算机来实现,使用PC计算机
构成EtherCAT主站时,一般采用标准的以太网网卡NIC C Network Interface Card )
作为主站硬件接口,主站功能由软件实现。由于本课题采用工业PC机作为控制
系统的主站,故设计主站只需注意选用标准以太网网卡来作为主从通信网卡即可。
    从站运动控制器使用ARM+MCX314架构:以ARM为控制核心、MCX314
为伺服驱动芯片、ET 1200为从站控制器(ESC),图2-_5为从站运动控制器的硬件
架构框图。EtherCAT通信模块数据链路层使用专用芯片ESC,通常需要一个微处
理器实现应用层功能。
976315d3286c0104fa.png
作者: wangjiahao88    时间: 2019-7-20 11:15
这个的门槛比较高,一般人玩儿不转。。。
作者: goodluck09876    时间: 2019-7-20 11:15
这个运行稳定。尤其适用于高速、无延迟的控制系统中。
作者: goodluck09876    时间: 2019-7-20 11:16
    如图2-_5所示的从站运动控制器硬件架构:一方面,ARM作为运动控制器的
核心处理器,性价比高、功耗低、性能出色,并且其内部集成了大容量程序存储
器和SRAM,使得其可以单片化工作,避免外扩存储器,在简化电路的设计同时
提高了系统的稳定性;另一方面,MCX314作为专用运动控制芯片大大简化了运
动控制器的软硬件架构和开发工作,可将所有的加减速运动控制、多轴插补、原
点搜索交由运动控制芯片来处理。
    本伺服运动控制系统硬件总体方案所包括的部分和所实现的功能如下:
    1. EtherCAT主站采用无风扇工业PC机:除了集成标准以太网网卡,实现基
本的EtherCAT实时以太网通信之外,还具有丰富的配置来实现其他功能。PC机
采用无风扇设计,利用机体散热片自动散热,不采用风扇电机散热,极大降低故
障率;主板支持来电开机,-20 0C -}-60 0C宽温度运行范围,整机功率只有18W左
右,支持4个COM串口、2个千兆网接口、8个 USB接口;整机尺寸为
212* 150*43mm。
    2.  EtherCAT从站控制器ET 1200 :  ET 1200是EtherCAT实现通信功能的核心
器件。可以采用M II接口方式外接物理层芯片、网络变压器等标准以太网物理层
器件;也可以采用EBUS接口方式,直接连接RJ4_5接口,根据实际需求设计1-2
个EtherCAT数据收发端口。采用SPI串行通信方式连接ESC的PDI接口与从站
控制ARM处理器。EtherCAT通信模块在控制系统中起着桥梁作用,实现主站PC
机与从站控制芯片的数据通信:一方面,通过EtherCAT实时以太网通信协议,主
站将控制数据存储到ET 1200内部存储区供ARM读取;另一方面,ET 1200通过
SPI串口方式与ARM通信,ARM读取ET 1200内部存储区指令数据或将反馈数据
写入ET 1200内部存储区供主站读取。
    3. ARM核心处理器:ARM是运动控制器的核心处理单元,控制器适用于多
轴的实时高速高精度控制,因此需要有足够的I/O端口,灵活的编程功能,支持
浮点运算,高速运动控制算法,以实现较高的实时性,完成相对复杂的控制功能
和状态检测。因为ARM单片机具有浮点运算的功能,非常适合用于伺服控制算
法及轨迹规划的处理。因此,本控制器采用ARM芯片作为控制器的主处理器。
本设计中所用ARM选用STM32F427芯片,它是意法半导体推出的一款32位
Cortex-M4内核的处理器,具有丰富的片内外资源,能满足复杂工业现场中稳定
高效的运算需求。
    4.  MCX314运动控制芯片:MCX314AL是集4轴脉冲输入的伺服电机、步
进电机的定位控制、速度控制和插补驱动控制功能于一身的IC。可以进行各轴的
独立控制,选择4轴中的任意2轴或3轴可以实现直线插补、圆弧插补、位模式
插补和连续插补等功能。本控制器采用MCX314AL作为协处理器,用来实现控制
器的伺服驱动、原点搜索等多种功能。
    _5.电源管理模块:为运动控制器主板和接口板提供两路相互独立的电源,包
含+24V, +5V, +3.3V等工作电压。
    6.  AD采样芯片:AD采样使用AD7606模数转换芯片,从安全防护角度考
虑不使用ARM芯片片内的ADC单元。
    7.差分驱动和查分接收芯片:MCX314AL运动控制芯片输出的脉冲(PULS )
和方向(SIGN)信号经过差分芯片生成差分信号,增强信号的抗干扰能力和传输
距离,最终传输给伺服驱动器。伺服驱动器输出的编码器C相分频脉冲信号为差
分信号,经过控制器板上的MC3486差分接收芯片处理后输入给MCX314AL进行
分析。差分发送芯片选用TI公司的AMS36LS310
    8.光祸隔离模块芯片:光祸隔离采用的是TLP281-4芯片,该芯片集成4路
光祸,用于对I/O信号进行安全隔离。

作者: goodluck09876    时间: 2019-7-20 11:18
    控制系统软件设计分为主站软件设计和从站运动器软件两大部分,如图2-_5
所示。主站软件包含冲床数控系统界面程序、LinuxCNC架构分析及配置、EtherCAT
主站协议安装、linux实时性改造等方面。从站运动控制器软件包含ARM主控制
程序、从站EtherCAT通信程序、FSMC并行总线驱动程序、MCX314加减速控制
程序等。
    主站程序开发主要是在Linux环境下使用GCC编译器开发,数控界面使用
QT开发。从站使用Keil环境在STM32上开发各芯片驱动程序和运动控制程序。
362095d3287e8be4d5.png
作者: goodluck09876    时间: 2019-7-20 11:18
    本课题EthreCAT主站选用工业PC机,型号为GK1037,采用无风扇设计,
可达到无尘,无噪音,提高可靠性并降低故障率,如下图3-1所示。CPU采用英
特尔低功耗的赛扬1037U,双核1.8G处理器,整机功耗只有18W左右,主机支
持4个COM串口,支持8个USB接口(其中2个USB3.0接口6个USB2.0接
口),支持24小时开机,并且带有2个标准千兆以太网口实现EtherCAT总线控制。
24795d3288045d96b.png
作者: goodluck09876    时间: 2019-7-20 11:18
    EtherCAT从站控制器ESC C EtherCAT Slave Controller)是由德国BECKHOFF
自动化有限公司提供的,包括ASIC芯片和IP-Core,实现EtherCAT数据链路层
协议。目前ASIC从站控制专用芯片有ET1100和ET 1200,也可以使用IP-Core
将EtherCAT通信功能集成到设备控制FPGA当中,并根据需要配置功能和规模。
从本控制器的功能需求和性价比考虑,ESC芯片选用倍福公司的ET 1200}3g}。图
3-2为ET 1200从站控制器结构图。
839525d3288225f87b.png
作者: goodluck09876    时间: 2019-7-20 11:19
    ET 1200最多支持3个EtherCAT物理通信端口,其中一个可以作为MII接口,
用于与物理层PHY芯片交换数据。因为EtherCAT并不定义该接口的物理层,MII
接口也是和传输介质无关接口,因此这种接口方式下的数据链路层与物理层彻底
隔开,从而以太网能够选用任意的传输介质,包括无线电和光纤。ET 1200其余两
个接口均为EBUS接口,EBUS是德国倍福公司使用的LVDS  C Low  Voltage
Differental Signaling)标准定义的数据传输标准,通信速率高达100Mbit/s,能与
ESC芯片直接相连,减小PCB板体积和降低成本。EBUS的传输距离最大为1 Om o
ET 1200提供的物理设备接口有数字I/O和SPI两种,选用ARM作为从站微处理
器是一般通过SPI接口访问ET1200o ET1200采用3.3 V供电,最大工作电流约为
70mA,芯片发热量很小。表3-1为ET 1200的主要技术指标。
242615d3288449c4d6.png
作者: goodluck09876    时间: 2019-7-20 11:19
    基于ET 1200芯片实现EtherCAT总线通信电路方案结构图如图3 -3所示,采
用SPI总线与主控芯片STM犯F427进行串行通信接口,通过STM犯应用程序对
ESC芯片ET 1200进行控制实现EtherCAT总线通信。
853135d32885e995ed.png
作者: goodluck09876    时间: 2019-7-20 11:20
    从站运动控制器设计了两个EtherCAT通信接口,一个采用标准的以太网通信
接口MII,一个使用倍福公司定义的数据传输标准EBUS接口。EBUS接口可以直
接连接从站控制器,从而实现从站之间的数据通信。MII接口需要通过物理层PHY
芯片和网络变压器再与RJ4_5接口连接,完成主站与从站之间的EtherCAT通信,
传输距离远大于EBUS通信方式。除了物理层接口电路以外,主要硬件接口电路
还有数据链路层电路、EEPROM数据存储电路、时钟电路等。

作者: goodluck09876    时间: 2019-7-20 11:20
    数据链路层位于OSI C Open System Interconnect)七层参考模型的第二层,数
据链路可以粗略地理解为数据通道。物理层要为终端设备间的数据通信提供传输
介质及其连接。链路层是为网络层提供数据传送服务的,这种服务要依靠本层具
备的功能来实现。数据链路层具备的功能有:链路的建立与拆除、帧定界和帧同
步、帧发送顺序控制以及差错检测和恢复。
    本课题从站运动控制器采用德国倍福公司的ET1200芯片作为EtherCAT通信
电路的数据链路层,从而实现EtherCAT数据帧的收发、解析、打包等处理,并通
过SPI总线同STM32实现数据通信。本文设计的运动控制器将EtherCAT通信模
块电路集成在扩展板上,缩短了连线距离,提高通信速度,缩小PCB体积。
    数据链路层电路包括ET 1200芯片最小系统、EEPROM存储电路、配置电路、
RJ4_5接口电路、SPI通信电路等,数据链路层电路原理图设计如图3-4所示。
712645d32888c65728.png
作者: goodluck09876    时间: 2019-7-20 11:24
    原理图中ET 1200芯片采用3.3 V供电,3.3V电源由数字电源部分VCC3.3 V
提供。与STM32之间采用SPI总线通信,共计4根线为SPI_ SCK(时钟信号),
SPI NSS(片选信号),SPI_ MOSI(主机输出从机输入),SPI_ MISO(主机输入从
机输出)。根据ET1200芯片数据传输速率和芯片手册参考电路,外接晶振选择
2_SMHz的无源晶振。根据上一章硬件电路总体方案设计,在数据链路层电路中预
留一个EBUS接口。从站控制器ET 1200提供外置引脚配置功能,也即在ET 1200
上电时从外部引脚读取配置状态锁存到对应的寄存器,配置的主要内容包括端口
配置、TX相位偏移、CPU时钟输出、EEPROM容量、CLK2_5输出、PHY地址偏
移等,表3-2为引脚配置功能列表。
530965d328984da6b4.png
作者: goodluck09876    时间: 2019-7-20 11:25
    表3-2描述的功能配置通过上拉电阻或下拉电阻实现,实现的电路原理图如
图3-_5所示。由表可知,将ET 1200端口1设置为M II模式用于连接到工业PC机,
端口0设置为EBUS模式预留给其他EtherCAT从站使用;为降低电磁辐射禁用了
CPU时钟输出;物理层PHY芯片的时钟信号来自ET 1200的CLK2_5,所以要使能
该时钟信号;选用EEPROM芯片为AT26LC16A容量为2K byte,所以将18脚置
为0;将PHY地址偏移设置为0,端口0对应的PHY地址即为Oo
525925d3289c2b7e24.png
作者: goodluck09876    时间: 2019-7-20 11:26
551635d3289d10e3b7.png 198635d3289dc247e8.png
作者: goodluck09876    时间: 2019-7-20 11:26
    物理层是OSI的第一层,提供用于建立、保持和断开物理连接的机械的、电
气的、功能的和过程的条件。物理层也是实现EtherCAT以太网总线通信的最底层,
选用物理层芯片完成物理层数据收发功能。从设计要求和成熟技术方案考虑,选
用MICREL公司的KS 8721BL作为PHY芯片;RJ4_5接口选用HanRun公司出品
的HY9_51180A型号,其中集成了1:1的网络变压器,提高了集成度,接口为立式,
方便设计运动控制器的外壳,如图3-7所示。在EtherCAT协议规范中要求物理层
PHY芯片与从站控制器芯片使用相同的时钟源,因此KS8721BL芯片的2_SMHz
时钟信号由ET 1200提供。
566505d3289f7cb10c.png
作者: goodluck09876    时间: 2019-7-20 11:30
775945d328af00ef50.png
作者: goodluck09876    时间: 2019-7-20 11:32
    在第二章硬件总体方案设计中,确定ARM为运动控制器核心,主要负责总
线通信、逻辑流程控制、加减速控制等功能。按照划分的各个功能模块,规划本
节硬件电路设计与实现。主要有ARM芯片配置电路、FSMC总线电路、232接口
电路、掉电保护电路等。ARM控制电路结构示意图如图3-9所示,其中EtherCAT
通信电路在上一节中己经做出详细描述,本节不再重复。
512085d328b3d46e36.png
作者: goodluck09876    时间: 2019-7-20 11:33
    STM32是ARM Cortex-M内核的32位微控制器,STM32F4系列是ST(意法
半导体)推出了以基于Cortex-M4为内核的高性能微控制器。STM32F4系列微控
制器集成了单周期DSP指令和FPU (floating point unit,浮点单元),提升了计算
能力,可以进行一些复杂的计算和控制。
    STM32F4系列微控制器拥有更多的存储空间:高达2M字节的片上存储、高
达2_56K字节的内嵌 SRAM, FSMC接口可以连接灵活的外部存储器;新增更高级
的外设:照相机接口、加密处理器,USB高速OTG接口等;增强一些外设功能:
更快的通信接口,更高采样率,带FIFO的DMA控制器等。还拥有高速USART,
可达10._SMbits/s,高速SPI,可达37.SMbits/s o
    根据本运动控制器的功能需求,需要选用I/O口资源丰富、存储空间较大、
运算速度快、支持浮点运算、满足工业环境温湿度等要求的微处理器作为控制核
心。依据ST公司MCU选型手册最终选用STM32F427系列微处理器。该系列芯
片包含如下资源:2M字节的Flash存储空间、2_56K字节RAM,  12个16位精度
定时器、
封装包含
2个32位精度定时器、6路SPI, 3路IIC , 8路USART,  144引脚LQFP
114个I/O口、工作温度范围一40}-+85 0C等,满足功能需求。
    STM32F427正常稳定工作需要一系列相关的配置电路,主要包括启动模式选
择电路、时钟电路、SWD程序调试电路、复位电路、电池备份电路、运行状态显
示电路以及引出扩展电路等。本运动控制器原理图工程比较大,故尽量采用的同
一网络标签表示同一条线的连接,各个功能模块相互分开,便于设计和检测;芯
片硬件尽可能按照顺序排列,方便和芯片手册核对,不易出错。如图3-10所示为
MCU原理图及标识好的引脚,因为原理图比较大,芯片引脚较多,若不采用网络
标签设计方式而用引线连接设计,则图纸会杂乱无章,可读性极差。
102035d328b94c0c3d.png
作者: goodluck09876    时间: 2019-7-20 11:34
282425d328babe09b0.png
作者: goodluck09876    时间: 2019-7-20 11:41
462715d328d76bd1fa.png
作者: goodluck09876    时间: 2019-7-20 11:42
49065d328dae67733.png
作者: goodluck09876    时间: 2019-7-20 11:47
748745d328dcb92d73.png 37235d328ddfd71e3.png
作者: goodluck09876    时间: 2019-7-20 11:49
698945d328f1999613.png
作者: goodluck09876    时间: 2019-7-20 11:49
FSMC C Flexible Static Memory Controller,可变静态存储控制器)是STM32
系列采用一种新型的存储器扩展技术。FSMC具有如下技术优势:
支持多种静态存储器类型。STM32通过FSMC可以与SRAM , ROM , PSRAM ,
NOR Flash和NAND Flash存储器的直接连接。
2.支持丰富的存储操作方法。FSMC不但支持异步读/写多种数据宽度,还
支持同步突发方式访问NOR/PSRAM/NAND存储器。
3.支持多种存储器同时扩展。FSMC映射扩展地址空间中,不同BANK是
分开的,用来扩展类型不同的存储器。
4.支持从FSMC扩展的外部存储器中直接运行代码,却不需要首先调入内部
SRAM。

作者: goodluck09876    时间: 2019-7-20 11:50
    本课题运动控制器中STM32F427与专用运动控制芯片MCX314AL之间的通
信采用FSMC总线,根据MCX314AL使用手册的推荐电路,MCX314AL与STM32
之间采用16根数据线、3根地址线、读写使能控制线、以及片选线等即可正常通
信,读写MCX314AL的寄存器使其工作。
    其中还需注意的事16根数据线都需要接上拉电阻,以免发生数据传输产生错
误;MCX314AL的30Pin应该接lOK的上拉电阻使其为3.3V,使其工作在16位
数据总线的模式。MCX314AL应该使用16MHz的有源时钟晶振,如图3-17所示。
665285d328f7f5d6c4.png
作者: goodluck09876    时间: 2019-7-20 11:51
    为了便于在接下来的实验过程中观察实验数据或者外接其他输入输出装置,
在运动控制器接口板的设计中添加一个RS232串口通信接口,实验过程中可以随
时把一些需要观测的数据通过RS232串口上传到上位机中,这样极大地方便了调
试过程。标准的RS232接口的信号电平值较高,即:逻辑“1”为一3}--15V;逻辑
"0”为+3}-+15V,而STM32的电平3.3V为逻辑正,0为逻辑负,故需要一个
RS232的驱动芯片,这里选用ADI公司的隔离式单通道RS232线路驱动器
ADM3251 E。
    ADM2351 E是一款高速、2._SKV完全隔离、单通道RS-232收发器,采用_5 V
单电源供电。由于RIN和TOUT引脚提供高压ESD保护,因此该器件非常适合
在恶劣的电气环境中工作,或频繁插拔RS232电缆的场合。该芯片集成双通道数
字隔离器,无需使用单独的隔离DC-DC转换器即可提供完全隔离的解决方案。根
据芯片数据手册提供的典型工作电路,再结合本硬件系统方案设计RS232接口电
路如图3-18所示。
979605d328fbf7039b.png
作者: goodluck09876    时间: 2019-7-20 11:54
    掉电故障保护电路用来检测给运动控制器输入的24V开关电源工作是否正常,
设计检测电路如图3-19所示。R_54和R_5 _5这两个电阻构成分压电路得到3.13V输
入给电压比较器的同相输入端,R_57和R_5 8这两个电阻将_5 V电压分为2._5 V输入
给比较器的反向输入端。
    传递给电压比较器的同相输入端INB+电压与电压比较器的反相输入端INA-
端的基准电压2._5V相比较,当同相端INB+电压大于反相端INA一端电压时,电压
比较器的输出端OUT输出高电平,当同相端INB+电压小于反相端INA一端电压时,
电压比较器的输出端OUT输出低电平。若电压比较器输出低电平则表示
DC24V-IN电压低于19V,表示开关电源工作异常。然后STM32F427的PF1_5肚p
检测PFAULT的电平即可知开关电源是否工作正常,若工作异常则立即发出指令
停止数控设备运动。
715635d329033d1b2f.png
作者: goodluck09876    时间: 2019-7-20 11:56
    伺服驱动是运动控制系统实现高速高精度运动控制的关键,多轴运动控制器
的伺服接口电路设计关系到控制的精度和效率。伺服电机驱动器的控制方式有速
度控制、位置控制和转矩控制三种方式,其中应用最广泛的就是位置控制方式,
如图3-20所示。伺服单元与运动控制器连接的信号主要有:脉冲、方向、伺服启
动、编码器分频脉冲、伺服警报等信号。
261925d3290d74d7e6.png
作者: goodluck09876    时间: 2019-7-20 12:03
    由于差分信号抗电磁干扰的能力较好,现在市场上的伺服驱动器产品接收的
脉冲控制信号一般为差分信号。差分信号的输出类型有2种指令脉冲:“脉冲+方
向”和“正脉冲+负脉冲”模式。本运动控制器设计采用“脉冲+方向”的差分信
号模式,如图3-21所示。
717745d32928d16908.png
作者: goodluck09876    时间: 2019-7-20 12:04
    MCX314AL中的运动控制模块产生的“脉冲+方向”信号,用高速隔离芯片
将核心电路和接口电路进行隔离。并选用TI公司的4通道线性差分驱动器
AM26LS31,接收转换成差分信号。AM26LS31输出的差分信号经过DB1_5接口后,
使用屏蔽线连接到伺服接口。伺服电机差分驱动电路原理图如图3-22所示。
760805d3292d6c44fc.png
作者: goodluck09876    时间: 2019-7-20 12:05
    光祸隔离电路主要将外部接口电路与内部控制电路隔离,起到保护内部电路
稳定的作用,一般用来隔离一些低速开关信号如:伺服报警信号、轴正负限位信
号、原点和接近原点信号,如图3-23所示,以X轴为例描述光祸隔离电路原理图。
当轴限位的接近开关处于未触发状态时,DC24V-IN与XOLIMIT+之间不能构成通
路流过电流,故TLP281-4的第一路光祸不导通,2-XOLMTP输出高电平;当轴限
位的接近开关处于触发状态时,DC24V-IN与XOLIMIT+之间构成通路流过电流,
TLP281-4的第一路光祸导通,2-XOLMTP接DGND输出低电平。
740775d329305cd21d.png
作者: goodluck09876    时间: 2019-7-20 12:05
    电源对于多轴运动控制器的正常工作有着重要的作用,安全可靠的电源设计
是设计运动控制器的重要基础。运动控制器的外部开关电源输入的是24V直流电
压DC24V-IN,经过降压开关稳压器LM2_596后输出DC_SV供给外围接口电路使
用;另外DC24V-IN经过隔离式电源降压模块后输出VCC_SV直流电压,VCC_SV
再经AMS 1117-3.3 V的三端线性稳压芯片转成VCC3.3 V供给核心电路使用,如图
3-24所示。
505085d32931d56206.png
作者: goodluck09876    时间: 2019-7-20 12:08
    本课题运动控制器采用主板和接口扩展板分离式设计。将运动控制核心芯片
和电路放在主板上,如STM32F427, MCX314AL, MCX501等芯片之间的连接电
路和外围电路,接口电路放在接口扩展板上,如ET 1200接口电路、232通信电路、
AD采样电路、掉电保护电路、光祸隔离电路、差分驱动电路以及电源电路等。两
块板之间通过80Pin的接插件进行连接,也可再通过铜柱锁紧加固。这样不仅极
大缩小了运动控制器的体积,同时也降低的PCB的设计难度并且提高了可靠性。
    主板和接口扩展板都有众多的芯片,且由于机械尺寸限制了PCB板的尺寸,
因此上下两块板都选择4层PCB叠层设计,布局中在内部数字电路与外部模拟电
路之间设计一条足够宽的隔离通道,起到内外隔离的效果,提高运动控制器的可
靠性。在布线中选择第二层为地层,第三层为电源层,顶层和底层不信号线。如
图3-2_5所示,黄色和紫色的为地层和电源层,红色和蓝色的为信号线层。
477245d3293b9af332.png
作者: goodluck09876    时间: 2019-7-20 12:09
主板和接口扩展板实物图如图3-26和3 -27所示。
581445d3293d613b43.png
280985d3293e902081.png
作者: goodluck09876    时间: 2019-7-20 12:09
分割线
---------------------------------------------------------------------------------------------------------------------
以下为软件设计部分。
作者: goodluck09876    时间: 2019-7-20 12:10
    控制系统软件设计包括PC机数控软件设计和运动控制器控制软件设计。PC
机软件开发包括linux实时性改造、LinuxCNC的HAL模块编写、EtherCAT主站
实现、GUI界面设计等。运动控制器软件设计包括ARM主控制程序、ET 1200驱
动程序、RS232驱动程序、SPI串行总线、FSMC并行总线驱动程序以及MCX314
加减速控制程序设计等。

作者: goodluck09876    时间: 2019-7-20 12:10
    PC机部分软件以LinuxCNC为基础,往下LinuxCNC通过HAL(硬件抽象层)
与EtherCAT主站驱动之间进行通信连接,然后EtherCAT主站通过以太网线给从
站运动控制器发控制命令;往上利用LinuxCNC提供的Python调用接口和人机界
面通信,数控系统人机界面采用PyQt开发;由于LinuxCNC需要运行实时任务,
需要将普通操作系统进行改造。因此,目前的主要工作是对Linux系统进行实时
性改造、安装EtherCAT主站、编写HAL模块、编写人机界面。
    虽然EtherCAT主站程序能够安装在非实时操作系统上,但一般情况下会对主
站进行实时性改造,而且LinuxCNC中有运行实时任务的需要,所以对Linux系
统进行实时性改造迫在眉睫。众所周知,Linux系统本质上是一个分时操作系统,
不是一个实时操作系统。Linux系统实时性不强使其在嵌入式应用中有一定的局限
性,受内核可抢占性、进程调度方式、中断处理机制、时钟粒度、虚拟内存管理
等几个方面的制约。
    根据实时性系统要求以及Linux的特点和性能分析,对标准Linux实时性的
改造存在多种方法,较为合理的两大类方法为:直接修改Linux内核源代码和双
内核法。
    1.直接修改Linux内核源代码:对Linux内核代码进行细微修改并不对内核
作大规模的变动,在遵循GPL协议的情况下,直接修改内核源代码将Linux改造
成一个完全可抢占的实时系统。核心修改面向局部,不会从根本上改变Linux内
核,并且一些改动还可以通过Linux的模块加载来完成,即系统需要处理实时任
务时加载该功能模块,不需要时动态卸载该模块。这种方法存在的问题是:很难
百分之百保证,在任何情况下,GPOS(通用操作系统)程序代码绝不会阻碍RTOS
的实时行为。也就是说,通过修改Linux内核,难以保证实时进程的执行不会遭
到非实时进程所进行的不可预测活动的干扰。
    2.双内核法:双内核法是在同一硬件平台上采用两个相互配合,共同工作的
系统核心,通过在Linux系统的最底层增加一层实时核心来实现。其中的一个核
心提供精确的实时多任务处理,另一个核心提供复杂的非实时通用功能。其优点
是可以做到硬实时,并且能很方便地实现一种新的调度策略。目前采用这种方案
的主要有RTAT ,  RT-Linux和Xenomai。本课题采用RTAI实时包的方式完成对
Linux系统的实时性改造,如图4-1所示。
    RTAI(实时应用接口)是Linux内核的一个实时扩展,RTAI是基于ADEOS
C Adaptive Domain Environment for Operating System)实现,ADEOS位于Linux
系统和硬件之间管理硬件中断,并控制实时内核和Linux内核的优先级,其中实
时内核优先级高于Linux内核优先级。

作者: goodluck09876    时间: 2019-7-20 12:10
615165d3294453b797.png
作者: goodluck09876    时间: 2019-7-20 12:12
    根据第三章的主站硬件选型得到无风扇工业PC机,在该工业PC机上安装好
Ubuntu操作系统,版本为10.10。安装步骤首先通过Ubuntu官网下载.iso安装文
件,使用软件写入硬盘(U盘)映像,然后将U盘插入工业PC机的USB口,启
动后按照安装向导一步步安装。安装成功后配置Ubuntu的网络参数,连接互联网。
1.下载RTAI压缩包并解压到urs/src目录下,输入命令:
cd /usr/src
sudo tar -bzip2 -xvf rtai一3.8.tar.bz2
2.下载Linux内核压缩包并解压到urs/src目录下,输入命令:
sudo cp suoxd/linux-2.6.37.1.tar.bz2 /usr/src
sudo tar -bzip2 -xvf linux一2.6.32.2.tar.bz2
    3.利用RTAI源码中的文件给内核打补丁,未安装p atch需安装patch后,输
入命令:sudo patch -pl</usr/src/rtai/base/arch/x86/patches/hal-linux-2.6.32.2-
x86-2._5一OO.patch
    4.配置内核,Linux2.6.32引入新的方式用于简化kernel的配置,使用命令拷
贝当前配置,省去很多繁琐的内核配置选项。
    _5.安装内核模块,输入命令:
          sudo make clean
          sudo make
          sudo make modules
          sudo make modules install
          sudo make install
    6.配置RTAI,下载安装MESA库文件和EFLTK包,然后进入RTAI文件夹,
执行配置,输入命令:
          cd /usr/src/rtai
        sudo make config
    7.编译并安装RTAI,命令行窗口的RTAI安装结果如图4-2所示,输入命令:
          sudo make
          sudo make install
326535d329497c4108.png
作者: goodluck09876    时间: 2019-7-20 12:12
35935d3294a68ce06.png
作者: goodluck09876    时间: 2019-7-20 12:12
9.  RTAI内核抢占实现测试,测试结果如图4-4所示,输入命令行:
    cd /usr/realtime/testsuite/user/preempt
    sudo ./run
307315d3294c33caad.png
作者: goodluck09876    时间: 2019-7-20 12:13
    EtherCAT主站方案实现一般都采用倍福公司的TwinCAT, TwinCAT实现了强
大的EtherCAT主站功能,从站XML表配置、EEPROM配置文件操作、扫描
EtherCAT从站等[[40],图4-_5为使用TwinCAT开发冲床数控系统的过程。因为
TwinCAT是基于Windows风格,拥有较好的人机交互界面,功能强大,非常适合
上位机控制窗口的开发,但TwinCAT运行于Windows环境下,实时性很差,而
且TwinCAT和Windows系统需要付费才能商业化应用,价格较高,根据实际考
虑该方案不适合应用于本控制系统。
171235d3294e35f96a.png
作者: goodluck09876    时间: 2019-7-20 12:14
    本控制系统EtherCAT主站以实时Linux操作系统为基础,在Linux环境下开
发主站有两方面优势,一方面Linux为开源系统,方便对底层进行修改;另一方
面便于进行嵌入式移植。Linux下的EtherCAT主站架构如图4-6所示。
900605d32951004262.png
作者: goodluck09876    时间: 2019-7-20 12:14
    Linux操作系统可分为内核态和用户态。内核态是操作系统的核心,负责进程
管理、内存管理、进程间通信和设备管理和驱动等,实时性要求高。用户态主要
运行人机交互、数据监控等实时性要求不高的程序。EtherCAT主站模块运行在内
核态,可支持一个或多个EtherCAT主站,且同时提供应用接口和设备接口。用户
通过应用接口访问主站,通过设备接口连接设备到指定主站。EtherCAT的以太网
设备驱动模块通过主站设备接口与主站连接,EtherCAT设备协议可直接由以太
网帧传送,因而主站能同时并行处理EtherCAT数据帧和通用以太网通信。
    在Linux上安装EtherCAT主站程序,这里选择EtherLab开发的IgH EtherCAT
Master,首先下载主站安装文件IgHEtherLab.tar.bz2,下载文件后解压缩进入含有
Makefile文件的目录安装主站,输入命令:
      make ethercatMaster
      make ethercatMasterinstall
      sudo /etc/init.d/ethercat start
      ethercat master
    若最后两条指令运行正常则说明主站安装成功。

作者: goodluck09876    时间: 2019-7-20 12:14
    LinuxCNC是一款运行在Linux平台下的实时开源数控软件。起源于美国国家
标准与技术研究院的增强型运动控制器EMC (Enhanced Machine Controller)研究
项目,用于机床的数控系统[[41 ]。经过十几年的发展,LinuxCNC系统广泛用于冲
床、车床、3D打印机、激光切割机、等离子切割机、机器人手臂等领域。其主要
优点有:提供多个标准化的用户界面、用户也可以采用自主开发的GUI、自带G
代码解析器、支持伺服电机控制步进电机开环控制、运动控制器功能强大、支持
非笛卡尔坐标运动系统、采用2.4或2.6的Linux内核支持RT-Linux或RTAI实时
补丁。LinuxCNC源代码可以免费下载,安装在Linux系统上。LinuxCNC软件架
构如图4-7所示。
860285d329537edf95.png
作者: goodluck09876    时间: 2019-7-20 12:15
    LinuxCNC是一个模块化设计的软件,大致可以分为以下四个主要模块:运动
控制器(EmcMot)、数字I/O控制器(EmcIO )、任务控制器(EmcTask )、图形用
户界面(GUI)。其中用户操作界面负责接收用户命令并反馈最新状态;任务控制
器是整个系统的决策层,主要负责对各种命令进行决策分类、解析发送给不同的
模块;运动控制器是实时刷新的,主要完成路径规划、插值运算等;数字I/O控
制器负责处理I/O信号,通过NML消息与运动控制器通信,因为不同设备I/O各
不相同,这时需要硬件抽象层HAL文件建立软逻辑电路来控制实际I/O ; HAL硬
件抽象层是LinuxCNC系统的关键技术之一,通过引入HAL机制,为用户提供了
统一的驱动开发接口,方便编写驱动,还能利用配置文件将相应的HAL模块连成
一个复杂系统,方便数据传递。HAL模块结构图如图4-8所示。
632825d3295572cab7.png
作者: goodluck09876    时间: 2019-7-20 12:18
    EtherCAT主站驱动与LinuxCNC之间采用HAL机制进行通信,硬件抽象层
将各个底层的硬件驱动、实时算法抽象出来,构成一个组件,组件是由函数、参
数、输入输出引脚所组成,输入信号包括来自LinuxCNC的控制信号、用户配置
信息,输出信号包括提供给LinuxCNC的反馈量等[[42]。将编写好的HAL模块命令
为ec.comp,编译生成ec.ko,利用insmod命令将其安装后就可以加载到线程中。
当HAL模块启动的时候,需要对变量进行初始化,但完成EtherCAT主站的初始
化是更重要的,只有初始化了主站,设置好参数,建立起完整的通信网络,才能
进行接下来的周期数据传输,其中PDO为进程数据对象、SDO为服务数据对象。
如图4-9为EtherCAT主站的初始化流程图。
29585d3296148e741.png
作者: goodluck09876    时间: 2019-7-20 12:18
    主站初始化完成后,LinuxCNC开始正常运行。LinuxCNC在每个控制周期通
过硬件抽象层下发控制命令,并获取从站设备反馈的信息。HAL周期任务流程图
如图4-10所示。对于采用位置控制的伺服单元,HAL模块每次都要计算出本控制
周期的位移或目标点,然后通过EtherCAT总线发送到从站运动控制器;然后从站
运动控制器在每个控制周期上报编码器位置增量和I/O状态,HAL模块计算出轴
的实际位置后发送给LinuxCNC o
238085d32962f3c746.png
作者: goodluck09876    时间: 2019-7-20 12:34
    在Linux环境下开发用户界面的语言有Python, C++等,图形库有QT, GTK
等。由于控制界面运行于用户态,实时性要求不高,同时兼顾开发难度和周期,
本课题采用Python语言,结合PyQT图形库开发冲床控制界面。Python是一种面
向对象的脚本语言,与其他语言相比,Python具有如下优点:面向对象、公开免
费、跨平台可移植、功能强大、使用简单、模块丰富。QT是一个功能丰富广泛使
用的GUI图形库,可用于Windows,  Linux等平台,具有很好的可移植性。PyQt
是Python语言与Qt图形库相结合的产物,从而可以通过Python来使用Qt图形库,
具有模块丰富、跨平台和使用信号与槽机制的优点。数控界面调用LinuxCNC抽
象出的Python接口与任务控制器通信,并监视LinuxCNC状态信息和错误信息。
    本课题冲床数控系统设计加工状态、参数设置、警告与诊断和软件设置四个
状态界面,四个状态界面下一共分设13个子界面,各个界面之间可以通过按钮进
行切换,数控系统界面结构图如图4-11所示。
608555d3299d8d47bf.png
作者: goodluck09876    时间: 2019-7-20 12:38
    系统的主界面由菜单栏、工作窗口、快捷工具栏和消息提示栏这四部分构成。
菜单栏可以根据不同的操作需求切换不同的工作窗口,快捷工具栏是一些常用的
快捷按钮,消息提示栏是提示快捷按钮内容和显示系统运行状况、错误信息汇报
的区域,如图4-12所示。
980455d329ac211328.png
作者: goodluck09876    时间: 2019-7-20 12:41
    1.加工状态界面:加工状态界面下设有自动加工状态显示、手动加工状态显
示、I/O状态显示和加工图形仿真这4个子界面。下面主要讲解自动加工,加工文
件需要在自动加工状态显示界面下进行,通过单击菜单栏上方的“加工状态”按
钮,并选中“自动加工状态显示”可以进入自动加工界面。
    单击快捷工具栏最右侧的“打开文件”按钮,可以打开所需要的加工文件(数
控系统支持*.PRG和*.PNC这两种类型的数控冲床G代码文件)。工作窗口的右侧
的加工程序显示框会显示当前打开的加工文件,左侧的图形显示区会显示待加工
的图形。在图形显示区中,绿色的方框表示机床的最大加工尺寸、银白色的方框
表示当前加工的板材的尺寸、下方紫红色的小方框表示夹钳的位置、黄色的图形
表示未被加工图形、红色的图形表示己经加工完成的图形、十字光标表示当前冲
头的实际位置。加工前若需要知道当前文件的加工次序,可以单击“仿真”按钮
进行加工仿真(加工预览),仿真时数控冲床上的各轴不会运动。确认加工文件和
加工区域无误之后,单击“开始”按钮进行文件的实际加工。
    2.参数设置界面:参数设置界面用于设置控制系统及机械的参数,分设了系
统参数设置、运动轴参数设置及模具库参数设置这3个子界面。下面主要讲解运
动轴参数,运动轴参数设置界面如图4-1所示。
880085d329b63904fb.png
作者: goodluck09876    时间: 2019-7-20 12:41
各参数的说明如下(注意:其他参数暂不开放给用户设置,显示为灰色。):
(1>点动速度:各轴自由移动的速度设置,这里设置的速度对应的是工业键
盘的“手动倍率”旋转波轮打在100%档位的速度;
(2)回零速度:各轴回零点的速度设置;
(3)脉冲当量设置:机床各轴的单位运动距离与脉冲量的比例关系设置;
(4)减速比参数设置:机床的减速比参数设置;
(5)限位设置:设置机床X轴和Y轴的软限位。
3.警告与诊断界面:
息记录界面这2个子界面。
警告与诊断界面下设有警告信息诊断界面、历史警告信
  如图4-14所示。
641315d329b8f16f91.png
作者: goodluck09876    时间: 2019-7-20 12:42
    4.软件设置界面:软件设置界面用于设置软件与外部设备的通讯参数和显示
软件的版本等信息,设有软件信息、外部设备通讯设置及高级设置这3个子界面。
下面讲解外部设备通讯设置界面,如图4-1_5所示。
685785d329ba55dc62.png
作者: goodluck09876    时间: 2019-7-20 12:43
    外部设备通讯设置界面用于设置PLC、工业键盘与数控软件通讯的连接参数,
其中控制器采用EtherCAT总线连接,PLC和工业键盘均采用串口连接。当通讯正
常时,“外部设置连接状态显示”中的状态灯会显示绿色的“ON",未能正确连接
上则显示红色的“OFF"。当控制器未连接上时,可以通过单击“重新连接”按钮
进行连接。如果PLC或者工业键盘未能正确连接上,则需要检查接线是否正常,
并断电重启系统才能重新连接上。
    运动控制器软件设计包括ARM主控制程序及外围电路驱动程序,外围驱动
程序包括ET 1200驱动程序、AD采样芯片驱动程序、RS232驱动程序、SPI串行
总线、FSMC并行总线驱动程序以及MCX314加减速控制程序设计等。运动控制
器程序在STM32F427这款MCU上使用C语言开发,开发环境为Windows 7下的
Keil uVision_5集成开发环境。
    ARM主控制程序是运动控制器的核心,需要完成各个函数初始化、参数配置、
数据处理、逻辑流程控制及控制算法运算等,图4-16为支持查询模式(自由运行
模式)的流程图。
    ARM芯片在上电后不久进入main)函数,在main)函数中最先完成一系列系
统正常运行相关函数的初始化,如延时初始化函数、LED初始化函数、串口初始
化函数、中断向量表配置初始化函数,然后完成SPI初始化函数、定时器初始化
函数、EtherCAT初始化函数以及FSMC总线初始化函数等。接着完成通信初始化
工作,查询主站的状态控制寄存器,读取事件请求寄存器0x220、相关配置寄存
器,启动或关断相关通讯服务。在完成以上工作后就进入主循环while(1),进行应
用层任务处理和周期性数据处理,周期性数据处理和应用层任务处理有查询模式
  (自由运行模式)或同步模式(中断模式)这两种,本程序采用同步运行模式,
所以在主循环中主要处理非周期性的任务。同步运行模式下周期性数据在中断服
务程序中处理。
638965d329befd6abe.png
作者: goodluck09876    时间: 2019-7-20 12:44
void main(void)
//--一执行一系列初始化函数--一
Delay_Init(168);//初始化延时函数
Led_Init();              //初始化LED端口
Uart_Init(9600);//初始化串口
AD7606_Init();           //初始化AD采样芯片
NVIC_Config();           //初始化STM32时钟及外设
SPI_Config();            //ET 1200用SPI总线初始化配置
Timer2_Init_ Config();    //Timer2初始化配置
ET 1200_GPIO_Config();   //ET 1200 GPIO初始化配置
ECAT_Init();             //初始化通信变量和ESC寄存器
FSMC_Init();             //FSMC并行总线初始化
//--一初始化完成,进入主循环--一
while(1)
ET 1200_AlEvent=pEsc->AlEvent;//读应用层事件请求寄存器,
                // ET 1200一 AlEvent为全局变量,在头文件中定义
if(!ET1200_IntEnabled) //处于自由运行模式(ET 1200_ IntEnabled -=0
                      //处于同步模式(ET1200 IntEnabled==1)
free_ run();   //处于自由运行模式时,进行周期性数据查询
el_event();
刀应用层任务处理,包括状态机和非周期性数据等

作者: goodluck09876    时间: 2019-7-20 12:44
从站设备可以运行于同步模式或自由运行模式,在自由运行模式中使用查询
方式处理周期性过程数据,在同步模式使用中断服务程序处理性数据,
变量
模式,
ET 1200 IntEnabled来控制运行模式。ET 1200 IntEnabled为1时,
通过全局
使用同步
ET 1200 IntEnabled为0时,使用自由运行模式。根据主站对SM的配置,
在函数、参数初始化阶段来初始化变量ET 1200_ IntEnabled,确定当前的运行模式。
本程序选择同步模式,以下将按照该模式讲解一个中断服务数据处理的工作流程,
如图4-17所示。
302925d329c3532478.png
作者: goodluck09876    时间: 2019-7-20 12:44
    在同步运行模式中,ET 1200收到主站传输来的数据后在Pin40 C SPI_IRQ
产生一个下降沿中断信号,其中ET1200的Pin40连接到STM32的PD2端口,
STM32的每个IO口都可以作为中断输入。STM32响应中断信号后先读取ET 1200
事件请求寄存器,如果是SM2事件则从ET 1200的SM2管理存储区读取相应的数
据,如驱动的目标位置、位移量等,读到数据后将其进一步处理并等待下一步操
作。接着发出读命令获取I/O板的数据、AD采样芯片数据、串口设备数据,然后
将上一步处理好的数据写入相应的控制器,如MCX314AL, MCX501, I/O板卡等,
同时将获得的I/O板数据通过SPI写函数将I/O状态写入ET 1200 0

作者: goodluck09876    时间: 2019-7-20 12:45
    FSMC灵活的静态存储控制器,能够与同步或异步存储器和16位PC存储器
卡连接,STM32的FSMC接口支持包括SRAM, NAND FLASH, NOR FLASH和
PSRAM等存储器。FSMC的框图如图4-18所示:
189045d329c5430e2a.png
作者: goodluck09876    时间: 2019-7-20 12:50
    FSMC驱动外部SRAM时,外部SRAM的控制一般有:地址线(如A0}-A25 ),
数据线(如D0}-D15 )、写信号(WE,即WR )、读信号(OE,即RD)、片选信
号(CS),如果SRAM支持字节控制,那么还有UB/LB信号。MCX314AL或MCX_501
的信号线包括AO}-A2,  D0}-D15,  WR,      RD,  CS,  INTN(中断),其操作时序
和SRAM的控制完全类似,因此可以把MCX314AL或MCX_501当成一个SRAM
来用,这就是FSMC驱动MCX314AL或MCX_501的原理。
    STM32的FSMC支持8/16/32位数据宽度,这里用到的MCX314AL或MCX_501
都是16位宽度的,所以在设置的时候选择16位宽。STM32的FSMC将外部存储
器划分为固定大小为2_56M字节的四个存储块,每个存储块又分为4个存储区,
如存储块1  CBankl)的第一区地址为Ox6000,0000^}Ox63FF,FFFF,如图4-19所
示。根据上一章FSMC总线电路设计可知MCX314AL与STM32之间信号的连接,
MCX_501与STM32之间的连接与之类似,不同的是只有片选信号接在不同的端口
上。因此将Bankl的第一区分配给MCX314AL,第二区分配给MCX_501,其基地
址分别为0x6000,0000和0x6400,0000。当第一区片选引肚p使能时,根据基地址和
偏移地址,STM32对MCX314AL的相应寄存器进行读写操作;同理,当第二区
片选引脚使能时,根据基地址和偏移地址,STM32对MCX_501的寄存器进行读写
操作,从而实现STM32与MCX314AL或MCX_501的数据通信。
342025d329d7be2958.png
作者: goodluck09876    时间: 2019-7-20 12:51
765165d329dd9a4551.png
作者: goodluck09876    时间: 2019-7-20 12:51
77755d329de3909f1.png
作者: goodluck09876    时间: 2019-7-20 12:52
420905d329e01c3474.png
作者: goodluck09876    时间: 2019-7-20 12:52
void drive(void)
//--一X,Y轴对称S形加诚速驱动--一
wreg3(Ox3, 0x0004);   // S形模式,0x3表示X和Y轴,下同
range(Ox3,800000); // R=800000(倍率=10)
acac(Ox3,627);       // JK = 627(加速度增加率K = 997.S**s/sect )
acc(Ox3,8000);       // A = 8000(加/诚速度固定为最大值)
sta}tv(Ox3,4000);       // SV=10(初速度=100pps)
spoed(Ox3,4000);        // V=4000(驱动速度=40000pps)
pulse(Ox 1,50000);//xP=_50000
pulse(Ox2,25000);//YP=2_5000
command(Ox3,Ox21);//一定量脉冲驱动
wait(Ox3 );
wreg3(Ox3, 0x0000)      // S形加诚速模式解除

作者: goodluck09876    时间: 2019-7-20 12:53
228115d329e2d4e216.png
作者: goodluck09876    时间: 2019-7-20 12:54
    实验测试平台由一台PC机、一套自主研发的冲床数控系统软件、一台自主
研发的五轴高速运动控制器、一套单轴丝杠滑台、一套二维伺服平台、一套四轴
同步测试架组成。实验过程中需要注意,因为目前运动控制器专为数控冲床设计,
仅保留1个M II接口连接主站,且设计最多连接轴数为五轴,故连接四轴同步测
试架时不能接单轴丝杠滑台和二维伺服平台;测试过程中工业PC机和显示器使
用笔记本代替。在平台上测试通过后将控制系统接入到LX230B型数控转塔冲床
上进行测试和参数调试,最终成功开发出30T数控转塔冲床用高速运动控制系统。

作者: goodluck09876    时间: 2019-7-20 12:55
    EtherCAT主从站基本通信功能测试时首先按图_5-1所示,使用网线将PC机
与从站运动控制器连接起来后,在数控软件通信设置的外部设备通信设置中找到
运动控制器连接状态,点击重新连接。使用Wireshark抓包工具抓取连接过程中主
站广播的数据包,最终连接成功时运动控制器连接状态指示灯变为ON,从站状态
变为操作状态(OP),从站状态机启动正常,如图_5 -2所示。
104665d329eb855cee.png
作者: goodluck09876    时间: 2019-7-20 12:56
    由图_5 -2可知该实验中EtherCAT报文的格式。报文总长度60个字节,前14
个字节是以太网数据帧头,包括6字节的目的地址(ff:ff:ff:ff:ff:ff ) } 6字节的源地
址(78:a5:04:c0:be:6f)} 2字节的帧类型(Ox88a4);接着是2字节的EtherCAT头,
包括11位数据长度(Ox02a)}1位保留位(Ox0)}4位类型位(0x1);然后是EtherCAT
数据,数据为2个子报文,每个子报文包含10字节子报文头,16字节数据,2字
节WKC(工作计数器)。Wireshark抓取的报文与2.1节中的EtherCAT帧格式一
致,从而主从站之间实现了基本通信。
    控制系统基本功能测试是验证系统软硬件功能正常的重要实验,该项测试在
单轴丝杠滑台完成,连接好PC机、运动控制器和单轴丝杠滑台,如图_5-3所示。
在数控软件的手动加工中对输出I/O如伺服使能、紧急停止,回零点如X轴回零、
Y轴回零,单轴位移控制如X+, X-,  Y+,  Y-进行测试,并观察滑台的运动情况
和伺服驱动器面板显示来判断各项功能是否正常。经测试,软件上的相关按钮都
工作正常,五个轴的接口、I/O接口工作正常,产生的脉冲精度误差为0。故数控
系统软硬件基本功能测试通过。

1905d329ef43c493.png

作者: goodluck09876    时间: 2019-7-20 12:57
    通过二维伺服运动平台圆弧插补实验测试运动控制系统G代码解释、圆弧插
补等功能。该项测试主要在二维伺服平台上完成,连接PC机、运动控制器和二
维伺服平台,如图_5 -4所示,通过数控系统控制二维伺服运动平台的X轴和Y轴
电机做圆弧插补,利用上方横梁固定的笔杆记录二维平台上白纸相对运动下的轨
迹。二维平台中的两组伺服机丝杠的参数完全一致,丝杠螺距为20mm,设定伺
服驱动器驱动电机旋转一圈为2000个脉冲,可知丝杠走1 mm需要100个脉冲,
由此设置数控软件中的X, Y轴脉冲当量都为1000
857965d329f248f6fb.png
作者: goodluck09876    时间: 2019-7-20 12:57
    使用AutoCAD设计一个直径D为80mm的圆周,如图_5 -_5所示,绘制完成后
保存为.dxf格式,然后使用一体化饭金CAD/CAM编程软件cncKad将.dxf格式的
图纸转化为冲床数控软件所需的.PNC文件,即G代码。然后将G代码文件导入
到数控软件中,预加工仿真运行无误后启动伺服,进行实际加工,最终得到实际
绘制效果图如图_5 -6所示。绘制出的圆周尺寸精确,控制系统通过圆弧插补测试。
709305d329f5278444.png
作者: goodluck09876    时间: 2019-7-20 12:58
    多轴同步测试实验用来测试运动控制系统多轴运动的同步性能。该项测试主
要利用四轴同步测试架完成,如图_5 -7所示,测试架上固定安装有A,  B,  C,  D
共4组电机和驱动器。将电机驱动器与运动控制连接,控制器通过EtherCAT总线
与PC机连接,打开数控软件,在加工状态中选择手动加工,控制伺服电机A, B,
C, D同时做顺时针运动旋转,通过长时间运行测试观察轴上4个光盘指向分析电
机运动的同步性。经过长时间测试观察后,电机按钮停止伺服轴转动,可以看到
4个电机指向同一方向,驱动器面板显示脉冲数也一致。
75085d329f7280889.png
作者: goodluck09876    时间: 2019-7-20 12:58
    在上一节的一系列实验后,控制系统的各项功能都顺利通过测试,接下来把
开发好的控制系统制作成便于使用的操作台和控制柜接入到LX230B型30T的数
控转塔冲床上,取代原有的控制系统,操作台和控制柜如图_5-8和_5 -9所示。该冲
床选用安川} -7系列AC伺服电机、} -V系列AC伺服驱动器。首先调试好伺服
电机与伺服驱动器之间构成电流环、速度环的PID参数,让闭环的性能达到较好
水平,再接入控制系统,其中编码器分频脉冲输出C相信号在轴回原点时使用。
144125d329f8857601.png
作者: goodluck09876    时间: 2019-7-20 12:59
    为观测控制系统在数控转塔冲床上的应用效果,需要采用非接触测量仪测量
板材运动过程中的振动曲线。根据实验室现有的条件,采用由日本Keyence公司
生产的LK-G400型激光位移传感器和LK-GD_500型控制器作为非接触式测量工具。
LK-G400的主要技术参数为:使用距离为400mm,测量范围为士100mm,取样率
20us,钡」量精度为gum o LK-GD_500型控制器主要参数为:最小显示单位为O.Olum,
显示周期10次/秒。
    在冲床大板材(1200mm X 2_SOOmm)上选取测试点W点,如图_5-10所示。
采用S型曲线加减速规划,加速度g为6,控制板材在X轴上高速移动lOmm,
运动控制器输出的PULS(脉冲)信号局部波形如图_5-11所示。
88795d329fa164728.png
作者: goodluck09876    时间: 2019-7-20 12:59
220905d329fb460226.png
作者: goodluck09876    时间: 2019-7-20 13:00
使用软件LK-Navigator读取传感器测量的数据,如图_5-12所示。由图分析可
知调节时间为130ms(按士0._5%误差带)、稳态误差士0.0_Smm,各项指标良好,
达到工业应用要求。
302015d329fd9a82f6.png
作者: wakayi    时间: 2019-8-9 12:14
非常感谢楼主分享
作者: wowu    时间: 2019-8-9 12:50
非常感谢楼主分享
作者: xiaoqizi    时间: 2019-8-9 12:52
非常感谢楼主分享
作者: xixi2017    时间: 2019-8-11 16:00
感谢楼主分享
作者: lzgjxh    时间: 2019-8-25 23:36
楼主,可以联系下我的QQ. 有合作呢,240734873
作者: goodluck09876    时间: 2019-8-26 08:30
lzgjxh 发表于 2019-8-25 23:36
楼主,可以联系下我的QQ. 有合作呢,240734873

哦?哪方面的合作啊?
作者: hilam@126.com    时间: 2019-10-20 18:44
有点晕,MCX314都是几十年前的老古董,而且价格太高。,居然现在还有人用他做方案,看来是典型书院派,你知道MCX314有众多缺点吗,即便没有技术使用FPGA,人家也会用PCL6045,起码技术更先进一些
作者: boboyu    时间: 2019-10-25 17:12
你的关于etherCat案例很好,请加我qq1507167513,咱们聊聊合作的事!
作者: bsz84    时间: 2019-10-27 11:43
非常感谢楼主分享
作者: 906299627    时间: 2020-1-1 21:00
楼主可以分享一下完整的论文吗?
作者: 红队长    时间: 2020-2-10 18:24
学习了,谢谢
作者: goodluck09876    时间: 2020-2-11 10:27
lzgjxh 发表于 2019-8-25 23:36
楼主,可以联系下我的QQ. 有合作呢,240734873

可以合作的!我们可以ilia哦聊?
作者: jack.king    时间: 2020-3-3 22:05
谢谢分享

请问。用STM32做主站 难不?需要看那些参数啊!
我想做个STM32的主站去控制驱动器




欢迎光临 21ic电子技术开发论坛 (https://bbs.21ic.com/) Powered by Discuz! X3.5