点击上方“正运动小助手”,随时关注新动态!本节主要介绍XPLC006E多轴经济型EtherCAT总线运动控制器控制EtherCAT总线驱动器的方法,分别介绍硬件接线方法,控制器与EtherCAT总线驱动器如何通讯,EtherCAT总线驱动器相关参数的配置,EtherCAT总线初始化操作,以及初始化成功以后的运动控制。
XPLC006E功能简介
0
XPLC006E是正运动运动控制器推出的一款多轴经济型EtherCAT总线运动控制器,XPLC系列运动控制器可应用于各种需要脱机或联机运行的场合。
XPLC006E自带6个电机轴,最多12轴运动控制(含虚拟轴数),支持12轴直线插补、电子凸轮、电子齿轮、同步跟随、虚拟轴设置等功能。
XPLC006E支持多任务同时运行,同时可以在PC上直接仿真运行,编程方式多种可选,支持ZDevelop软件的Basic/PLC梯形图/HMI组态和常用上位机软件编程。
XPLC006E只支持EtherCAT总线轴,不支持脉冲轴和编码器轴。采用EtherCAT总线与驱动器通讯,1ms的刷新周期。
XPLC006E支持PLC、Basic、HMI组态三种编程方式。PC上位机API编程支持C#、C++、LabVIEW、VB、matlab、Qt、Linux、.Net、iMAC、Python、 ROS等接口。
→此款产品有XPLC004E、XPLC006E、XPLC008E三个不同轴数的型号可选。
2
2
XPLC864E功能简介
XPLC864E在XPLC006E的功能基础上做了升级(即上节介绍的XPLC006E的功能都支持),部分资源空间优于XPLC006E,使用方法基本一致,不同之处在于XPLC864E,硬件支持32点输入、32点输出、2个ADC、2个DAC,支持脉冲轴和总线轴混合使用,总实轴轴数为8,除了带EtherCAT接口之外,输出口硬件上可配置为8个轴的脉冲方向信号输出,另带两路编码器输入,可由输入口配置
XPLC864E支持PLC、Basic、HMI组态三种编程方式。PC上位机API编程支持C#、C++、LabVIEW、VB、matlab、Qt、Linux、.Net、iMAC、Python、 ROS等接口。
2
2
一
通讯接线
1.EtherCAT总线接线
使用一根网线将XPLC006E控制器的“EtherCAT总线端口”与“伺服驱动器的EtherCAT总线端口”相连即可。
注意:伺服驱动器的EtherCAT接口有两个,有些驱动器这两个口可以随意接,有些分为“EtherCAT IN”和“EtherCAT OUT”,IN口接上一级设备,OUT口接下一级设备,二者不能混用,要注意连接顺序。
多轴控制时伺服驱动器的EtherCAT OUT口再连接下一级驱动设备的EtherCAT IN口,依此类推。
slot槽位编号、node节点编号和驱动器编号规则如上图所示,EtherCAT总线接口的槽位号默认是0,节点编号按照与控制器的连接先后顺序从0开始依次编号,驱动器编号则是只给带电机设备编号,其他类型设备忽略,也是按连接顺序从0开始编号,这些编号在总线指令中将会用到。
硬件接线完成还需运行总线初始化程序才能与驱动器通讯,初始化模板程序参见下文。
注意:使用EtherCAT总线扩展模块时,也要执行总线初始化操作,再映射IO的编号后才可操作扩展IO。
2.控制器与电脑连接
控制器与电脑可以通过串口或网口连接,下面以网口连接例展开说明。
先将控制器与电脑用一根网线连接好,接通控制器的电源,再打开ZDevelop编程软件,点击菜单栏“控制器”→“连接”,打开“连接到控制器”窗口。
通过“连接到控制器”窗口,可以快速查看本机IP,对比控制器与电脑是否处于同一网段。
IP地址列表下拉选择时,会自动查找当前局域网可用的控制器IP地址(控制器上电POWER灯和RUN灯亮的时候就能查找到该控制器的IP地址)。
同一个网络有多个控制器的时候,IP的下拉列表若没有显示目标控制器的IP地址,可以采取IP扫描来查看当前所有可用的控制器IP地址,扫描完成之后确定关闭此窗口,重新在IP下拉列表选择。
选择正确的IP地址,点击连接之后,连接成功或失败均有信息提示。
控制器出厂的缺省IP地址为192.168.0.11,“连接到控制器”窗口能显示出本机IP地址,请注意设置有线网卡与无线网卡各自的IP。电脑需要设置IP地址与控制器IP处于同一网段才能连接,即四段的前三段要相同,最后一段不同才能通讯。
若控制器与电脑不处于同一网段,则需要修改控制器或电脑其中之一的IP地址,使二者处于同一网段。
若控制器IP地址遗忘,可通过网口连接控制器,再获取控制器IP。
二
EtherCAT总线驱动器通讯说明
1.通讯周期
使用EtherCAT伺服驱动器时需要保证控制器与伺服周期一致才可正常通讯使用。
EtherCAT伺服驱动器一般支持不同周期,通讯周期主要有250us,500us,1ms,2ms,4ms,连接时自动匹配控制器周期,不需要设置,当通讯周期无法自动匹配时,通讯失败,通过修改控制器周期解决(SERVO_PERIOD指令或升级固件修改)。
控制器一般默认为1ms,使用SERVO_PERIOD指令读取控制器周期。伺服周期越小,位置控制越精细,响应速度也更快。
2.驱动器PDO设置
驱动器的PDO是必要的配置,代表着当前驱动器包含的功能。
PDO全名为(Process Data Object),指在EtherCAT总线网络中周期的进行主站与从站的数据交互的功能,可以看作一个数组空间,每个数组元素存放了不同的功能码,PDO在一个周期中执行这些功能码对应的操作,这些功能码就叫做数据字典,数据字典用4位16进制数来表示。
RxPDO:主站传送数据给从站。TxPDO:从站传送数据给主站。EtherCAT总线上控制器为主站,伺服驱动器为从站。
如6040h控制字(用于控制伺服轴的使能、启动、停止、报警、复位等运行状态),每个数据字典Index可包含32个子字典Sub-Index。数据字典的功能和初始值查看驱动器手册的描述。
数据字典的编号及功能是协议本身就确定好的,用户只需按照数据字典的描述设置数据字典的bit位,所有的标准EtherCAT设备都使用一套数据字典。
松下A6B伺服驱动器的EtherCAT相关说明内容可查看松下文档《技术资料-EtherCAT通讯规格篇》。
EtherCAT初始化过程中必须进行驱动器PDO配置,“DRIVE_PROFILE”指令配置驱动器的PDO列表,目前提供约20几种配置选择,每种配置包含哪些数据字典查看该指令说明确认,如下图,具体内容可以在《ZBasic编程手册》中查看。
DRIVE_PROFILE=-1表示驱动器的内置缺省PDO列表,驱动器内置PDO列表包含哪些数据字典需要查看驱动器手册。
DRIVE_PROFILE已有的配置不能满足需求就自定义PDO,采用SDO相关指令操作数据字典配置驱动器需要的PDO。
驱动器的相关参数修改,同样使用SDO指令读写对应的数据字典进行配置或通过驱动器软件修改。SDO指令包含数据字典读取“SDO_READ”、“SDO_READ_AXIS”和数据字典写入“SDO_WRITE”、“SDO_WRITE_AXIS”。
(1)数据字典读取语法
SDO_READ (槽位号, 设备编号, 数据字典编号, 数据字典子编号, 数据类型, 读取数据存储TABLE位置)
SDO_READ_AXIS (轴号, 数据字典编号, 数据字典子编号, 数据类型, 读取数据存储TABLE位置)
(2)数据字典写入语法
SDO_WRITE (槽位号, 设备编号, 数据字典编号, 数据字典子编号, 数据类型, 写入数据值)
SDO_WRITE_AXIS (轴号, 数据字典编号, 数据字典子编号, 数据类型, 写入数据值)
自定义PDO的配置方法请咨询正运动的销售工程师或者技术工程师。
3.驱动器参数设置
可使用驱动器软件修改,或控制器端操作SDO指令修改。修改驱动器参数先连接驱动器,可选USB线或WLAN连接驱动器,使用USB线连接电脑与驱动器端的X1端口,给驱动器上电。
打开松下驱动器软件PANATERM,弹出“选择与驱动器通信”窗口,选择与驱动器通过USB连接后,自动获取到驱动器信息显示在窗口内,点击OK连接成功,就能对驱动器进行设置。
点击菜单栏“显示”→“对象编辑器”,打开如下窗口,找到需要设置的数据字典,在“Setting Value”一栏直接修改数据字典的内容。
修改完成将参数传送给驱动器,并写入驱动器的EEPROM,驱动器再次上电后参数生效。
例:设置UNITS脉冲当量,即设置电机转一圈需要发送多少个脉冲。
SPEED速度、ACCEL加速度、DECEL减速度和运动指令等都是以UNITS为基本单位。
如上图,通过数字字典6091h设置电子齿轮比,6091h-01h设置电子齿轮比分子,6091h-02h设置电子齿轮比分母,此时,电子齿轮比=1/1,6092h-01h设为10000表示给电机发10000个脉冲能使电机旋转一圈,对应的脉冲当量UNITS=10000,MOVE(2)表示给电机发送20000个脉冲,此时电机转两圈。
或者使用SDO指令读写数据字典修改参数。修改完成使用驱动器软件读取6092h-01h的值为10000。
示例:
SDO_WRITE(Bus_Slot,iNode,$6091,1,7,1) '电子齿轮比分子SDO_WRITE(Bus_Slot,iNode,$6091,2,7,1) '电子齿轮比分母SDO_WRITE(Bus_Slot,iNode,$6092,1,7,10000) '电机一圈脉冲数4.驱动器IO信号
若要使用驱动器的IO口,才会涉及到驱动器的IO映射操作,否则忽略。当驱动器产生IO报警时,可根据驱动器手册的提示,修改IO的设定值。
驱动器自身有输入信号,作用为保护信号,默认使能状态,若不接入外部信号,驱动器就会保护报错,调试阶段可以关闭这些信号方便调试,将输入值设置为0即可,需要使用驱动器IO时要对驱动器的IO编号映射后才能使用,后续根据实际需求接入实际信号。
点击驱动器软件PANATERM主界面的“参数”按钮打开下方窗口,选中要修改的IO信号后,在“设定值”一栏修改。
驱动器IO映射需要PDO包含数据字典60FDh,然后使用DRIVE_IO指令设置驱动器IO地址,映射的编号范围不要与总线上的其他设备的IO编号重复。
DRIVE_IO (轴号)=输入输出IO起始编号。
示例:
DRIVE_PROFILE(iAxis) = 5 '设定对应的带IO映射的PDO模式DRIVE_IO(iAxis) = i_IoNum '设定驱动器输入/输出IO起始编号
5.参数写入驱动器
可使用驱动器软件修改,或控制器端操作SDO指令修改。
驱动器的数据字典参数或其他的参数设置完成后,先点击“传送”将修改的全部参数传入驱动器,再点击EEP,将参数写入驱动器的EEPROM,给驱动器重新上电后修改的参数生效,图片上值修改了输入参数,在上图参数一览中可参看多中类别的参数并修改。
6.驱动器轴号映射
EtherCAT总线驱动电机设备连上控制器之后,驱动器轴号需要使用指令映射绑定。
EtherCAT总线上连接的设备的设备号按照连接顺序从0开始自动编号,驱动器编号也是按连接顺序给驱动器设备自动从0开始编号的,只算总线上的驱动器设备,其他设备是没有驱动器编号的。
EtherCAT总线上连接的驱动器需要使用指令映射驱动器的轴号,使用AXIS_ADDRESS 指令映射,映射完成之后才能使用BASE指令选择驱动器轴号,发送脉冲,控制驱动器所连的电机运行。
轴映射写在总线初始化程序中,总线扫描之后,开启总线之前。
语法:AXIS_ADDRESS(轴号)=(槽位号<<16)+驱动器编号+1
EtherCAT总线的槽位号是0。轴号为驱动器映射的目标轴号,映射时每个驱动器的轴号不重复,指向空闲轴号即可。
示例:
AXIS_ADDRESS (6)=(0<<16)+0+1 '第一个ECAT驱动器,驱动器编号0,绑定为轴6AXIS_ADDRESS (7)=(0<<16)+1+1 '第二个ECAT驱动器,驱动器编号1,绑定为轴7AXIS_ADDRESS (8)=(0<<16)+2+1 '第三个ECAT驱动器,驱动器编号2,绑定为轴8ATYPE(6)=65 '设置为ECAT轴类型,65-位置 66-速度 67-转矩 ATYPE(7)=65 ATYPE(8)=65
7.驱动器控制模式
EtherCAT驱动器一般有三种控制模式,分别为CSP周期位置模式,CSV周期速度模式,CST周期力矩模式。提供ATYPE指令设置控制模式。
CSP,CSV,CST模式的设置需要预先设置PDO,PDO同时包含下方数据字典时,即可直接修改ATYPE数值进行模式切换。驱动器默认PDO列表内置有哪些数据字典需要查看驱动器手册确定。
(1)当PDO包含607Ah时,ATYPE可设置为65,周期位置模式,此时使用运动指令控制电机运动。
(2)当PDO包含60FFh时,ATYPE可设置为66,周期速度模式,此时使用DAC指令控制电机以设置值的速度运行,速度单位有两个,脉冲数/S和R/MIN,有驱动器确定,使用时先给较小的数值,观察电机速度情况,再加大。
(3)当PDO包含6071h时,ATYPE可设置为67,周期力矩模式,此时使用DAC指令控制电机以设置值的力矩运行,DAC值范围0-1000,对应0-100%的6071设置值,比如DAC=10,此时电机力矩=1%的6071h值。
注意:速度模式和力矩模式切换时,先将DAC=0后,再修改ATYPE,防止出现事故。
A.位置模式:ATYPE=65
将DRIVE_PROFILE配置为带位置的模式1,ATYPE=66,执行总线初始化程序后,设置轴的UNITS、SPEED等运行参数,使用运动指令给电机发脉冲控制轴的运行,注意试运行时SPEED的值不要设置过大。
位置模式也是实际过程中用的较多的一种模式,运行效果参见后续章节。
B.速度模式:ATYPE=66
将DRIVE_PROFILE配置为带速度的模式22,ATYPE=66,执行总线初始化程序后,在线命令栏发送DAC指令即可控制电机运行,如下图,DAC=5000表示电机以每秒5000个脉冲的速度持续运行,DAC命令发送后电机一直运行,要提高运行速度将DAC的值加大,DAC的值太小电机会克服不了摩擦力无法转动。
注意:出于安全因素考虑,DAC不要设置过大,先设置一个较小值,观察电机运行情况后慢慢往上增加。此模式下停止电机在线命令发送DAC=0即可,或按下软件的紧急停止按钮。
C.力矩模式:ATYPE=67
将DRIVE_PROFILE配置为带力矩的模式30,ATYPE=67,执行总线初始化程序后,在线命令栏发送DAC指令即可控制电机运行。如下图,DAC=30,当前驱动器为0.03的力矩,DAC等于1000时表示100%力矩。要提高运行速度将DAC的值加大,DAC的值太小电机会克服不了摩擦力无法转动。
注意:出于安全因素考虑,DAC不要设置过大,先设置一个较小值,观察电机运行情况后慢慢往上增加。此模式下停止电机在线命令发送DAC=0即可,或按下软件的紧急停止按钮。
8.驱动器报警
观察驱动器上LED面板上是否有报错信息,报错会显示错误码,根据驱动器手册排查错误,修正后将报警清零。
打开驱动器软件的警报窗口,也能看当前驱动器是否有警报,或查询历史警报。
警报窗口
历史警报信息
初始化过程中按轴号清除驱动器的错误,重复调用DRIVE_CLEAR指令清除多个驱动器错误。
语法:DRIVE_CLEAR(模式值)
模式值0-清除当前告警,1-清除历史告警,2-清除外部输入告警。
示例:
BASE(i)DRIVE_CLEAR(0)'清除驱动器错误DELAY50 DATUM(0)'清除控制器轴状态错误"DELAY100
9.驱动器回零
EtherCAT总线可使用控制器提供的回零方式DATUM(mode),mode模式值选择查看ZBasic编程手册的DATUM指令。EtherCAT总线也可以使用驱动器本身的回零模式。
驱动器本身回零使用DATUM(21,mode2)指令,mode2模式值要查驱动器手册数据字典6098h回零模式,如下图所示,mode2填入对应Value值,mode2缺省值为0,也是驱动器回零模式,注意此时的原点限位等信号要接在驱动器上,所以要使用驱动器回零时需要对驱动器的IO进行映射。
示例:初始化完成后再运行驱动器回零程序。
BASE(iAxis) '按驱动器轴号逐个回零AXIS_STOPREASON = 0SPEED = 100 '回零速度CREEP = 10 '反找速度ACCEL = 1000DATUM(21,2) '驱动器回零模式value=2WAIT IDLEIF AXIS_STOPREASON = 0 THEN ?"回零成功"ELSE ?"回零失败" ,"停止原因:",AXIS_STOPREASON,"状态字0X",HEX(DRIVE_STATUS)ENDIF10.EtherCAT总线驱动器参数设置说明
video: https://mp.weixin.qq.com/mp/readtemplate?t=pages/video_player_tmpl&action=mpvideo&auto=0&vid=wxv_2523923974448398337
三
EtherCAT总线初始化
EtherCAT总线初始化操作是控制器与EtherCAT总线驱动器通讯的重要步骤,也是第一步,初始化成功表示着二者成功建立了通讯连接,之后才可顺利进行运动控制和读写驱动的参数。
1.初始化基本流程
按照前面的步骤接好线,给EtherCAT伺服驱动器和控制器上电,使用ZDevelop软件连接控制器,EtherCAT总线使用一段程序来初始化,将初始化程序下载到控制器运行之后,才能设置轴参数和执行运动指令控制伺服电机的运动。
初始化程序中包含WDOG=1开总使能,和AXIS_ENABLE(轴号) = 1开单轴使能,使能前用手可以转动点击,使能完成后便旋转不动,需要给电机发送脉冲才能使其转动。
2.初始化模板程序
(1)主要初始化程序
'用户使用的时候只需要设置程序头的四个常量的值即可。程序其他地方不用改动。分别设置起始的脉冲轴号,和使用的脉冲轴个数,总线轴的起始映射轴号,和总线轴的个数。'****************ECAT总线初始化globalCONST PUL_AxisStart = 0'本地脉冲轴起始轴号global CONST PUL_AxisNum = 0 '本地脉冲轴轴数量globalCONST Bus_AxisStart = 0'总线轴起始轴号global CONST Bus_NodeNum = 1 '总线配置节点数量,用于判断实际检测到的从站数量是否一致globalCONST BUS_TYPE = 0'总线类型。可用于上位机区分当前总线类型global CONST Bus_Slot = 0 '槽位号0(单总线控制器缺省0)global MAX_AXISNUM '最大轴数MAX_AXISNUM = SYS_ZFEATURE(0)global Bus_InitStatus '总线初始化完成状态Bus_InitStatus = -1global Bus_TotalAxisnum '检查扫描的总轴数delay(3000) '延时3S等待驱动器上电,不同驱动器自身上电时间不同,具体根据驱动器调整延时?"总线通讯周期:",SERVO_PERIOD,"us"Ecat_Init() '初始化ECAT总线 while (Bus_InitStatus = 0) Ecat_Init()wendEND
'************************ECAT总线初始****************************************'初始流程: slot_scan(扫描总线) -> 从站节点映射轴/io -> SLOT_START(启动总线) -> 初始化成功'****************************************************************************global sub Ecat_Init() local Node_Num,Temp_Axis,Drive_Vender,Drive_Device,Drive_Alias RAPIDSTOP(2) WAIT IDLE(0) for i=0 to MAX_AXISNUM - 1 '初始化还原轴类型 AXIS_ENABLE(i) = 0 atype(i)=0 AXIS_ADDRESS(i) =0 DELAY(10) '防止所有驱动器全部同时切换使能导致瞬间电流过大 next Bus_InitStatus = -1 SLOT_STOP(Bus_Slot) delay(200) '延时时间可以按需调整,确保驱动器已上电可以等待EtherCAT到位 slot_scan(Bus_Slot) '扫描总线 if return then ?"总线扫描成功","连接从站设备数:"NODE_COUNT(Bus_Slot)if NODE_COUNT(Bus_Slot) <> Bus_NodeNum then '判断总线检测数量是否为实际接线数量 ?"" ?"扫描节点数量与程序配置数量不一致!" ,"配置数量:"Bus_NodeNum,"检测数量:"NODE_COUNT(Bus_Slot) Bus_InitStatus = 0 '初始化失败。报警提示'return endif '"开始映射轴号"for Node_Num=0 to NODE_COUNT(Bus_Slot)-1'遍历扫描到的所有从站节点 Drive_Vender = NODE_INFO(Bus_Slot,Node_Num,0) '读取驱动器厂商 Drive_Device = NODE_INFO(Bus_Slot,Node_Num,1) '读取设备编号 Drive_Alias = NODE_INFO(Bus_Slot,Node_Num,3) '读取设备拨码IDif NODE_AXIS_COUNT(Bus_Slot,Node_Num) <> 0 then '判断当前节点是否有电机 for j=0 to NODE_AXIS_COUNT(Bus_Slot,Node_Num)-1 '根据节点带的电机数量循环配置轴参数(针对一拖多驱动器) Temp_Axis = Bus_AxisStart + Bus_TotalAxisnum '轴号按NODE顺序分配 'Temp_Axis = Drive_Alias '轴号按驱动器设定的拨码分配(一拖多需要特殊处理) base(Temp_Axis) AXIS_ADDRESS(Temp_Axis)= (Bus_Slot<<16)+ Bus_TotalAxisnum + 1 '映射轴号 ATYPE=65'设置控制模式 65-位置 66-速度 67-转矩 DRIVE_PROFILE=-1 '配置为驱动器内置PDO列表,可改为1,-1,等参数 '配置为驱动器内置PDO列表 ' Sub_SetDriverIo(Drive_Vender,Temp_Axis,128 + 32*Temp_Axis) '映射驱动器IO IO映射到控制器IO32-以后每个驱动器间隔32点 ' Sub_SetNodePara(Node_Num,Drive_Vender,Drive_Device,j) '设置特殊总线参数 disable_group(Temp_Axis) '每轴单独分组 Bus_TotalAxisnum=Bus_TotalAxisnum+1'总轴数+1 next else 'IO扩展模块 Sub_SetNodeIo(Node_Num,Drive_Vender,Drive_Device,1024 + 32*Node_Num) '映射扩展模块IO endif next ?"轴号映射完成","连接总轴数:"Bus_TotalAxisnum delay(200) SLOT_START(Bus_Slot) '启动总线 if return then '?"开始清除驱动器错误" for i= Bus_AxisStart to Bus_AxisStart + Bus_TotalAxisnum - 1 BASE(i) DRIVE_CLEAR(0) DELAY 50 '?"驱动器错误清除完成" datum(0) '清除控制器轴状态错误" wa 100 wdog=1 '使能总开关 '"轴使能" AXIS_ENABLE=1 next Bus_InitStatus = 1 ?"轴使能完成" '本地脉冲轴配置for i = 0 to PUL_AxisNum - 1 base(PUL_AxisStart + i) AXIS_ADDRESS = (-1<<16) + i ATYPE = 4 next ?"总线开启成功" else ?"总线开启失败" Bus_InitStatus = 0endif else ?"总线扫描失败" Bus_InitStatus = 0 endifend sub(2)驱动器IO映射(需要使用驱动器IO时才映射,否则不用映射)
'************************总线驱动IO映射**************************************'通过DRIVE_IO指令映射驱动器对象字典中60FD,60FE输入输出状态,要设置正确的DRIVE_PROFILEE或者POD后才可以正常映射'DRIVE_PROFILE模式包含60FD/60FE'iAxis - 轴号 iVender - 驱动器类型 i_IoNum - 输入输出起始编号'**************************************************************************global sub Sub_SetDriverIo(iVender,Iaxis,i_IoNum) if iVender = $66f then '松下驱动器 DRIVE_PROFILE(iAxis) = 5 '设定对应的带IO映射的PDO模式 DRIVE_IO(iAxis) = i_IoNum REV_IN(iAxis) = i_IoNum '负限位应60FD BIT0 FWD_IN(iAxis) = i_IoNum + 1 '正限位先对应60FD BIT1 DATUM_IN(iAxis) = i_IoNum + 2 '原点先对应60FD BIT2 INVERT_IN(i_IoNum,ON) '特殊信号有效电平反转 INVERT_IN(i_IoNum + 1,ON) INVERT_IN(i_IoNum + 2,ON) endifend sub
(3)扩展模块IO映射(连接了扩展模块才设置)
'***********************总线IO扩展模块映射**************************************'通过NODE_IO(Bus_Slot,Node_Num)分配模块IO起始地址'*******************************************************************************global sub Sub_SetNodeIo(iNode,iVender,iDevice,i_IoNum) if iVender = $41B and iDevice = $130 then '正运动EIO1616MT NODE_IO(Bus_Slot,iNode) = i_IoNum endifend sub
(4)特殊参数配置
'********************************从站节点特殊参数配置********************************'通过SDO方式修改对应对象字典的值修改从站参数(具体对象字典查看驱动器手册)'******************************************************************************************************global sub Sub_SetNodePara(iNode,iVender,iDevice,Iaxis) if iVender = $41B and iDevice = $1ab0 then '正运动24088脉冲扩展轴 SDO_WRITE(Bus_Slot,iNode,$6011+Iaxis*$800,0,5,4) '设置扩展脉冲轴ATYPE类型 SDO_WRITE(Bus_Slot,iNode,$6012+Iaxis*$800,0,6,0) '设置扩展脉冲轴INVERT_STEP脉冲输出模式 NODE_IO(Bus_Slot,iNode) = 32 + 32*iNode '设置240808上IO的起始映射地址 elseif iVender = $66f then '松下驱动器 SDO_WRITE(Bus_Slot,iNode,$3741,0,3,0) '以拨码为ID SDO_WRITE(Bus_Slot,iNode,$3401,0,4,$10101) '正限位电平 $818181 SDO_WRITE(Bus_Slot,iNode,$3402,0,4,$20202) '负限位电平 $828282 SDO_WRITE(Bus_Slot,iNode,$6091,1,7,1) '电子齿轮比分子 SDO_WRITE(Bus_Slot,iNode,$6091,2,7,1) '电子齿轮比分母 SDO_WRITE(Bus_Slot,iNode,$6092,1,7,10000) '电机一圈脉冲数 SDO_WRITE(Bus_Slot,iNode,$607E,0,5,0) '电机正转0 反转224 SDO_WRITE(Bus_Slot,iNode,$6085,0,7,4290000000) '异常减速度 'SDO_WRITE(Bus_Slot,iNode,$1010,1,7,$65766173) '写EPPROM(写EPPROM后驱动器需要重新上电) '?"写EPPR0M OK 请断电重启" endifend sub
EtherCAT初始化成功后会打印信息提示,如下。若初始化失败也会打印信息提示。
3.总线节点状态查看
EtherCAT总线上连接的设备信息有如下三种查看方法。查看总线状态的前提是初始化操作成功,否则无法查看。
(1)在菜单栏“控制器”→“控制器状态”窗口查看“槽位0节点”。
(2)在菜单栏“调试”→“总线状态诊断”打开如下窗口查看控制器总线槽位接口的设备信息。
(3)还可以通过在线命令发送“?*EtherCAT”打印EtherCAT总线上的全部设备信息。
4. EtherCAT总线驱动器控制效果
初始化成功后,将各个总线轴依此回零,配置好轴参数之后,就可以使用指令让总线轴按需求动作。
在程序中写入运动指令、在线命令发送运动指令或使用“手动运动”窗口控制电机运行。
示波器采集轴参数波形:
使用“手动运动”功能快速手动操作电机运动,运动前先设置左侧轴参数。
5.EtherCAT总线初始化演示
video: https://mp.weixin.qq.com/mp/readtemplate?t=pages/video_player_tmpl&action=mpvideo&auto=0&vid=wxv_2523900279097049090
本次,正运动技术经济型EtherCAT运动控制器(十):EtherCAT总线快速入门,就分享到这里。
更多精彩内容请关注“正运动小助手”公众号,需要相关开发环境与例程代码,请咨询正运动技术销售工程师:400-089-8936。
本文由正运动技术原创,欢迎大家转载,共同学习,一起提高中国智能制造水平。文章版权归正运动技术所有,如有转载请注明文章来源。
回顾往期内容
经济型EtherCAT运动控制器(九):示波器使用
经济型EtherCAT运动控制器(八):轴参数与运动指令
经济型EtherCAT运动控制器(七):运动缓冲
经济型EtherCAT运动控制器(六):数据储存
经济型EtherCAT运动控制器(五):多任务运行
经济型EtherCAT运动控制器(四):ModbusRTU或ModbusTcp与触摸屏通讯
经济型EtherCAT运动控制器(三):PLC实现多轴直线插补与电子凸轮
经济型EtherCAT运动控制器(二):ZBasic实现多轴直线插补运动
经济型EtherCAT运动控制器(一):功能简介与应用场景
开放式激光振镜运动控制器(一):ZMC408SCAN接口与功能
运动控制器PSO位置同步输出(三):高精度等间距二维三维PSO输出
运动控制器PSO位置同步输出(二):PSO模式详解
运动控制器PSO位置同步输出(一):硬件平台与PSO指令简介
运动控制+机器视觉Demo软件框架(三):视觉纠偏+连续插补的配方编辑
运动控制+机器视觉Demo软件框架(二):移动标定和形状匹配
运动控制+机器视觉Demo软件框架(一):机械参数和配方文件的管理
运动控制+机器视觉Demo软件框架系统概述
开放式激光振镜+运动控制器(六):双振镜运动
开放式激光振镜+运动控制器(五):ZMC408SCAN控制器硬件介绍
开放式激光振镜+运动控制器(四):PSO位置同步输出在激光振镜加工中的应用
开放式激光振镜+运动控制器(三):振镜矫正
开放式激光振镜+运动控制器(二):振镜填充
开放式激光振镜+运动控制器(一):硬件接口
EtherCAT运动控制器之ZMIO300模块的使用
EtherCAT运动控制器的PLC编程(四) 电子凸轮
EtherCAT运动控制器的PLC编程(三) 电子齿轮
EtherCAT运动控制器的PLC编程(二) 圆弧插补
EtherCAT运动控制器的PLC编程(一) 直线插补
快速入门 | 篇二十一:运动控制器ZHMI组态编程简介一
快速入门 | 篇二十一:正运动技术运动控制器自定义通讯
快速入门 | 篇二十:正运动技术运动控制器MODBUS通讯
快速入门 | 篇十九:正运动技术运动控制器多轴同步与电子凸轮指令简介
快速入门 | 篇十八:正运动技术脉冲型运动控制器的使用
快速入门 | 篇十七:运动控制器多轴插补运动指令的使用
快速入门 | 篇十六:正运动控制器EtherCAT总线快速入门
快速入门 | 篇十五:运动控制器运动缓冲简介
快速入门 | 篇十四:运动控制器基础轴参数与基础运动控制指令
快速入门 | 篇十三:正运动技术运动控制器ZDevelop 编程软件的使用
快速入门 | 篇十二:正运动技术运动控制器U盘接口的使用
快速入门 | 篇十一:正运动技术运动控制器中断的应用
快速入门 | 篇十:运动控制器多任务运行特点
快速入门 | 篇九:如何进行运动控制器示波器的应用?
快速入门 | 篇八:如何进行运动控制器EtherCAT总线的基础使用?
快速入门 | 篇七:如何进行运动控制器ZCAN总线扩展模块的使用?
快速入门 | 篇六:如何进行运动控制器数据与存储的应用?
快速入门 | 篇五:如何进行运动控制器输入/输出IO的应用?
快速入门 | 篇四:如何进行运动控制器与触摸屏通讯?
快速入门 | 篇三:如何进行运动控制器ZPLC程序开发?
快速入门 | 篇二:如何进行运动控制器ZBasic程序开发?
快速入门 | 篇一:如何进行运动控制器固件升级?
G代码在运动控制器上的应用
运动控制器的自定义G代码编程应用
离线仿真调试,加快项目进度!
8轴EtherCAT轴扩展模块EIO24088的使用
运动控制器之追剪应用Demo
运动控制器激光振镜控制
ZMC运动控制器SCARA机械手应用快速入门
运动控制器RTEX总线使用入门
正运动技术CAD导图软件配合控制器的使用方法
EtherCAT总线运动控制器应用进阶一
EtherCAT运动控制卡开发教程之Qt(中):小线段连续轨迹加工、暂停与继续
EtherCAT运动控制卡开发教程之Qt(上):开发环境配置与简单运动控制应用
EtherCAT运动控制卡开发教程之python
EtherCAT运动控制卡的SCARA等机器人指令的应用
EtherCAT运动控制卡的PWM与模拟量输出和运动速度同步
EtherCAT运动控制卡硬件比较输出以及编码器锁存
EtherCAT运动控制卡IO动作与运动控制的同步
EtherCAT运动控制卡实时程序的运行和读写控制
EtherCAT运动控制卡的运动暂停、恢复与系统安全设置
EtherCAT运动控制卡小线段前瞻的连续插补运动
EtherCAT运动控制卡的多轴插补运动和手轮运动
EtherCAT运动控制卡的辅助调试工具与方法介绍
EtherCAT运动控制卡的总线轴参数设置和轴运动
EtherCAT运动控制卡的硬件接线与C#的硬件外设读写与回零运动
EtherCAT运动控制卡的硬件接线与C#的单轴运动控制
简单易用的运动控制卡(十六):螺距补偿和反向间隙补偿
简单易用的运动控制卡(十五):PC启停控制器的实时程序
简单易用的运动控制卡(十四):PWM、模拟量输出与运动控制的同步
简单易用的运动控制卡(十三):IO动作与运动控制的同步
简单易用的运动控制卡(十二):运动控制系统的安全设置
简单易用的运动控制卡(十一):运动的暂停恢复和速度倍率设置
简单易用的运动控制卡(十):连续插补和小线段前瞻
简单易用的运动控制卡(九):圆弧插补和螺旋插补
简单易用的运动控制卡(八):直线插补和手轮运动
简单易用的运动控制卡(七):一次性加载多条连续小线段数据
简单易用的运动控制卡(六):Basic文件下载和连续轨迹加工
简单易用的运动控制卡(五):IO配置与回零运动
简单易用的运动控制卡(四):函数库的封装
简单易用的运动控制卡(三):轴参数配置和单轴运动控制
简单易用的运动控制卡(二):外设读写与ZDevelop诊断
简单易用的运动控制卡(一):硬件接线和上位机开发
运动控制卡在ROS上的应用(下)
运动控制卡在ROS上的应用(上)
EtherCAT运动控制卡和LabVIEW构建智能装备(五)
EtherCAT运动控制卡和LabVIEW构建智能装备(四)
EtherCAT运动控制卡和LabVIEW构建智能装备(三)
EtherCAT运动控制卡和LabVIEW构建智能装备(二)
EtherCAT运动控制卡和LabVIEW构建智能装备(一)
EtherCAT运动控制卡在LabVIEW中的运动控制与数据采集
运动控制卡应用开发教程之MATLAB
运动控制卡应用开发教程之C++
运动控制卡应用开发教程之Python
运动控制卡应用开发教程之C#
运动控制卡应用开发教程之Linux
运动控制卡应用开发教程之VB.NET
运动控制卡应用开发教程之VB6.0
运动控制卡应用开发教程之VC6.0
运动控制卡应用开发教程之使用Qt
运动控制卡应用开发教程之LabVIEW
运动控制卡应用开发教程之激光振镜控制
运动控制卡应用开发教程之硬件比较输出
关于正运动技术
正运动技术专注于运动控制技术研究和通用运动控制软硬件产品的研发,是国家级高新技术企业,主要产品有运动控制器、运动控制卡、视觉运动控制一体机、人机界面以及扩展模块等。
正运动技术汇集了来自华为、中兴等公司的优秀人才,在坚持自主创新的同时,积极联合各大高校协同运动控制基础技术的研究,是国内工控领域发展最快的企业之一,也是国内少有、完整掌握运动控制核心技术和实时工控软件平台技术的企业。
正运动技术背靠蓬勃发展的制造业,与时俱进,富有创新,致力于智能制造设备商和终端用户不断提升技术应用和制造水平。经过众多合作伙伴多年的应用开发,产品广泛应用于国内外的3C电子、半导体、印刷包装、纺织服装、激光加工、机械加工、机器人、新能源、医疗保健、舞台娱乐等领域。
|