国庆七天乐-MC_Power与Axis_Power
国庆加班-暂缓更新
本次会利用国庆七天的时间更新一下网络型驱动器的一些知识点,有利于大家深入了解。更新时间不定。
我们利用AM600控制SV660N或者IS620N时,常常会用到MC_Power功能块,我们通过MC_Power功能块可以让伺服驱动器在RN状态和RY状态下自由切换,那么MC_Power到底做了什么来完成这项工作的呢?
首先我们看一张图。
这张图叫CiA402状态机切换图,结合百度,我们来梳理一下关系。
CAN总线
CAN是控制器局域网络(Controller Area Network, CAN)的简称,是由德国BOSCH公司开发的,最初用于汽车产业,“由于其高性能、高可靠性、实时性等优点现已广泛应用于工业自动化”——百度百科。
CANopen
CANopen是一种架构在CAN上的高层通信协协议,也是工业控制常用到的一种现场总线。CANopen由非营利组织CiA(CAN in Automation)负责,基本的定义在 CiA301中,针对个别设备,产生了一些设备子协议,如针对 I/O 模组的 CiA401 及针对运动控制的 CiA402。——百度百科。
对象字典就是CANopen的一个重要特性。
CiA402
Cia402(也称为DS402)设备子协议是关于那些控制电机的伺服驱动器、变频器以及运动控制器的,定义了一些基本的参数,比如产品代码、序列号以及故障代码等。其他参数和电机类型(步进、交流伺服等)与铭牌参数(如额定电流)有关。同时还有一些作用于特定模式的参数,如目标位置、目标速度等。要划重点的是有一些通用的和必须的参数已经被预先定义了,并且他们的地址也被固定了,其中就有我们熟悉的6040、6041。
这个文件中还包括了上述的状态机,这个状态机体现了伺服驱动器可能处于的状态,并且其各状态的转化也是有条件的,必须遵循状态机所规定的顺序。我们通过控制字(6040)引导伺服驱动器改变状态,同时通过状态字(6041)读取伺服当前的状态,值得一提的是,有时我们必须先通过读取状态字来判断是否可以进行下一步操作,比如伺服驱动器的使能一般是利用状态字和控制字的配合来完成的。——百度百科。
我们的620N与660N是通过EtherCAT总线通讯的,那么CiA402与EtherCAT有什么关联呢?
EtherCAT
Ether-利用以太网为基础的现场总线系统。
CAT(以太网控制自动化技术)控制自动化技术(Control Automation Technology)字首的缩写。
由德国的Beckhoff公司研发。
EtherCAT提供了与CANopen相同的通信机制:对象字典、PDO、SDO。——百度百科。
CoE
我们来看看etherCAT的开发者beckoff怎么说:EtherCAT over CANopen协议(CoE)使完整的CANopen配置文件系列可通过EtherCAT使用。 SDO可以直接使用,因此现有的CANopen堆栈几乎可以不变地使用。 定义了可选的扩展名,这些扩展名提高了8个字节的限制并实现了对象列表的完全可读性。
过程数据被组织在过程数据对象(PDO)中,这些对象使用EtherCAT的高效方式进行传输-自然没有8字节限制。 所有CANopen配置文件-包括驱动器配置文件(DS 402)-都可以完全使用,并且基于它的设备可以很容易地传输到EtherCAT。
除了一些细节外,从站的EtherCAT状态机与CANopen状态机相对应,因此仅需要进行少量更改。 为了实现较少模糊的启动行为,定义了另一种称为“安全操作”的状态,将已经有效的输入传送到该状态,同时将输出保持在安全状态。——官网英文说明+翻译。
总结一下就是EtherCAT通过CANopen over EtherCAT 来支持CiA402设备子协议。
多提一句,上文提到了EtherCAT状态机,图示如下:
那么MC_Power就相当于将伺服驱动器从伺服无故障切换到伺服使能,那么它必然会经过以下流程:伺服无故障-伺服准备好-等待打开伺服使能-伺服运行。那么我们如何查询伺服处于什么状态以及如
何控制它从一个状态切换到另一个状态呢?这就不得不提到对象字典中的6040H和6041H了。简单来说,6040称为控制字是因为他是用来控制
用的,即切换状态用它来控制,6041称为状态字是因为它是用来表征状态的,即用来查询伺服驱动器当前的状态。那么我们要完成以上步骤,必然要通过6040和6041的配合来完成。