EtherCAT总线初始化
(一)初始化基本流程
按照前面的步骤接好线,给EtherCAT伺服驱动器和控制器上电,使用ZDevelop软件连接控制器,EtherCAT总线使用一段程序来初始化,将初始化程序下载到控制器运行之后,才能设置轴参数和执行运动指令控制伺服电机的运动。
ethercat是一种具有高性能、低成本、简单应用和灵活拓扑的工业以太网技术。使用标准的以太网物理层、传输介质双绞线或光纤(100base tx或100base fx),可以在产业领域的超高速I/O网络中使用。
EtherCAT 系统由主站、从站组成。主站实现只需要一张普通的网卡,从站需专用的从站控制芯片,如:ET1100、ET1200、FPGA 等。
EtherCAT 一网到底,协议处理直达I/O 层:
- 无需任何下层子总线
- 无网关延迟
- 单一系统即可涵盖所有设备:
● 输入输出,传感器,执行器,驱动,显示…
- 传输速率:
● 2 x 100 Mbit/s ( 高速以太网 , 全双工模式 )
- 同步性:两设备间距300 个节点,线缆长度120 米,同步抖动小于1us
- 刷新时间:
● 256 数字量 I/O:11 μs
● 分布于 100 节点的 1000 开关量 I/O:30 μs=0.03 ms
● 200 模拟量 I/O (16 bit) :50 μs, 采样率 20 kHz
● 100 伺服轴 ( 每个 8 Byte IN+OUT) : 100 μs=0.1 ms
● 12000 数字量 I/O: 350 μs
为了支持更多种类的设备以及更广泛的应用层,EtherCAT 建立了以下应用协议:
- CoE(基于 EtherCAT 的 CAN 应用协议)
- SoE(符合 IEC 61800-7-204 标准的伺服驱动行规)
- EoE(EtherCAT 实现以太网)
- FoE(EtherCAT 实现文件读取)
从设备不需要支持所有的通信协议。相反,仅选择应用程序的最佳通信协议即可
驱动器控制模式
以太网驱动器有三种控制模式:CSP循环位置模式、CSV循环速度模式和CST循环扭矩模式。为了设置控制模式,提供ATYPE命令。
CSP、CSV形式和CST模式的设定需要预设PDO。PDO中包含以下数据词典时,可更改直接模式切换的atype值。哪些数据词典被并入驱动器的默认PDO列表中?你需要检查驱动器手册来决定。
如果pdo含有607ah,AtType可以设置为65周期性位置模式。此时,使用动作指令控制马达的动作。
PDO含有60FFH时,AtType可设置为66周期性速度模式。此时,使用DAC命令以设定值的速度控制马达。有由驱动器决定的2个速度单位、脉冲数/秒及R/min。使用时,首先给予较小的值,观察马达的速度,并使其增加。
PDO包含6071H时,AtType可设定为67、周期性扭矩模式。此时,使用DAC命令,以设定值的扭矩控制马达。DAC值范围是与6071的设定值的0-100%对应的0-1000,例如DAC=10。
在速度模式和扭矩模式之间切换时,请先设定DAC=0,然后为了防止事故,请修正Atype。
位置模式:atype=65
速度模式:ATYPE=66
执行总线初始化程序后,将DAC命令送往在线命令栏,控制马达操作。如以下图所示,DAC=5000表示马达以每秒5000脉冲的速度持续运行。DAC指令发送后,马达经常运行。为了增加行驶速度,增加DAC值,如果DAC值过小,则马达无法克服摩擦,无法旋转。
为了安全理由,请注意不要把DAC放大。首先,设定更小的值,观察马达的动作后逐渐向上上升。
在该模式下,请停止马达,发送DAC=0在线命令,或按软件紧急停止按钮。
力矩模式:ATYPE=67
将DRIVE_PROFILE配置为带力矩的模式30,ATYPE=67,执行总线初始化程序后,在线命令栏发送DAC指令即可控制电机运行,如下图,DAC=30,当前驱动器为3%的力矩,DAC等于1000时表示100%力矩。要提高运行速度将DAC的值加大,DAC的值太小电机会克服不了摩擦力无法转动。
出于安全因素考虑,注意DAC不要设置过大,先设置一个较小值,观察电机运行情况后慢慢往上增加。
此模式下停止电机在线命令发送DAC=0即可,或按下软件的紧急停止按钮。
驱动器报警
观察驱动器上LED面板上是否有报错信息,报错会显示错误码,根据驱动器手册排查错误,修正后将报警清零。
打开驱动器软件的报警窗口,也能看当前驱动器是否有警报,或查询历史警报。
初始化过程中按轴号清除驱动器的错误,重复调用DRIVE_CLEAR指令清除多个驱动器错误。
语法:DRIVE_CLEAR(模式值)
模式值0——清除当前告警; 模式值1——清除历史告警; 模式值2——清除外部输入告警。
示例:
BASE(i) DRIVE_CLEAR(0) '清除驱动器错误 DELAY 50 DATUM(0) '清除控制器轴状态错误" DELAY 100
驱动器回零
EtherCAT总线可使用控制器提供的回零方式DATUM(mode),mode模式值选择查看ZBasic编程手册的DATUM指令。EtherCAT总线也可以使用驱动器本身的回零模式。
驱动器本身回零使用DATUM(21,mode2)指令,mode2模式值要查驱动器手册数据字典6098h回零模式,如下图所示,mode2填入对应Value值,mode2缺省值为0,也是驱动器回零模式,注意此时的原点限位等信号要接在驱动器上,所以要使用驱动器回零时需要对驱动器的IO进行映射。
示例:初始化完成后再运行驱动器回零程序。
BASE(iAxis) '按驱动器轴号逐个回零 AXIS_STOPREASON=0 SPEED=100 '回零速度 CREEP=10 '反找速度 ACCEL=1000 DATUM(21,2) '驱动器回零模式value=2 WAIT IDLE IF AXIS_STOPREASON=0 THEN ?"回零成功" ELSE ?"回零失败" ,"停止原因:",AXIS_STOPREASON,"状态字0X",HEX(DRIVE_STATUS) ENDIF