tokenpocketcom官网下载|ethercat 伺服电机 使用

作者: tokenpocketcom官网下载
2024-03-14 18:30:26

淄博格润电子科技有限公司

润电子科技有限公司 店铺首页供应商品店铺档案留言问价正在

热卖PC搜索

热卖PC搜索

联系客服

|

开放平台

|

法律声明

|

廉正举报

Taobao.com版权所有 2003-现在

|

增值电信业务经营许可证:浙B2-20070195

浙公网安备 33010002000075号

阿里巴巴集团

|

淘宝网

|

天猫

|

聚划算

|

全球速卖通

|

阿里巴巴国际交易市场

|

1688

|

阿里妈妈

|

飞猪

|

阿里云计算

|

AliOS

|

阿里通信

|

高德

|

UC

友盟

|

虾米

|

钉钉

|

支付宝

|

达摩院

如何使用EtherCAT总线伺服控制 - 技象科技

如何使用EtherCAT总线伺服控制 - 技象科技

跳至内容

技象科技有限公司官方网站

技象天猫旗舰店技象天猫旗舰店

技象京东旗舰店技象京东旗舰店

IoT演示平台IoT演示平台

首页

解决方案

菜单切换

TPUNB®

城域物联网

菜单切换

智慧农业

环境监测

智慧停车

局域物联网

菜单切换

智慧楼宇

智慧养老

智慧照明

智慧能源

工业智控物联网

菜单切换

动环监控

终端自组网

菜单切换

自组网

产品终端

菜单切换

芯片产品

模组产品

网关产品

应用产品

云平台

关于我们

菜单切换

荣誉资质

合作伙伴

公司一览

招聘岗位

新闻资讯

菜单切换

公司新闻

下载专区

联系我们

首页

TPUNB®

物联网解决方案

菜单切换

城域物联网

局域物联网

工业智控物联网

终端自组网

物联网产品终端

菜单切换

芯片产品

模组产品

网关产品

物联网云平台

关于我们

菜单切换

荣誉资质

合作伙伴

公司新闻

联系我们

Main Menu

首页

TPUNB®

物联网解决方案

菜单切换

城域物联网

局域物联网

工业智控物联网

终端自组网

物联网产品终端

菜单切换

芯片产品

模组产品

网关产品

物联网云平台

关于我们

菜单切换

荣誉资质

合作伙伴

公司新闻

联系我们

技象科技首页 / 行业百科 / 如何使用EtherCAT总线伺服控制

如何使用EtherCAT总线伺服控制作者:

技象物联网

/ 行业百科 / 电子技术 / 2023年10月3日 19:00:01 2023年10月3日 19:00:01

  EtherCAT总线伺服控制是一种利用EtherCAT总线系统来控制伺服电机的技术,它可以提供高速、可靠的数据传输,并且可以实现高精度的控制效果。本文将介绍EtherCAT总线伺服控制的基本原理,并讨论如何使用它来控制伺服电机。

什么是EtherCAT总线伺服控制?

  EtherCAT总线伺服控制是一种基于EtherCAT总线系统的伺服控制技术,它可以实现高速、可靠的数据传输,从而实现高精度的控制效果。EtherCAT总线伺服控制的基本原理是,通过将伺服驱动器连接到EtherCAT总线系统,并通过EtherCAT总线系统发送控制信号,从而实现伺服电机的控制。EtherCAT总线伺服控制可以实现高速、低延迟的数据传输,因此可以实现高精度的控制效果。

如何使用EtherCAT总线伺服控制?

  要使用EtherCAT总线伺服控制,首先要准备好EtherCAT总线系统,并将伺服驱动器连接到EtherCAT总线系统。然后,可以使用EtherCAT总线系统发送控制信号,从而实现伺服电机的控制。

  1.准备EtherCAT总线系统

  要使用EtherCAT总线伺服控制,首先要准备好EtherCAT总线系统,包括EtherCAT总线、EtherCAT控制器、EtherCAT从站等。EtherCAT总线系统的构成及其连接方式如下图所示:

  2.将伺服驱动器连接到EtherCAT总线系统

  接下来,要将伺服驱动器连接到EtherCAT总线系统,以实现伺服电机的控制。伺服驱动器可以通过EtherCAT总线系统与伺服电机相连,从而实现伺服电机的控制。

  3.使用EtherCAT总线系统发送控制信号

  最后,可以使用EtherCAT总线系统发送控制信号,从而实现伺服电机的控制。EtherCAT总线系统可以实现高速、低延迟的数据传输,从而实现高精度的控制效果。

总结

  EtherCAT总线伺服控制是一种利用EtherCAT总线系统来控制伺服电机的技术,它可以提供高速、可靠的数据传输,并且可以实现高精度的控制效果。要使用EtherCAT总线伺服控制,首先要准备好EtherCAT总线系统,并将伺服驱动器连接到EtherCAT总线系统,然后可以使用EtherCAT总线系统发送控制信号,从而实现伺服电机的控制。

相关阅读:

CFOP:一种有效的魔方解决方案

PIC16F57引脚及功能

CPE的使用场景

DNS设置哪个最好最快?

原创声明:文章来自技象科技,如欲转载,请注明本文链接: https://www.techphant.cn/blog/42570.html

文章导航

← 前一篇文章后一篇文章 →

相关推荐

1月 1 2024

Spooling技术的工作原理

10月 29 2023

并行输入串行输出:简明介绍

1月 11 2024

探索GSM模块的神秘面纱

9月 30 2023

GPRS和4G是一个概念吗?

10月 23 2023

SerialGate:一种简单而强大的数据传输方式

9月 27 2023

保持寄存器与输入寄存器的区别

联系我们

广州技象科技有限公司聚焦物联网底层关键技术,打造100%自主知识产权的TPUNB物联专网,形成完备的物联感知系统参与各垂直行业的整体解决方案及项目建设。

品牌京东旗舰店

品牌天猫旗舰店

公司招聘岗位

免费技术咨询

站内资讯

进气流量传感器数据信号通过无线DTU传输?

2023年9月6日 20:14:02

USART串口接口PCB:简介与应用

2023年9月28日 14:06:56

RS232转TTL三极管解析

2023年12月27日 16:36:41

以太网通讯芯片引脚

2023年9月19日 05:33:48

微震监测仪:用处和数据采集

2023年10月10日 10:00:23

485信号不稳定

2023年10月2日 12:18:09

无线传感器网络体系结构包括哪些部分

2023年6月20日 13:11:18

智慧水电站解决方案的优势

2023年9月6日 06:24:55

保护板485芯片是什么

2023年10月23日 23:09:54

DTU配网自动化终端安装好处

2024年1月12日 09:44:29

站内标签

物联网

监测仪

RS422

无线通信

串口通信

无线模块

CAN通信

通信系统

RS485

Modbus

LoRa

电子技术

USB

传感器

DTU

智慧农业

zigbee

STM32

RS232

UART

最新资讯

频域特征参数有哪些

路径损耗公式中,路径损耗随传输距离如何变化

无线电波的发射和接收过程

工业数据采集器的作用有哪些

广域网采用什么拓扑结构

芯片封装工艺流程

物联网通信技术有哪些应用场景

ISP芯片和SoC芯片有什么区别

产品服务

TPUNB®

城域物联网

局域物联网

工业智控物联网

终端自组网

芯片产品

模组产品

网关产品

技象科技成立于2018年,是中国电子科技集团公司科技成果转化和混合所有制改革的科技企业。

服务条款隐私政策关于我们联系我们

© 2024  广州技象科技有限公司 版权所有 粤ICP备19000791号-2

首页 | 隐私政策 | 关于我们 | 联系我们 | 网站地图

免费咨询组网方案

快速入门 | 篇十六:正运动控制器EtherCAT总线快速入门-正运动技术

快速入门 | 篇十六:正运动控制器EtherCAT总线快速入门-正运动技术

  

首页

关于我们

公司简介

发展历程

董事长致辞

企业荣誉

企业文化

产品中心

运动控制器

总线型运动控制器

ZMC0系列运动控制器

ZMC1系列运动控制器

ZMC2系列运动控制器

ZMC3系列运动控制器

ZMC4系列 EtherCAT/RTEX/振镜 运动控制器

XPLC系列运动控制器

Linux运动控制一体机

运动控制卡

ECI IO控制卡

ECI1000系列控制卡

ECI2000系列控制卡

ECI3000系列控制卡

EC系列运动控制卡

PCI EtherCAT总线控制卡

PCIE EtherCAT总线控制卡

XPCIe/XPCI系列控制卡

机器视觉运动控制一体机

视觉运动控制VPLC516E

视觉运动控制VPLC532E

激光振镜视觉运动控制器

视觉运动控制VPLC710

视觉运动控制VPLC711

机器视觉运动控制开发软件

扩展模块

EtherCAT扩展模块

ZCAN总线扩展模块

S2D-4CH

人机界面

ZHD300X

ZHD400

ZHD400X

ZHD500X

软件平台

ZDevelop编程软件

ZmotionCadV2.0导图工具

ZRobotView机械手仿真工具

参考与学习资料

RTSys开发软件

Zmotion Tools 轴配置与调试软件

MotionRT7 实时内核

行业应用

3C电子

激光加工

印刷包装

自动化流水线

电子半导体

纺织服装

机器人

特种机床设备

光学筛选机

医疗器械

舞台娱乐

新闻中心

公司新闻

产品资讯

市场活动

视频教程

学习分享

支持与服务

销售网络

技术分享

下载中心

售后服务

常见问题

意见反馈

加入我们

人才招聘

人才战略

员工风采

联系我们

EN

协助伙伴成功,是我们的价值所在

The value of Zmotion is to bring customers more success!

首页 /

支持与服务 /

技术分享

Technical support

技术分享

快速入门 | 篇十六:正运动控制器EtherCAT总线快速入门

  之前正运动技术与大家分享了,运动控制器的固件升级、ZBasic 程序开发、ZPLC 程序开发、与触摸屏通讯和输入/输出IO 的应用、运动控制器数据与存储的应用、运动控制器ZCAN、EtherCAT 总线的使用、示波器的应用、多任务运行的特点、运动控制器中断的应用、U盘接口的使用、ZDevelop 编程软件的使用、运动控制器的基础轴参数与基础运动控制指令以及运动缓冲等。  今天,我们来讲解一下正运动技术运动控制器EtherCAT 总线快速入门。  视频教程:《视频教程:正运动控制器EtherCAT总线快速入门》  以下是图文详解  一准备工作    (一)材料准备  1.硬件        2.软件        1)ZDevelop V3.10版本控制器编程软件。从正运动技术官网(www.zmotion.com.cn)下载压缩包,解压后直接运行应用程序,无需安装。  2)松下伺服驱动器上位机调试软件。从松下官网下载后安装。  (二)硬件接线  1.控制器接线  控制器接口的用途参见下图。        1)主电源:将控制器主电源接线端子上的E+24V端子接入24V直流电源正极,将EGND端子接入24V直流电源负极。  2)以太网EtherNET端口接线:使用一根网线将控制器的EtherNET端口与电脑的以太网口相连。  3)伺服驱动器与控制器接线:使用一根网线将控制器的EtherCAT总线端口与伺服驱动器的X2A或X2B口相连。        注意伺服驱动器的EtherCAT接口有两个,有些驱动器这两个口可以随意接,有些分为EtherCAT IN和EtherCAT OUT,IN口接上一级设备,OUT口接下一级设备,二者不能混用,要注意连接顺序。  多轴控制时伺服驱动器的EtherCAT OUT口再连接下一级驱动设备的EtherCAT IN口,依此类推。  2.驱动器接线  伺服驱动器与电机和编码器的接线参见驱动器手册,将驱动器接入220V市电。  二 控制器与电脑连接    控制器与电脑可以通过串口或网口连接,下面以网口连接例展开说明。  (一)网口通讯操作方法  先将控制器与电脑用网线连接好,接通控制器的电源,再打开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地址,然后修改本机IP或控制器IP使二者处于同一网段。  (二)修改控制器IP地址  先使用串口连接控制器,获取控制器IP地址,再修改控制器IP地址。  方法一:可以通过菜单栏“控制器”→“修改IP地址”窗口直接修改控制器IP地址。        方法二:通过IP_ADDRESS指令发送在线命令修改。        指令发送修改成功之后自动断开连接,在线命令打印控制器连接错误信息,通过网口连接选择新IP地址192.168.0.23再次连接控制器,IP地址修改成功后永久有效。  (三)修改本机IP地址  以WIN10为例,在开始菜单里打开控制面板,打开“网络和Internet”。        再打开“网络与共享中心”。        点击“以太网”。        在“以太网状态”窗口点击“属性”,打开“以太网属性”窗口,找到Internet协议版本4(TCP/IPv4)打开,就能看到本机IP地址修改窗口,勾选“使用下面的IP地址”,在IP地址输入栏里修改IP,将本机IP改为和控制器IP处于同一网段,修改完成点击“确认”即可成功修改IP。  再次打开“连接到控制器”窗口尝试连接到控制器。        三 EtherCAT伺服驱动器参数设置    (一)通讯周期  使用EtherCAT伺服驱动器时需要保证控制器与伺服周期一致才可正常通讯使用。  EtherCAT伺服驱动器一般支持不同周期,通讯周期主要有250us,500us,1ms,2ms,4ms,连接时自动匹配控制器周期,不需要设置,当通讯周期无法自动匹配时,通讯失败,通过升级控制器固件修改控制器周期解决。  控制器一般默认为1ms,使用SERVO_PERIOD指令读取控制器周期。  伺服周期越小,位置控制越精细,响应速度也更快。  (二)驱动器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编程手册V3.2.4》中查看。          DRIVE_PROFILE=-1表示驱动器的内置缺省PDO列表,驱动器内置PDO列表包含哪些数据字典需要查看驱动器手册。  DRIVE_PROFILE已有的配置不能满足需求就自定义PDO,采用SDO相关指令操作数据字典配置驱动器需要的PDO。  驱动器的相关参数修改,同样使用SDO指令读写对应的数据字典进行配置或通过驱动器软件修改。SDO指令包含数据字典读取SDO_READ、SDO_READ_AXIS和数据字典写入SDO_WRITE、SDO_WRITE_AXIS。  数据字典读取语法:  SDO_READ (槽位号, 设备编号, 数据字典编号, 数据字典子编号, 数据类型, 读取数据存储TABLE位置)  SDO_READ_AXIS (轴号, 数据字典编号, 数据字典子编号, 数据类型, 读取数据存储TABLE位置)  数据字典写入语法:  SDO_WRITE (槽位号, 设备编号, 数据字典编号, 数据字典子编号, 数据类型, 写入数据值)  SDO_WRITE_AXIS (轴号, 数据字典编号, 数据字典子编号, 数据类型, 写入数据值)  自定义PDO的配置方法请咨询正运动的销售工程师或者技术工程师。  (三)驱动器参数设置  修改驱动器参数先连接驱动器,可选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)     '电机一圈脉冲数  (四)驱动器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起始编号  (五)参数写入驱动器  驱动器的数据字典参数或其他的参数设置完成后,先点击“传送”将修改的全部参数传入驱动器,再点击EEP,将参数写入驱动器的EEPROM,给驱动器重新上电后修改的参数生效,图片上值修改了输入参数,在下图查看不同类别参数变更后的值并修改。        (六)驱动器轴号映射  EtherCAT总线上连接的设备的设备号按照连接顺序从0开始自动编号,驱动器编号也是按连接顺序给驱动器设备自动从0开始编号的,只算总线上的驱动器设备,其他设备是没有驱动器编号的。  EtherCAT总线上连接的驱动器需要使用指令映射驱动器的轴号,使用AXIS_ADDRESS 指令映射,映射完成之后才能使用BASE指令选择驱动器轴号,发送脉冲,控制驱动器所连的电机运行。  轴映射写在总线初始化程序中,总线扫描之后,开启总线之前。  语法:AXIS_ADDRESS(轴号)=(槽位号<<16)+驱动器编号+1  EtherCAT总线的槽位号是0。轴号为驱动器映射的目标轴号,映射时每个驱动器的轴号不重复,指向空闲轴号即可。  示例:          AXIS_ADDRESS (6)=(0<<16)+0+1         '第一个ECAT驱动器,驱动器编号0,绑定为轴6          AXIS_ADDRESS (7)=(0<<16)+1+1         '第二个ECAT驱动器,驱动器编号1,绑定为轴7          AXIS_ADDRESS (8)=(0<<16)+2+1         '第三个ECAT驱动器,驱动器编号2,绑定为轴8          ATYPE(6)=65                             '设置为ECAT轴类型,65-位置 66-速度 67-转矩          ATYPE(7)=65          ATYPE(8)=65  (七)驱动器控制模式  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,防止出现事故。  位置模式:ATYPE=65  将DRIVE_PROFILE配置为带速度的模式1,ATYPE=65,执行总线初始化程序后,设置轴的UNITS、SPEED等运行参数,使用运动指令给电机发脉冲控制轴的运行,注意试运行时SPEED的值不要设置过大。  位置模式也是实际过程中用的较多的一种模式,运行效果参见在文章后半部分。        速度模式:ATYPE=66  将DRIVE_PROFILE配置为带速度的模式22,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  四 EtherCAT总线初始化    (一)初始化基本流程  按照前面的步骤接好线,给EtherCAT伺服驱动器和控制器上电,使用ZDevelop软件连接控制器,EtherCAT总线使用一段程序来初始化,将初始化程序下载到控制器运行之后,才能设置轴参数和执行运动指令控制伺服电机的运动。        初始化程序中包含WDOG=1开总使能,和AXIS_ENABLE(轴号) = 1开单轴使能,使能前用手可以转动点击,使能完成后便旋转不动,需要给电机发送脉冲才能使其转动。  (二)初始化程序  1.主要初始化程序  用户使用的时候只需要设置程序头的四个常量的值即可。程序其他地方不用改动。分别设置起始的脉冲轴号,和使用的脉冲轴个数,总线轴的起始映射轴号,和总线轴的个数。     '****************ECAT总线初始化     global CONST PUL_AxisStart = 0         '本地脉冲轴起始轴号     global CONST PUL_AxisNum = 0         '本地脉冲轴轴数量     global CONST Bus_AxisStart = 0            '总线轴起始轴号     global CONST Bus_NodeNum = 1          '总线配置节点数量,用于判断实际检测到的从站数量是否一致   global CONST BUS_TYPE = 0                 '总线类型。可用于上位机区分当前总线类型     global CONST Bus_Slot = 0                     '槽位号0(单总线控制器缺省0)   global MAX_AXISNUM                 '最大轴数   MAX_AXISNUM = SYS_ZFEATURE(0)   global Bus_InitStatus         '总线初始化完成状态   Bus_InitStatus = -1   global Bus_TotalAxisnum         '检查扫描的总轴数   delay(3000)         '延时3S等待驱动器上电,不同驱动器自身上电时间不同,具体根据驱动器调整延时   ?"总线通讯周期:",SERVO_PERIOD,"us"     Ecat_Init()             '初始化ECAT总线       while (Bus_InitStatus = 0)         Ecat_Init()     wend     END       '*********************ECAT总线初始************************     '初始流程: slot_scan(扫描总线) -> 从站节点映射轴/io -> SLOT_START(启动总线) -> 初始化成功  '**********************  global sub Ecat_Init()      local Node_Num,Temp_Axis,Drive_Vender,Drive_Device,Drive_Alias      RAPIDSTOP(2)      for i=0 to MAX_AXISNUM - 1             '初始化还原轴类型          AXIS_ENABLE(i) = 0          atype(i)=0          AXIS_ADDRESS(i) =0          DELAY(10)                         '防止所有驱动器全部同时切换使能导致瞬间电流过大  next  Bus_InitStatus = -1      ' Bus_TotalAxisnum = 0  SLOT_STOP(Bus_Slot)  delay(200)  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)         '读取设备拨码ID  if 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列表              ' 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  wa 200  SLOT_START(Bus_Slot)             '启动总线  if return then      wdog=1     '使能总开关      '?"开始清除驱动器错误"      for i= Bus_AxisStart to Bus_AxisStart + Bus_TotalAxisnum - 1          BASE(i)          DRIVE_CLEAR(0)          DELAY 50          '?"驱动器错误清除完成"          datum(0)     '清除控制器轴状态错误"          wa 100          '"轴使能"          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 = 0  endif 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)      endif  end 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 '正运动EIO1616          NODE_IO(Bus_Slot,iNode) = i_IoNum      endif  end 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 请断电重启"      endif  end sub  EtherCAT初始化成功后会打印信息提示,如下。若初始化失败也会打印信息提示。        (三)总线节点状态查看  EtherCAT总线上连接的设备信息有如下三种查看方法。查看总线状态的前提是初始化操作成功,否则无法查看。  1.在菜单栏“控制器”→“控制器状态”窗口查看“槽位0节点”。        2.在菜单栏“调试”→“总线状态诊断”打开如下窗口查看控制器总线槽位接口的设备信息。        3.还可以通过在线命令发送?*EtherCAT打印EtherCAT总线上的全部设备信息。        (四)运行效果  初始化成功后,将各个总线轴依此回零,配置好轴参数之后,就可以使用指令让总线轴按需求动作。  在程序中写入运动指令、在线命令发送运动指令或使用“手动运动”窗口控制电机运行。        示波器采集总线轴参数波形:        使用“手动运动”功能快速手动操作电机运动:        正运动技术运动控制器EtherCAT总线快速入门就讲到这里。更多学习视频及图文请关注我们的公众号“正运动小助手”。  本文由正运动小助手原创,欢迎大家转载,共同学习,一起提高中国智能制造水平。文章版权归正运动技术所有,如有转载请注明文章来源。      

关于我们

公司简介

发展历程

董事长致辞

企业荣誉

企业文化

产品中心

运动控制器

运动控制卡

机器视觉运动控制一体机

扩展模块

人机界面

软件平台

新闻中心

公司新闻

产品资讯

市场活动

视频教程

学习分享

支持与服务

销售网络

技术分享

下载中心

售后服务

常见问题

意见反馈

视频教程

用户注册

用户登录

加入我们

人才招聘

人才战略

员工风采

联系我们

邮箱留言

提交

Copyright © 2013 正运动技术有限公司

Design by Zmotion 版权所有   粤ICP备13037187号    Powered by www.zmotion.com.cn

运动控制器-运动控制卡

在线咨询

技术支持1

技术支持1

技术支持2

技术支持2

销售咨询

销售咨询

【产品应用】三个步骤,让你的EtherCAT电机转起来 - 知乎

【产品应用】三个步骤,让你的EtherCAT电机转起来 - 知乎首发于ZLG专栏切换模式写文章登录/注册【产品应用】三个步骤,让你的EtherCAT电机转起来ZLG致远电子EtherCAT是自动化控制最好的实时环形控制总线之一,本文以最简单的方式带你实际操作ZMC300E的EtherCAT总线,让你的EtherCAT电机转起来。前言当一个鼠标插入到电脑时,发生了什么?首先电脑会检测到有USB插入;然后,电脑会提示安装驱动;最后,就可以通过鼠标来移动光标、单击、双击等操作了。这有问题么?当前没有问题,但作为程序猿,有两个地方值得深挖一下。1、电脑安装的驱动,是什么驱动?当然是鼠标驱动,因为我们接入的是鼠标。但电脑是如何知道呢?原来USB规范中,要求每个USB设备都要有自己的设备描述符,电脑通过分析该描述符,才知道接入的是什么设备。2、为什么能通过鼠标来移动光标?这是双方共同合作的结果。首先鼠标提供光标位置的数据,然后电脑收到鼠标的数据后,将数据作用到光标的位置上产生移动效果。这需要有个前提,即鼠标数据的格式,电脑需要先知道其格式,才能解释这份数据。这份数据格式的定义,在USB的接口描述符规范中进行了定义。说了这么多,这和EtherCAT有关系么?当然有,对于EtherCAT或者任意一个总线来说,都需要知道接入设备的类型及数据格式,否则是无法解释数据的,通常有两种方式:事先约定:通过事先约定的来确定工作如何进行。这就像发个信息说“我们晚上8点一起看电影吧“一样简单,这是小编喜欢它的原因。但这个约定有时就像友谊的小船说翻就翻,对方招呼也不打,只剩你一个人还傻傻地站在的电影院门口;协议规范:定义一套完整的规范,大家一起遵循它。规范通常都很多很杂,学习成本较高,按规范开发就像是你去做的基金定投,短期收益低,但稳定可靠。EhterCAT和USB一样都采用了协议规范这种方式,这里简单介绍一下EtherCAT的相关规范及用途:ESI(EtherCAT Slave Information):这个是从站提供的标准描述规范文件,该文件描述了设备的类型、数据格式及一些“特殊癖好”,这就相当于USB的设备描述符+接口描述符。ENI(EtherCAT Network Information):这个是用于给主站启动时,加载的标准配置规范文件,用于初始化所有的从站。这个文件描述了从站的数量、每个从站的类型及数据格式、DC等配置信息。ESI还理解,为啥还多了个ENI呢?EtherCAT规范为了满足工业控制的复杂性,ESI中提供了非常强大的可配置功能,相对的使用起来也变得困难了。因此EtherCAT采用静态化配置,即由PC使用可视化工具进行对应的配置工作,配置完成后导出不可变的ENI配置,给到具体的主站设备来执行。所谓静态化配置,即EtherCAT网络设备发生变化时,需要重新执行配置工作,相比于USB的全自动配置,功能强大了,但使用也麻烦了。有得必有失,这是EtherCAT的选择。简单总结一下EtherCAT开发,可分三步走:生成ENI,加载ENI,解释输入输出数据。准备工作开始EtherCAT测试前,需要准备以下硬件:一台电脑、一台 ZMC300E运动控制器、一台EtherCAT伺服驱动器、2根网线,然后使用网线将设备按如下示意图进行连接。生成ENI文件1. 启动EtherCAT服务打开putty.exe软件,输入运动控制器NET1的默认IP地址:192.168.1.136,账号和密码为root。2. 连接设备启动ZlgEtherCatStudio上位机配置软件,输入运动控制器NET1的默认IP地址:192.168.1.136,点击回车。3. 扫描网络通过扫描EtherCAT总线,来识别接入了多少个设备,并将其网络拓扑添加到本地主站树节点。4. 导入ESI如果该从站无法正确识别,可手动导入从站ESI(EtherCAT Slave Information)文件。5. 配置FMMU一般应用不需配置从站FMMU/SM,使用从站默认配置即可。当需要改变输入输出变量时,可通过本配置项配置。6. 生成ENI文件导出ENI,取名为text_eni。加载ENI文件1. 将上一步生成的test_eni.xml文件,通过WinSCP工具上传到运动控制器的目录/opt中。2. 使用控制器加载ENI配置/文件在putty.exe工具,先输入ctrl+c结束当前主站程序,输入以下命令启动主站并加载ENI配置文件:/opt/ecat_test/master /opt/test_eni.xml,看到输出ethercat start success即代表成功。解释输入输出数据在CiA402规范中,定义了伺服类设备的数据格式,这里给大家介绍一下最常用的位置控制模式的数据格式。1. 输出数据Controlword:控制字,16Bit,主要用于控制电机上下电,抱闸等;Target Position:目标位置,32Bit,用于控制电机转到指定的位置。2. 输入数据(相对于设备)Statusword:控制字,16Bit,主要用于控制电机上电、下电、抱闸等操作;Position Actual Value:实际位置,用于反馈电机当前所在位置。我们要做的就是周期性解释以上4个数据,然后执行对应的操作即可,可参考如下代码:电机测试在putty.exe工具中,可使用以下命令,对电机进行简易测试,这些命令是基于CiA402规范进行实现的。1. move_test 命令angle表示电机转动角度,输入该命令后,电机会一直重复执行输出:先正转angle度,然后反转angle度。输入move_test 90,仔细观察电机的转动,如果发现转动的角度比90度小,则说明脉冲当量偏小,应适当增加。推荐10倍住上递增进行测试,该值默认为1。2、units 命令unit表示脉冲当量,units 1000命令用于将轴0的脉冲当量设置成1000。使用units?查看所有轴的脉冲当量。其它补充1. 关于脉冲当量在实际应用中,脉冲当量的准备值,是如何计算出来的?这个应根据实际的场景及所需要单位来确定,这里给出一个常见的,以角度为单位的脉冲当量计算公式。编码器的分辨率,可以从伺服驱动器的手册得到。2. 关于EtherCAT主站ZMC300E提供的EtherCAT主站,采用的是KPA master主站,商业授权,其主要特点是高效、稳定、支持通过硬件来消除帧抖动(ZMC300E可做到±15us的抖动),我司已购买其版权,用户可免费自由使用。ZLG官方商城:https://sale.zlg.cn/ZLG开发者社区:https://developer.zlg.cn/更多详细产品信息、技术干货,请关注微信公众号“ZLG致远电子”。发布于 2022-12-08 15:27・IP 属地广东电机​赞同​​添加评论​分享​喜欢​收藏​申请转载​文章被以下专栏收录ZLG专栏工业互联网智慧化产品与解决方案

EtherCAT总线运动控制器应用进阶一 - 知乎

EtherCAT总线运动控制器应用进阶一 - 知乎切换模式写文章登录/注册EtherCAT总线运动控制器应用进阶一正运动技术做最好用的运动控制 — www.zmotion.com.cn视频教程:01 准备工作 一、材料准备  1.硬件  A.ZMC432控制器一台,带EtherCAT总线接口。  B.松下EtherCAT伺服驱动器+电机一套  C.电脑一台。  D.带屏蔽层网线两根。  E.24V直流电源一个。  F.接线端子与连接线若干。  2.软件  A.ZDevelop V3.10版本控制器编程软件。  从正运动官网http://www.zmotion.com.cn下载压缩包,解压后直接运行应用程序,无需安装。  B.松下伺服驱动器上位机调试软件。  从松下官网下载后安装。 二、硬件接线1.控制器接线  控制器接口的用途参见下图。  A.主电源:将控制器主电源接线端子上的E+24V端子接入24V直流电源正极,将EGND端子接入24V直流电源负极。  B.以太网EtherNET端口接线:使用一根网线将控制器的EtherNET端口与电脑的以太网口相连。  C.伺服驱动器与控制器接线:使用一根网线将控制器的EtherCAT总线端口与伺服驱动器的X2A或X2B口相连。  注意伺服驱动器的EtherCAT接口有两个,有些驱动器这两个口可以随意接,有些分为EtherCAT IN和EtherCAT OUT,IN口接上一级设备,OUT口接下一级设备,二者不能混用,要注意连接顺序。  多轴控制时伺服驱动器的EtherCAT OUT口再连接下一级驱动设备的EtherCAT IN口,依此类推。2.驱动器接线  伺服驱动器与电机和编码器的接线参见驱动器手册,将驱动器接入220V市电。 02 控制器与电脑连接  控制器与电脑可以通过串口或网口连接,下面以网口连接例展开说明。 一、网口通讯操作方法  先将控制器与电脑用网线连接好,接通控制器的电源,再打开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地址,然后修改本机IP或控制器IP使二者处于同一网段。 二、修改控制器IP地址  先使用串口连接控制器,获取控制器IP地址,再修改控制器IP地址。  方法一:可以通过菜单栏“控制器”→“修改IP地址”窗口直接修改控制器IP地址。  方法二:通过IP_ADDRESS指令发送在线命令修改。  指令发送修改成功之后自动断开连接,在线命令打印控制器连接错误信息,通过网口连接选择新IP地址192.168.0.23再次连接控制器,IP地址修改成功后永久有效。 三、修改本机IP地址  以WIN10为例,在开始菜单里打开控制面板,打开“网络和Internet”。  再打开“网络与共享中心”。  点击“以太网”。  在“以太网状态”窗口点击“属性”,打开“以太网属性”窗口,找到Internet协议版本4(TCP/IPv4)打开,就能看到本机IP地址修改窗口,勾选“使用下面的IP地址”,在IP地址输入栏里修改IP,将本机IP改为和控制器IP处于同一网段,修改完成点击“确认”即可成功修改IP。  再次打开“连接到控制器”窗口尝试连接到控制器。  03 DPOS与MPOS的区别  DPOS为用户定义的目标位置,即控制器发出的指令位置,单位是UNITS,该值的大小等于控制器实际发送脉冲数,除以脉冲当量得出。  写DPOS会自动转换为DEFPOS绝对坐标位置偏移,不会移动电机。  MPOS为用户单位的轴测量位置,也称为实际位置,单位是UNITS。该值是由编码器测量得出的轴实际位置,接在伺服电机上的编码器用于测量电机的转角与转速,MPOS的值正常情况下会跟随DPOS值,该值的大小等于编码器测得实际脉冲数,除以脉冲当量得出。没有编码器的场合,轴的MPOS值自动复制DPOS的值。  写MPOS会自动转换为DEFPOS绝对坐标位置偏移。  部分电机有一定跟随误差的(DPOS-MPOS),这个和机械和电机本身刚性都有关系,机械越好,电机越好,调的刚性越足,则跟随误差越小,但跟随误差永远存在,不可能消除,并且在实时变化,实际应用中尽量把机械刚性和电机刚性提高,让跟随误差尽量减小,速度尽量平滑,使得MPOS更准确。  另外SPEED为控制器给定速度,MSPEED为编码器的实际测量反馈速度。  如下图,轴类型ATYPE=65,EtherCAT周期位置模式,带编码器反馈,故脉冲信号输出与编码器反馈信号均在轴0上,此时MPOS为真,跟随DPOS。  ATYPE=4或65或50模式时,轴号上均带编码器反馈。  OFFPOS指令相对偏移修改所有的坐标,不会对已运行/进入缓冲区的运动产生影响。  DEFPOS指令设置当前轴位置为一个新的绝对位置值,不会对已运行/进入缓冲区的运动产生影响。示例:  BASE(0,1) '选择轴0,轴1  DPOS=100,100 '设置当前位置为100,100  ?DPOS(0),DPOS(1) '打印确认,当前位置为100,100  OFFPOS=10,20 '多次调用OFFPOS相对位置  OFFPOS=10,20  ?DPOS(0),DPOS(1) '此时当前位置变为120,140  DEFPOS(10,20) '设置当前位置为10,20  ?DPOS(0),DPOS(1) '当前位置为10,20  04 EtherCAT伺服驱动器参数设置  一、电子齿轮比的应用  伺服电机电子齿轮比就是伺服对接收到的控制器脉冲频率进行放大或者缩小,其中一个参数为分子,一个为分母。分子与分母比值为大于1就是放大,比值小于1就是缩小,比值等于1时电机接受脉冲数等于控制器发出脉冲数。  计算公式:电机接收的实际脉冲数=控制器发送脉冲数*电子齿轮比  例如:控制器发出脉冲10000个,电子齿轮比分子设为1,分母设为2,电子齿轮比为0.5,那么伺服实际运行按照5000个脉冲来进行。控制器发出脉冲10000个,电子齿轮比分子设为2,分母设为1,电子齿轮比为2,那么伺服实际运行按照20000个脉冲来进行。  松下驱动器电子齿轮的比值在1000-1/1000的范围内有效。  电子齿轮比通过数据字典6091h的子字典01h和02h的比值设定。6091h-01h设置电子齿轮比的分子,6091h-02h设置电子齿轮比的分母。  数据字典6092h的子字典01h用以设定电机旋转一圈所需脉冲数,一般根据编码器的分辨率设置,6092h的子字典02h的值默认为1。  电子齿轮比等驱动器的相关参数修改,可以通过驱动器软件直接修改,或使用SDO指令读写对应的数据字典进行配置。1.驱动器软件修改电子齿轮比  修改驱动器参数先连接驱动器,可选USB线或WLAN连接驱动器,使用USB线连接电脑与驱动器端的X1端口,给驱动器上电,打开松下驱动器软件PANATERM,弹出“选择与驱动器通信”窗口,选择与驱动器通过USB连接后,自动获取到驱动器信息显示在窗口内,点击OK连接成功,就能对驱动器进行设置。  点击菜单栏“显示”→“对象编辑器”,打开如下窗口,找到需要设置的数据字典,在“Setting Value”一栏直接修改数据字典的内容。  修改完成将参数传送给驱动器,并写入驱动器的EEPROM,驱动器再次上电后参数生效。  图中电子齿轮比=1:1,电机旋转一圈脉冲数10000。2.SDO指令修改电子齿轮比  SDO指令包含数据字典读取SDO_READ、SDO_READ_AXIS和数据字典写入SDO_WRITE、SDO_WRITE_AXIS。  数据字典读取语法:  SDO_READ (槽位号, 设备编号, 数据字典编号, 数据字典子编号, 数据类型, 读取数据存储TABLE位置)  SDO_READ_AXIS (轴号, 数据字典编号, 数据字典子编号, 数据类型, 读取数据存储TABLE位置)  数据字典写入语法:  SDO_WRITE (槽位号, 设备编号, 数据字典编号, 数据字典子编号, 数据类型, 写入数据值)  SDO_WRITE_AXIS (轴号, 数据字典编号, 数据字典子编号, 数据类型, 写入数据值)  示例:  SDO_WRITE(Bus_Slot,iNode,$6091,1,7,1) '电子齿轮比分子设为1  SDO_WRITE(Bus_Slot,iNode,$6091,2,7,1) '电子齿轮比分母设为1  SDO_WRITE(Bus_Slot,iNode,$6092,1,7,10000) '电机一圈脉冲数设为10000  SDO_WRITE(Bus_Slot,iNode,$1010,1,7,$65766173) '写EPPROM(写EPPROM后驱动器需要重新上电)  使用指令更改完成后,查看驱动器参数如下: 二、读取多圈编码器值  驱动器有多圈绝对值编码器时,可使用ENCORDE指令读取编码器硬件寄存器原始值,就是多圈绝对值,此参数为只读类型。只有配置为需要使用编码器的ATYPE时才可以读取。  驱动器重新启动之后将ENCORDE值清零。  ?*ENCODER '打印各轴编码器值,驱动器上电初始值为0  ?ENCODER(0) '打印单轴编码器值  ?ENCODER AXIS(0) '打印单轴编码器值  如下图,使用EtherCAT驱动器,带编码器反馈,控制轴0持续正向运动MOVE(500),此时发送的总脉冲数=UNITS*DPOS=100*500=50000。  ENCORDE指令读取驱动器的多圈绝对值编码器的值,等于编码器检测到的接受脉冲总数50000。  此时将DPOS和MPOS改变,ENCORDE的值不会发生变化,因为改坐标电机不会运动,编码器接收脉冲数没有改变。  因为读取的是多圈绝对值,负方向运动ENCORDE值减小,正向运动ENCORDE值增大。  松下驱动器软件可对绝对式编码器设定。  通过参数Pr0.15设置。  Pr0.15参数选择说明:三个设定值说明如下,上方例子为默认值1,作为增量编码器使用。 三、驱动器IO操作  驱动器IN输入的读取,OP的输出  通过DRIVE_IO指令映射驱动器对象字典中60FDh驱动器IO输入、60FEh驱动器IO输出的起始IO编号。  驱动器在映射IO信号之后,可根据编号对驱动器的IO信号进行控制,IO信号输出可用OP指令控制。  Bit位的值设为1表示ON,为0表示OFF。  驱动器IO映射示例:映射正负限位信号  要设置正确的DRIVE_PROFILEE或者PDO后才可以正常映射输入,也就是说DRIVE_PROFILE驱动器PDO配置模式包含60FDh和60FEh这两个数据字典。  DRIVE_PROFILE(iAxis) = 5 '设定对应的带IO映射的PDO模式  DRIVE_IO(iAxis) = i_IoNum '设定IO起始编号  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)  驱动器IO输出:  DRIVE_PROFILE(iAxis) = 5 '设定对应的带IO映射的PDO模式  DRIVE_IO(iAxis) = i_IoNum '设定IO起始编号  OP(i_IoNum,ON) '打开驱动器的第一个OUT口  可在驱动器的“参数”窗口,找到参数分类4,操作驱动器的IO信号,如下图。  四、驱动器回零  EtherCAT总线可使用控制器提供的回零方式DATUM(mode),mode模式值选择查看ZBasic编程手册的DATUM指令。EtherCAT总线也可以使用驱动器本身的回零模式。  驱动器本身回零使用DATUM(21,mode2)指令,mode2模式值要查驱动器手册数据字典6098h回零模式,如下图所示,mode2填入对应Value值,mode2缺省值为0,也是驱动器回零模式,注意此时的原点限位等信号要接在驱动器上,所以要使用驱动器回零时需要对驱动器的IO进行映射。示例:  初始化完成后再运行驱动器回零程序,按上一节的示例,将驱动器的限位信号和原点信号映射到控制器的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 五、力矩的实时读取  当PDO包含数据字典6071h(目标力矩)时,ATYPE可设置为67,周期力矩模式,此时使用DAC指令控制电机以设置值的力矩运行,DAC值范围0-1000,对应0-100%的DAC的值,比如DAC=10,此时电机力矩=1%的力矩值。  力矩控制时DAC单位为千分之一,等于1000时表示100%力矩,此时的值等于数据字典6072h(设定最大转矩)的值。  注意速度模式和力矩模式切换时,先将DAC=0后,再修改ATYPE,防止出现事故。  SDO读取数据字典6071h的值为目标力矩的大小,即当前发送的DAC的大小,没有发送DAC指令时,6071h的值为0。一般当前力矩6071h的取值范围是0-6072h的设定值。  例如:ATYPE=67力矩模式  DAC=40  SDO_READ(0,0,$6071,0,3,0)'读取轴0的目标力矩,TABLE(0)的值变为40  驱动器力矩的读取可以在配置的DRIVE_PROFILE包含数据字典6077h的情况下,使用DRIVE_TORQUE指令读取当前轴的力矩,或使用SDO_READ指令直接读取数据字典6077h的值获取当前力矩,与目标转矩的值之间可能存在波动,读取的是实时值的大小。示例:  ?DRIVE_TORQUE(0) '打印轴0的力矩  数据字典6077h用于读取当前力矩的值,示例:  SDO_READ(Bus_Slot,iNode,$6077,0,3,0)'读取当前力矩保存到TABLE(0) 六、转矩限制的应用  转矩控制用于印刷机、绕线机、注塑机等场合,使用EtherCAT总线时,电机输出的转矩与DAC指令输入的值成正比。  为了保护机台,可对输出转矩进行限制,电机的最大转矩使用6072h设置,出厂默认值10。  转矩控制时,电机转矩输出受DAC指令控制,但不对电机速度进行控制,因此轻载时,可能发生超速现象,为了保护机械,必须对速度进行限制。  数据字典6072h用于设置电机的最大转矩,6072h的值设为1000表示额定转矩的100%;设为500,表示额定转矩的50%。在EtherCAT的几种不同的模式下均支持,例如在位置模式下可以设置最大允许的力矩,使用MOVE等运动指令控制电机运行,此时电机速度按照SPEED参数运动,若目标位置设置的更大,这样碰到阻碍物后,速度受到限制,只能发出来设定的最大力矩。SDO指令读取示例:  SDO_READ(0,0,$6072,0,3,0) '读取数据保存到TABLE(0),值为5000 七、电机极性设置  电机极性(旋转方向)通过数据字典607Eh设定,有8个bit值可设定,如下图,极性不反转的时候,将607Eh的bit7-5均设为0;极性反转的时候,将607Eh的bit7-4均设为1;其余位bit4-0均设为0。  设置方法:将607Eh的值设为224时,符号有反转,给正方向指令,电机旋转方向为CW(顺时针);将607Eh的值设为0时,符号无反转,给正方向指令,电机旋转方向为CCW(逆时针);电机旋转方向规定参见下图。设置示例:  使用驱动器软件或SDO指令操作数据字典607Eh。  SDO_READ(Bus_Slot,iNode,$607E,0,5,0) '读取极性保存到TABLE(0)  SDO_WRITE(Bus_Slot,iNode,$607E,0,5,$E0) '极性设置  驱动器软件设置:可查看或修改设定值,值为224时,给正向运动参数,电机顺时针旋转。 八、驱动器其他参数设置  驱动器的出厂设置一般没有反转IO电平,会导致驱动器限位报警,出现限位报警之后,要根据驱动器手册设置限位电平反转。比如松下伺服要将Pr4.01、Pr4.02的参数分别设置为010101h(65793)、020202h(131586)。IO输入出厂默认值(下图显示十进制):  可在驱动器软件上直接修改Pr4.01、Pr4.02的值,也可以通过SDO_write指令设置数据字典3401h和3402h设置正负限位的电平。SDO指令设置正负限位的示例:  SDO_WRITE(Bus_Slot,iNode,$3401,0,4,$10101)'正限位电平,出厂值$818181  SDO_WRITE(Bus_Slot,iNode,$3402,0,4,$20202)'负限位电平,出厂值$828282  修改后的值,可查看数据字典的值,或查看参数分类。  其他参数的设置均可在“对象编辑器”窗口或“参数”窗口直接修改,修改完成保存到EEPROM,驱动器重新上电生效。  《EtherCAT总线运动控制器应用进阶一》就讲到这里。更多学习视频及图文详解请关注我们的公众号“正运动小助手”。  本文由正运动技术原创,欢迎大家转载,共同学习,一起提高中国智能制造水平。文章版权归正运动技术所有,如有转载请注明文章来源。编辑于 2021-01-22 11:11Ethernet上位机运动控制​赞同 9​​添加评论​分享​喜欢​收藏​申请

快速入门 | 篇十六:正运动控制器EtherCAT总线快速入门-正运动技术

快速入门 | 篇十六:正运动控制器EtherCAT总线快速入门-正运动技术

  

首页

关于我们

公司简介

发展历程

董事长致辞

企业荣誉

企业文化

产品中心

运动控制器

总线型运动控制器

ZMC0系列运动控制器

ZMC1系列运动控制器

ZMC2系列运动控制器

ZMC3系列运动控制器

ZMC4系列 EtherCAT/RTEX/振镜 运动控制器

XPLC系列运动控制器

Linux运动控制一体机

运动控制卡

ECI IO控制卡

ECI1000系列控制卡

ECI2000系列控制卡

ECI3000系列控制卡

EC系列运动控制卡

PCI EtherCAT总线控制卡

PCIE EtherCAT总线控制卡

XPCIe/XPCI系列控制卡

机器视觉运动控制一体机

视觉运动控制VPLC516E

视觉运动控制VPLC532E

激光振镜视觉运动控制器

视觉运动控制VPLC710

视觉运动控制VPLC711

机器视觉运动控制开发软件

扩展模块

EtherCAT扩展模块

ZCAN总线扩展模块

S2D-4CH

人机界面

ZHD300X

ZHD400

ZHD400X

ZHD500X

软件平台

ZDevelop编程软件

ZmotionCadV2.0导图工具

ZRobotView机械手仿真工具

参考与学习资料

RTSys开发软件

Zmotion Tools 轴配置与调试软件

MotionRT7 实时内核

行业应用

3C电子

激光加工

印刷包装

自动化流水线

电子半导体

纺织服装

机器人

特种机床设备

光学筛选机

医疗器械

舞台娱乐

新闻中心

公司新闻

产品资讯

市场活动

视频教程

学习分享

支持与服务

销售网络

技术分享

下载中心

售后服务

常见问题

意见反馈

加入我们

人才招聘

人才战略

员工风采

联系我们

EN

协助伙伴成功,是我们的价值所在

The value of Zmotion is to bring customers more success!

首页 /

支持与服务 /

技术分享

Technical support

技术分享

快速入门 | 篇十六:正运动控制器EtherCAT总线快速入门

  之前正运动技术与大家分享了,运动控制器的固件升级、ZBasic 程序开发、ZPLC 程序开发、与触摸屏通讯和输入/输出IO 的应用、运动控制器数据与存储的应用、运动控制器ZCAN、EtherCAT 总线的使用、示波器的应用、多任务运行的特点、运动控制器中断的应用、U盘接口的使用、ZDevelop 编程软件的使用、运动控制器的基础轴参数与基础运动控制指令以及运动缓冲等。  今天,我们来讲解一下正运动技术运动控制器EtherCAT 总线快速入门。  视频教程:《视频教程:正运动控制器EtherCAT总线快速入门》  以下是图文详解  一准备工作    (一)材料准备  1.硬件        2.软件        1)ZDevelop V3.10版本控制器编程软件。从正运动技术官网(www.zmotion.com.cn)下载压缩包,解压后直接运行应用程序,无需安装。  2)松下伺服驱动器上位机调试软件。从松下官网下载后安装。  (二)硬件接线  1.控制器接线  控制器接口的用途参见下图。        1)主电源:将控制器主电源接线端子上的E+24V端子接入24V直流电源正极,将EGND端子接入24V直流电源负极。  2)以太网EtherNET端口接线:使用一根网线将控制器的EtherNET端口与电脑的以太网口相连。  3)伺服驱动器与控制器接线:使用一根网线将控制器的EtherCAT总线端口与伺服驱动器的X2A或X2B口相连。        注意伺服驱动器的EtherCAT接口有两个,有些驱动器这两个口可以随意接,有些分为EtherCAT IN和EtherCAT OUT,IN口接上一级设备,OUT口接下一级设备,二者不能混用,要注意连接顺序。  多轴控制时伺服驱动器的EtherCAT OUT口再连接下一级驱动设备的EtherCAT IN口,依此类推。  2.驱动器接线  伺服驱动器与电机和编码器的接线参见驱动器手册,将驱动器接入220V市电。  二 控制器与电脑连接    控制器与电脑可以通过串口或网口连接,下面以网口连接例展开说明。  (一)网口通讯操作方法  先将控制器与电脑用网线连接好,接通控制器的电源,再打开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地址,然后修改本机IP或控制器IP使二者处于同一网段。  (二)修改控制器IP地址  先使用串口连接控制器,获取控制器IP地址,再修改控制器IP地址。  方法一:可以通过菜单栏“控制器”→“修改IP地址”窗口直接修改控制器IP地址。        方法二:通过IP_ADDRESS指令发送在线命令修改。        指令发送修改成功之后自动断开连接,在线命令打印控制器连接错误信息,通过网口连接选择新IP地址192.168.0.23再次连接控制器,IP地址修改成功后永久有效。  (三)修改本机IP地址  以WIN10为例,在开始菜单里打开控制面板,打开“网络和Internet”。        再打开“网络与共享中心”。        点击“以太网”。        在“以太网状态”窗口点击“属性”,打开“以太网属性”窗口,找到Internet协议版本4(TCP/IPv4)打开,就能看到本机IP地址修改窗口,勾选“使用下面的IP地址”,在IP地址输入栏里修改IP,将本机IP改为和控制器IP处于同一网段,修改完成点击“确认”即可成功修改IP。  再次打开“连接到控制器”窗口尝试连接到控制器。        三 EtherCAT伺服驱动器参数设置    (一)通讯周期  使用EtherCAT伺服驱动器时需要保证控制器与伺服周期一致才可正常通讯使用。  EtherCAT伺服驱动器一般支持不同周期,通讯周期主要有250us,500us,1ms,2ms,4ms,连接时自动匹配控制器周期,不需要设置,当通讯周期无法自动匹配时,通讯失败,通过升级控制器固件修改控制器周期解决。  控制器一般默认为1ms,使用SERVO_PERIOD指令读取控制器周期。  伺服周期越小,位置控制越精细,响应速度也更快。  (二)驱动器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编程手册V3.2.4》中查看。          DRIVE_PROFILE=-1表示驱动器的内置缺省PDO列表,驱动器内置PDO列表包含哪些数据字典需要查看驱动器手册。  DRIVE_PROFILE已有的配置不能满足需求就自定义PDO,采用SDO相关指令操作数据字典配置驱动器需要的PDO。  驱动器的相关参数修改,同样使用SDO指令读写对应的数据字典进行配置或通过驱动器软件修改。SDO指令包含数据字典读取SDO_READ、SDO_READ_AXIS和数据字典写入SDO_WRITE、SDO_WRITE_AXIS。  数据字典读取语法:  SDO_READ (槽位号, 设备编号, 数据字典编号, 数据字典子编号, 数据类型, 读取数据存储TABLE位置)  SDO_READ_AXIS (轴号, 数据字典编号, 数据字典子编号, 数据类型, 读取数据存储TABLE位置)  数据字典写入语法:  SDO_WRITE (槽位号, 设备编号, 数据字典编号, 数据字典子编号, 数据类型, 写入数据值)  SDO_WRITE_AXIS (轴号, 数据字典编号, 数据字典子编号, 数据类型, 写入数据值)  自定义PDO的配置方法请咨询正运动的销售工程师或者技术工程师。  (三)驱动器参数设置  修改驱动器参数先连接驱动器,可选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)     '电机一圈脉冲数  (四)驱动器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起始编号  (五)参数写入驱动器  驱动器的数据字典参数或其他的参数设置完成后,先点击“传送”将修改的全部参数传入驱动器,再点击EEP,将参数写入驱动器的EEPROM,给驱动器重新上电后修改的参数生效,图片上值修改了输入参数,在下图查看不同类别参数变更后的值并修改。        (六)驱动器轴号映射  EtherCAT总线上连接的设备的设备号按照连接顺序从0开始自动编号,驱动器编号也是按连接顺序给驱动器设备自动从0开始编号的,只算总线上的驱动器设备,其他设备是没有驱动器编号的。  EtherCAT总线上连接的驱动器需要使用指令映射驱动器的轴号,使用AXIS_ADDRESS 指令映射,映射完成之后才能使用BASE指令选择驱动器轴号,发送脉冲,控制驱动器所连的电机运行。  轴映射写在总线初始化程序中,总线扫描之后,开启总线之前。  语法:AXIS_ADDRESS(轴号)=(槽位号<<16)+驱动器编号+1  EtherCAT总线的槽位号是0。轴号为驱动器映射的目标轴号,映射时每个驱动器的轴号不重复,指向空闲轴号即可。  示例:          AXIS_ADDRESS (6)=(0<<16)+0+1         '第一个ECAT驱动器,驱动器编号0,绑定为轴6          AXIS_ADDRESS (7)=(0<<16)+1+1         '第二个ECAT驱动器,驱动器编号1,绑定为轴7          AXIS_ADDRESS (8)=(0<<16)+2+1         '第三个ECAT驱动器,驱动器编号2,绑定为轴8          ATYPE(6)=65                             '设置为ECAT轴类型,65-位置 66-速度 67-转矩          ATYPE(7)=65          ATYPE(8)=65  (七)驱动器控制模式  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,防止出现事故。  位置模式:ATYPE=65  将DRIVE_PROFILE配置为带速度的模式1,ATYPE=65,执行总线初始化程序后,设置轴的UNITS、SPEED等运行参数,使用运动指令给电机发脉冲控制轴的运行,注意试运行时SPEED的值不要设置过大。  位置模式也是实际过程中用的较多的一种模式,运行效果参见在文章后半部分。        速度模式:ATYPE=66  将DRIVE_PROFILE配置为带速度的模式22,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  四 EtherCAT总线初始化    (一)初始化基本流程  按照前面的步骤接好线,给EtherCAT伺服驱动器和控制器上电,使用ZDevelop软件连接控制器,EtherCAT总线使用一段程序来初始化,将初始化程序下载到控制器运行之后,才能设置轴参数和执行运动指令控制伺服电机的运动。        初始化程序中包含WDOG=1开总使能,和AXIS_ENABLE(轴号) = 1开单轴使能,使能前用手可以转动点击,使能完成后便旋转不动,需要给电机发送脉冲才能使其转动。  (二)初始化程序  1.主要初始化程序  用户使用的时候只需要设置程序头的四个常量的值即可。程序其他地方不用改动。分别设置起始的脉冲轴号,和使用的脉冲轴个数,总线轴的起始映射轴号,和总线轴的个数。     '****************ECAT总线初始化     global CONST PUL_AxisStart = 0         '本地脉冲轴起始轴号     global CONST PUL_AxisNum = 0         '本地脉冲轴轴数量     global CONST Bus_AxisStart = 0            '总线轴起始轴号     global CONST Bus_NodeNum = 1          '总线配置节点数量,用于判断实际检测到的从站数量是否一致   global CONST BUS_TYPE = 0                 '总线类型。可用于上位机区分当前总线类型     global CONST Bus_Slot = 0                     '槽位号0(单总线控制器缺省0)   global MAX_AXISNUM                 '最大轴数   MAX_AXISNUM = SYS_ZFEATURE(0)   global Bus_InitStatus         '总线初始化完成状态   Bus_InitStatus = -1   global Bus_TotalAxisnum         '检查扫描的总轴数   delay(3000)         '延时3S等待驱动器上电,不同驱动器自身上电时间不同,具体根据驱动器调整延时   ?"总线通讯周期:",SERVO_PERIOD,"us"     Ecat_Init()             '初始化ECAT总线       while (Bus_InitStatus = 0)         Ecat_Init()     wend     END       '*********************ECAT总线初始************************     '初始流程: slot_scan(扫描总线) -> 从站节点映射轴/io -> SLOT_START(启动总线) -> 初始化成功  '**********************  global sub Ecat_Init()      local Node_Num,Temp_Axis,Drive_Vender,Drive_Device,Drive_Alias      RAPIDSTOP(2)      for i=0 to MAX_AXISNUM - 1             '初始化还原轴类型          AXIS_ENABLE(i) = 0          atype(i)=0          AXIS_ADDRESS(i) =0          DELAY(10)                         '防止所有驱动器全部同时切换使能导致瞬间电流过大  next  Bus_InitStatus = -1      ' Bus_TotalAxisnum = 0  SLOT_STOP(Bus_Slot)  delay(200)  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)         '读取设备拨码ID  if 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列表              ' 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  wa 200  SLOT_START(Bus_Slot)             '启动总线  if return then      wdog=1     '使能总开关      '?"开始清除驱动器错误"      for i= Bus_AxisStart to Bus_AxisStart + Bus_TotalAxisnum - 1          BASE(i)          DRIVE_CLEAR(0)          DELAY 50          '?"驱动器错误清除完成"          datum(0)     '清除控制器轴状态错误"          wa 100          '"轴使能"          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 = 0  endif 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)      endif  end 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 '正运动EIO1616          NODE_IO(Bus_Slot,iNode) = i_IoNum      endif  end 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 请断电重启"      endif  end sub  EtherCAT初始化成功后会打印信息提示,如下。若初始化失败也会打印信息提示。        (三)总线节点状态查看  EtherCAT总线上连接的设备信息有如下三种查看方法。查看总线状态的前提是初始化操作成功,否则无法查看。  1.在菜单栏“控制器”→“控制器状态”窗口查看“槽位0节点”。        2.在菜单栏“调试”→“总线状态诊断”打开如下窗口查看控制器总线槽位接口的设备信息。        3.还可以通过在线命令发送?*EtherCAT打印EtherCAT总线上的全部设备信息。        (四)运行效果  初始化成功后,将各个总线轴依此回零,配置好轴参数之后,就可以使用指令让总线轴按需求动作。  在程序中写入运动指令、在线命令发送运动指令或使用“手动运动”窗口控制电机运行。        示波器采集总线轴参数波形:        使用“手动运动”功能快速手动操作电机运动:        正运动技术运动控制器EtherCAT总线快速入门就讲到这里。更多学习视频及图文请关注我们的公众号“正运动小助手”。  本文由正运动小助手原创,欢迎大家转载,共同学习,一起提高中国智能制造水平。文章版权归正运动技术所有,如有转载请注明文章来源。      

关于我们

公司简介

发展历程

董事长致辞

企业荣誉

企业文化

产品中心

运动控制器

运动控制卡

机器视觉运动控制一体机

扩展模块

人机界面

软件平台

新闻中心

公司新闻

产品资讯

市场活动

视频教程

学习分享

支持与服务

销售网络

技术分享

下载中心

售后服务

常见问题

意见反馈

视频教程

用户注册

用户登录

加入我们

人才招聘

人才战略

员工风采

联系我们

邮箱留言

提交

Copyright © 2013 正运动技术有限公司

Design by Zmotion 版权所有   粤ICP备13037187号    Powered by www.zmotion.com.cn

运动控制器-运动控制卡

在线咨询

技术支持1

技术支持1

技术支持2

技术支持2

销售咨询

销售咨询

EtherCAT总线运动控制器应用进阶一 - 知乎

EtherCAT总线运动控制器应用进阶一 - 知乎切换模式写文章登录/注册EtherCAT总线运动控制器应用进阶一正运动技术做最好用的运动控制 — www.zmotion.com.cn视频教程:01 准备工作 一、材料准备  1.硬件  A.ZMC432控制器一台,带EtherCAT总线接口。  B.松下EtherCAT伺服驱动器+电机一套  C.电脑一台。  D.带屏蔽层网线两根。  E.24V直流电源一个。  F.接线端子与连接线若干。  2.软件  A.ZDevelop V3.10版本控制器编程软件。  从正运动官网http://www.zmotion.com.cn下载压缩包,解压后直接运行应用程序,无需安装。  B.松下伺服驱动器上位机调试软件。  从松下官网下载后安装。 二、硬件接线1.控制器接线  控制器接口的用途参见下图。  A.主电源:将控制器主电源接线端子上的E+24V端子接入24V直流电源正极,将EGND端子接入24V直流电源负极。  B.以太网EtherNET端口接线:使用一根网线将控制器的EtherNET端口与电脑的以太网口相连。  C.伺服驱动器与控制器接线:使用一根网线将控制器的EtherCAT总线端口与伺服驱动器的X2A或X2B口相连。  注意伺服驱动器的EtherCAT接口有两个,有些驱动器这两个口可以随意接,有些分为EtherCAT IN和EtherCAT OUT,IN口接上一级设备,OUT口接下一级设备,二者不能混用,要注意连接顺序。  多轴控制时伺服驱动器的EtherCAT OUT口再连接下一级驱动设备的EtherCAT IN口,依此类推。2.驱动器接线  伺服驱动器与电机和编码器的接线参见驱动器手册,将驱动器接入220V市电。 02 控制器与电脑连接  控制器与电脑可以通过串口或网口连接,下面以网口连接例展开说明。 一、网口通讯操作方法  先将控制器与电脑用网线连接好,接通控制器的电源,再打开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地址,然后修改本机IP或控制器IP使二者处于同一网段。 二、修改控制器IP地址  先使用串口连接控制器,获取控制器IP地址,再修改控制器IP地址。  方法一:可以通过菜单栏“控制器”→“修改IP地址”窗口直接修改控制器IP地址。  方法二:通过IP_ADDRESS指令发送在线命令修改。  指令发送修改成功之后自动断开连接,在线命令打印控制器连接错误信息,通过网口连接选择新IP地址192.168.0.23再次连接控制器,IP地址修改成功后永久有效。 三、修改本机IP地址  以WIN10为例,在开始菜单里打开控制面板,打开“网络和Internet”。  再打开“网络与共享中心”。  点击“以太网”。  在“以太网状态”窗口点击“属性”,打开“以太网属性”窗口,找到Internet协议版本4(TCP/IPv4)打开,就能看到本机IP地址修改窗口,勾选“使用下面的IP地址”,在IP地址输入栏里修改IP,将本机IP改为和控制器IP处于同一网段,修改完成点击“确认”即可成功修改IP。  再次打开“连接到控制器”窗口尝试连接到控制器。  03 DPOS与MPOS的区别  DPOS为用户定义的目标位置,即控制器发出的指令位置,单位是UNITS,该值的大小等于控制器实际发送脉冲数,除以脉冲当量得出。  写DPOS会自动转换为DEFPOS绝对坐标位置偏移,不会移动电机。  MPOS为用户单位的轴测量位置,也称为实际位置,单位是UNITS。该值是由编码器测量得出的轴实际位置,接在伺服电机上的编码器用于测量电机的转角与转速,MPOS的值正常情况下会跟随DPOS值,该值的大小等于编码器测得实际脉冲数,除以脉冲当量得出。没有编码器的场合,轴的MPOS值自动复制DPOS的值。  写MPOS会自动转换为DEFPOS绝对坐标位置偏移。  部分电机有一定跟随误差的(DPOS-MPOS),这个和机械和电机本身刚性都有关系,机械越好,电机越好,调的刚性越足,则跟随误差越小,但跟随误差永远存在,不可能消除,并且在实时变化,实际应用中尽量把机械刚性和电机刚性提高,让跟随误差尽量减小,速度尽量平滑,使得MPOS更准确。  另外SPEED为控制器给定速度,MSPEED为编码器的实际测量反馈速度。  如下图,轴类型ATYPE=65,EtherCAT周期位置模式,带编码器反馈,故脉冲信号输出与编码器反馈信号均在轴0上,此时MPOS为真,跟随DPOS。  ATYPE=4或65或50模式时,轴号上均带编码器反馈。  OFFPOS指令相对偏移修改所有的坐标,不会对已运行/进入缓冲区的运动产生影响。  DEFPOS指令设置当前轴位置为一个新的绝对位置值,不会对已运行/进入缓冲区的运动产生影响。示例:  BASE(0,1) '选择轴0,轴1  DPOS=100,100 '设置当前位置为100,100  ?DPOS(0),DPOS(1) '打印确认,当前位置为100,100  OFFPOS=10,20 '多次调用OFFPOS相对位置  OFFPOS=10,20  ?DPOS(0),DPOS(1) '此时当前位置变为120,140  DEFPOS(10,20) '设置当前位置为10,20  ?DPOS(0),DPOS(1) '当前位置为10,20  04 EtherCAT伺服驱动器参数设置  一、电子齿轮比的应用  伺服电机电子齿轮比就是伺服对接收到的控制器脉冲频率进行放大或者缩小,其中一个参数为分子,一个为分母。分子与分母比值为大于1就是放大,比值小于1就是缩小,比值等于1时电机接受脉冲数等于控制器发出脉冲数。  计算公式:电机接收的实际脉冲数=控制器发送脉冲数*电子齿轮比  例如:控制器发出脉冲10000个,电子齿轮比分子设为1,分母设为2,电子齿轮比为0.5,那么伺服实际运行按照5000个脉冲来进行。控制器发出脉冲10000个,电子齿轮比分子设为2,分母设为1,电子齿轮比为2,那么伺服实际运行按照20000个脉冲来进行。  松下驱动器电子齿轮的比值在1000-1/1000的范围内有效。  电子齿轮比通过数据字典6091h的子字典01h和02h的比值设定。6091h-01h设置电子齿轮比的分子,6091h-02h设置电子齿轮比的分母。  数据字典6092h的子字典01h用以设定电机旋转一圈所需脉冲数,一般根据编码器的分辨率设置,6092h的子字典02h的值默认为1。  电子齿轮比等驱动器的相关参数修改,可以通过驱动器软件直接修改,或使用SDO指令读写对应的数据字典进行配置。1.驱动器软件修改电子齿轮比  修改驱动器参数先连接驱动器,可选USB线或WLAN连接驱动器,使用USB线连接电脑与驱动器端的X1端口,给驱动器上电,打开松下驱动器软件PANATERM,弹出“选择与驱动器通信”窗口,选择与驱动器通过USB连接后,自动获取到驱动器信息显示在窗口内,点击OK连接成功,就能对驱动器进行设置。  点击菜单栏“显示”→“对象编辑器”,打开如下窗口,找到需要设置的数据字典,在“Setting Value”一栏直接修改数据字典的内容。  修改完成将参数传送给驱动器,并写入驱动器的EEPROM,驱动器再次上电后参数生效。  图中电子齿轮比=1:1,电机旋转一圈脉冲数10000。2.SDO指令修改电子齿轮比  SDO指令包含数据字典读取SDO_READ、SDO_READ_AXIS和数据字典写入SDO_WRITE、SDO_WRITE_AXIS。  数据字典读取语法:  SDO_READ (槽位号, 设备编号, 数据字典编号, 数据字典子编号, 数据类型, 读取数据存储TABLE位置)  SDO_READ_AXIS (轴号, 数据字典编号, 数据字典子编号, 数据类型, 读取数据存储TABLE位置)  数据字典写入语法:  SDO_WRITE (槽位号, 设备编号, 数据字典编号, 数据字典子编号, 数据类型, 写入数据值)  SDO_WRITE_AXIS (轴号, 数据字典编号, 数据字典子编号, 数据类型, 写入数据值)  示例:  SDO_WRITE(Bus_Slot,iNode,$6091,1,7,1) '电子齿轮比分子设为1  SDO_WRITE(Bus_Slot,iNode,$6091,2,7,1) '电子齿轮比分母设为1  SDO_WRITE(Bus_Slot,iNode,$6092,1,7,10000) '电机一圈脉冲数设为10000  SDO_WRITE(Bus_Slot,iNode,$1010,1,7,$65766173) '写EPPROM(写EPPROM后驱动器需要重新上电)  使用指令更改完成后,查看驱动器参数如下: 二、读取多圈编码器值  驱动器有多圈绝对值编码器时,可使用ENCORDE指令读取编码器硬件寄存器原始值,就是多圈绝对值,此参数为只读类型。只有配置为需要使用编码器的ATYPE时才可以读取。  驱动器重新启动之后将ENCORDE值清零。  ?*ENCODER '打印各轴编码器值,驱动器上电初始值为0  ?ENCODER(0) '打印单轴编码器值  ?ENCODER AXIS(0) '打印单轴编码器值  如下图,使用EtherCAT驱动器,带编码器反馈,控制轴0持续正向运动MOVE(500),此时发送的总脉冲数=UNITS*DPOS=100*500=50000。  ENCORDE指令读取驱动器的多圈绝对值编码器的值,等于编码器检测到的接受脉冲总数50000。  此时将DPOS和MPOS改变,ENCORDE的值不会发生变化,因为改坐标电机不会运动,编码器接收脉冲数没有改变。  因为读取的是多圈绝对值,负方向运动ENCORDE值减小,正向运动ENCORDE值增大。  松下驱动器软件可对绝对式编码器设定。  通过参数Pr0.15设置。  Pr0.15参数选择说明:三个设定值说明如下,上方例子为默认值1,作为增量编码器使用。 三、驱动器IO操作  驱动器IN输入的读取,OP的输出  通过DRIVE_IO指令映射驱动器对象字典中60FDh驱动器IO输入、60FEh驱动器IO输出的起始IO编号。  驱动器在映射IO信号之后,可根据编号对驱动器的IO信号进行控制,IO信号输出可用OP指令控制。  Bit位的值设为1表示ON,为0表示OFF。  驱动器IO映射示例:映射正负限位信号  要设置正确的DRIVE_PROFILEE或者PDO后才可以正常映射输入,也就是说DRIVE_PROFILE驱动器PDO配置模式包含60FDh和60FEh这两个数据字典。  DRIVE_PROFILE(iAxis) = 5 '设定对应的带IO映射的PDO模式  DRIVE_IO(iAxis) = i_IoNum '设定IO起始编号  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)  驱动器IO输出:  DRIVE_PROFILE(iAxis) = 5 '设定对应的带IO映射的PDO模式  DRIVE_IO(iAxis) = i_IoNum '设定IO起始编号  OP(i_IoNum,ON) '打开驱动器的第一个OUT口  可在驱动器的“参数”窗口,找到参数分类4,操作驱动器的IO信号,如下图。  四、驱动器回零  EtherCAT总线可使用控制器提供的回零方式DATUM(mode),mode模式值选择查看ZBasic编程手册的DATUM指令。EtherCAT总线也可以使用驱动器本身的回零模式。  驱动器本身回零使用DATUM(21,mode2)指令,mode2模式值要查驱动器手册数据字典6098h回零模式,如下图所示,mode2填入对应Value值,mode2缺省值为0,也是驱动器回零模式,注意此时的原点限位等信号要接在驱动器上,所以要使用驱动器回零时需要对驱动器的IO进行映射。示例:  初始化完成后再运行驱动器回零程序,按上一节的示例,将驱动器的限位信号和原点信号映射到控制器的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 五、力矩的实时读取  当PDO包含数据字典6071h(目标力矩)时,ATYPE可设置为67,周期力矩模式,此时使用DAC指令控制电机以设置值的力矩运行,DAC值范围0-1000,对应0-100%的DAC的值,比如DAC=10,此时电机力矩=1%的力矩值。  力矩控制时DAC单位为千分之一,等于1000时表示100%力矩,此时的值等于数据字典6072h(设定最大转矩)的值。  注意速度模式和力矩模式切换时,先将DAC=0后,再修改ATYPE,防止出现事故。  SDO读取数据字典6071h的值为目标力矩的大小,即当前发送的DAC的大小,没有发送DAC指令时,6071h的值为0。一般当前力矩6071h的取值范围是0-6072h的设定值。  例如:ATYPE=67力矩模式  DAC=40  SDO_READ(0,0,$6071,0,3,0)'读取轴0的目标力矩,TABLE(0)的值变为40  驱动器力矩的读取可以在配置的DRIVE_PROFILE包含数据字典6077h的情况下,使用DRIVE_TORQUE指令读取当前轴的力矩,或使用SDO_READ指令直接读取数据字典6077h的值获取当前力矩,与目标转矩的值之间可能存在波动,读取的是实时值的大小。示例:  ?DRIVE_TORQUE(0) '打印轴0的力矩  数据字典6077h用于读取当前力矩的值,示例:  SDO_READ(Bus_Slot,iNode,$6077,0,3,0)'读取当前力矩保存到TABLE(0) 六、转矩限制的应用  转矩控制用于印刷机、绕线机、注塑机等场合,使用EtherCAT总线时,电机输出的转矩与DAC指令输入的值成正比。  为了保护机台,可对输出转矩进行限制,电机的最大转矩使用6072h设置,出厂默认值10。  转矩控制时,电机转矩输出受DAC指令控制,但不对电机速度进行控制,因此轻载时,可能发生超速现象,为了保护机械,必须对速度进行限制。  数据字典6072h用于设置电机的最大转矩,6072h的值设为1000表示额定转矩的100%;设为500,表示额定转矩的50%。在EtherCAT的几种不同的模式下均支持,例如在位置模式下可以设置最大允许的力矩,使用MOVE等运动指令控制电机运行,此时电机速度按照SPEED参数运动,若目标位置设置的更大,这样碰到阻碍物后,速度受到限制,只能发出来设定的最大力矩。SDO指令读取示例:  SDO_READ(0,0,$6072,0,3,0) '读取数据保存到TABLE(0),值为5000 七、电机极性设置  电机极性(旋转方向)通过数据字典607Eh设定,有8个bit值可设定,如下图,极性不反转的时候,将607Eh的bit7-5均设为0;极性反转的时候,将607Eh的bit7-4均设为1;其余位bit4-0均设为0。  设置方法:将607Eh的值设为224时,符号有反转,给正方向指令,电机旋转方向为CW(顺时针);将607Eh的值设为0时,符号无反转,给正方向指令,电机旋转方向为CCW(逆时针);电机旋转方向规定参见下图。设置示例:  使用驱动器软件或SDO指令操作数据字典607Eh。  SDO_READ(Bus_Slot,iNode,$607E,0,5,0) '读取极性保存到TABLE(0)  SDO_WRITE(Bus_Slot,iNode,$607E,0,5,$E0) '极性设置  驱动器软件设置:可查看或修改设定值,值为224时,给正向运动参数,电机顺时针旋转。 八、驱动器其他参数设置  驱动器的出厂设置一般没有反转IO电平,会导致驱动器限位报警,出现限位报警之后,要根据驱动器手册设置限位电平反转。比如松下伺服要将Pr4.01、Pr4.02的参数分别设置为010101h(65793)、020202h(131586)。IO输入出厂默认值(下图显示十进制):  可在驱动器软件上直接修改Pr4.01、Pr4.02的值,也可以通过SDO_write指令设置数据字典3401h和3402h设置正负限位的电平。SDO指令设置正负限位的示例:  SDO_WRITE(Bus_Slot,iNode,$3401,0,4,$10101)'正限位电平,出厂值$818181  SDO_WRITE(Bus_Slot,iNode,$3402,0,4,$20202)'负限位电平,出厂值$828282  修改后的值,可查看数据字典的值,或查看参数分类。  其他参数的设置均可在“对象编辑器”窗口或“参数”窗口直接修改,修改完成保存到EEPROM,驱动器重新上电生效。  《EtherCAT总线运动控制器应用进阶一》就讲到这里。更多学习视频及图文详解请关注我们的公众号“正运动小助手”。  本文由正运动技术原创,欢迎大家转载,共同学习,一起提高中国智能制造水平。文章版权归正运动技术所有,如有转载请注明文章来源。编辑于 2021-01-22 11:11Ethernet上位机运动控制​赞同 9​​添加评论​分享​喜欢​收藏​申请

【产品应用】三个步骤,让你的EtherCAT电机转起来 - 知乎

【产品应用】三个步骤,让你的EtherCAT电机转起来 - 知乎首发于ZLG专栏切换模式写文章登录/注册【产品应用】三个步骤,让你的EtherCAT电机转起来ZLG致远电子EtherCAT是自动化控制最好的实时环形控制总线之一,本文以最简单的方式带你实际操作ZMC300E的EtherCAT总线,让你的EtherCAT电机转起来。前言当一个鼠标插入到电脑时,发生了什么?首先电脑会检测到有USB插入;然后,电脑会提示安装驱动;最后,就可以通过鼠标来移动光标、单击、双击等操作了。这有问题么?当前没有问题,但作为程序猿,有两个地方值得深挖一下。1、电脑安装的驱动,是什么驱动?当然是鼠标驱动,因为我们接入的是鼠标。但电脑是如何知道呢?原来USB规范中,要求每个USB设备都要有自己的设备描述符,电脑通过分析该描述符,才知道接入的是什么设备。2、为什么能通过鼠标来移动光标?这是双方共同合作的结果。首先鼠标提供光标位置的数据,然后电脑收到鼠标的数据后,将数据作用到光标的位置上产生移动效果。这需要有个前提,即鼠标数据的格式,电脑需要先知道其格式,才能解释这份数据。这份数据格式的定义,在USB的接口描述符规范中进行了定义。说了这么多,这和EtherCAT有关系么?当然有,对于EtherCAT或者任意一个总线来说,都需要知道接入设备的类型及数据格式,否则是无法解释数据的,通常有两种方式:事先约定:通过事先约定的来确定工作如何进行。这就像发个信息说“我们晚上8点一起看电影吧“一样简单,这是小编喜欢它的原因。但这个约定有时就像友谊的小船说翻就翻,对方招呼也不打,只剩你一个人还傻傻地站在的电影院门口;协议规范:定义一套完整的规范,大家一起遵循它。规范通常都很多很杂,学习成本较高,按规范开发就像是你去做的基金定投,短期收益低,但稳定可靠。EhterCAT和USB一样都采用了协议规范这种方式,这里简单介绍一下EtherCAT的相关规范及用途:ESI(EtherCAT Slave Information):这个是从站提供的标准描述规范文件,该文件描述了设备的类型、数据格式及一些“特殊癖好”,这就相当于USB的设备描述符+接口描述符。ENI(EtherCAT Network Information):这个是用于给主站启动时,加载的标准配置规范文件,用于初始化所有的从站。这个文件描述了从站的数量、每个从站的类型及数据格式、DC等配置信息。ESI还理解,为啥还多了个ENI呢?EtherCAT规范为了满足工业控制的复杂性,ESI中提供了非常强大的可配置功能,相对的使用起来也变得困难了。因此EtherCAT采用静态化配置,即由PC使用可视化工具进行对应的配置工作,配置完成后导出不可变的ENI配置,给到具体的主站设备来执行。所谓静态化配置,即EtherCAT网络设备发生变化时,需要重新执行配置工作,相比于USB的全自动配置,功能强大了,但使用也麻烦了。有得必有失,这是EtherCAT的选择。简单总结一下EtherCAT开发,可分三步走:生成ENI,加载ENI,解释输入输出数据。准备工作开始EtherCAT测试前,需要准备以下硬件:一台电脑、一台 ZMC300E运动控制器、一台EtherCAT伺服驱动器、2根网线,然后使用网线将设备按如下示意图进行连接。生成ENI文件1. 启动EtherCAT服务打开putty.exe软件,输入运动控制器NET1的默认IP地址:192.168.1.136,账号和密码为root。2. 连接设备启动ZlgEtherCatStudio上位机配置软件,输入运动控制器NET1的默认IP地址:192.168.1.136,点击回车。3. 扫描网络通过扫描EtherCAT总线,来识别接入了多少个设备,并将其网络拓扑添加到本地主站树节点。4. 导入ESI如果该从站无法正确识别,可手动导入从站ESI(EtherCAT Slave Information)文件。5. 配置FMMU一般应用不需配置从站FMMU/SM,使用从站默认配置即可。当需要改变输入输出变量时,可通过本配置项配置。6. 生成ENI文件导出ENI,取名为text_eni。加载ENI文件1. 将上一步生成的test_eni.xml文件,通过WinSCP工具上传到运动控制器的目录/opt中。2. 使用控制器加载ENI配置/文件在putty.exe工具,先输入ctrl+c结束当前主站程序,输入以下命令启动主站并加载ENI配置文件:/opt/ecat_test/master /opt/test_eni.xml,看到输出ethercat start success即代表成功。解释输入输出数据在CiA402规范中,定义了伺服类设备的数据格式,这里给大家介绍一下最常用的位置控制模式的数据格式。1. 输出数据Controlword:控制字,16Bit,主要用于控制电机上下电,抱闸等;Target Position:目标位置,32Bit,用于控制电机转到指定的位置。2. 输入数据(相对于设备)Statusword:控制字,16Bit,主要用于控制电机上电、下电、抱闸等操作;Position Actual Value:实际位置,用于反馈电机当前所在位置。我们要做的就是周期性解释以上4个数据,然后执行对应的操作即可,可参考如下代码:电机测试在putty.exe工具中,可使用以下命令,对电机进行简易测试,这些命令是基于CiA402规范进行实现的。1. move_test 命令angle表示电机转动角度,输入该命令后,电机会一直重复执行输出:先正转angle度,然后反转angle度。输入move_test 90,仔细观察电机的转动,如果发现转动的角度比90度小,则说明脉冲当量偏小,应适当增加。推荐10倍住上递增进行测试,该值默认为1。2、units 命令unit表示脉冲当量,units 1000命令用于将轴0的脉冲当量设置成1000。使用units?查看所有轴的脉冲当量。其它补充1. 关于脉冲当量在实际应用中,脉冲当量的准备值,是如何计算出来的?这个应根据实际的场景及所需要单位来确定,这里给出一个常见的,以角度为单位的脉冲当量计算公式。编码器的分辨率,可以从伺服驱动器的手册得到。2. 关于EtherCAT主站ZMC300E提供的EtherCAT主站,采用的是KPA master主站,商业授权,其主要特点是高效、稳定、支持通过硬件来消除帧抖动(ZMC300E可做到±15us的抖动),我司已购买其版权,用户可免费自由使用。ZLG官方商城:https://sale.zlg.cn/ZLG开发者社区:https://developer.zlg.cn/更多详细产品信息、技术干货,请关注微信公众号“ZLG致远电子”。发布于 2022-12-08 15:27・IP 属地广东电机​赞同​​添加评论​分享​喜欢​收藏​申请转载​文章被以下专栏收录ZLG专栏工业互联网智慧化产品与解决方案

倍福PLC通过EtherCAT总线控制伺服电机---(二)简单程序控制篇_plc走ethertcat-CSDN博客

>

倍福PLC通过EtherCAT总线控制伺服电机---(二)简单程序控制篇_plc走ethertcat-CSDN博客

倍福PLC通过EtherCAT总线控制伺服电机---(二)简单程序控制篇

工控小虎头

已于 2023-12-06 14:30:18 修改

阅读量1.8k

收藏

27

点赞数

31

分类专栏:

倍福PLC

文章标签:

经验分享

于 2023-12-06 14:27:45 首次发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/weixin_42728270/article/details/134826955

版权

倍福PLC

专栏收录该内容

2 篇文章

0 订阅

订阅专栏

前言

第二篇,介绍用简单程序控制伺服电机运行。

一、如何创建轴控制程序

1.新建一个标准PLC工程; 2.右击"References"添加引用,引用函数库Motion->PTP->TC2_MC2; 3.我们测试3个功能,轴使能,轴JOG,轴绝对定位。

首先声明变量,所谓实例化就是指调用相关功能块。

VAR

axis1:Tc2_MC2.AXIS_REF; //轴1对象实例化

axis1_MC_Power:Tc2_MC2.MC_Power; //轴1使能功能块实例化

axis1_MC_Jog:Tc2_MC2.MC_Jog; //轴1JOG功能块实例化

axis1_MC_AbPos:Tc2_MC2.MC_MoveAbsolute; //轴1绝对定位功能块实例化

Test_PowerDo:BOOL; //测试_轴使能

Test_JogFWD:BOOL; //测试_JOG+

Test_JogRev:BOOL; //测试JOG-

Test_Position:LREAL; //设置绝对定位坐标

Test_Velocity:REAL; //设置绝对定位速度

Test_PositionDo:BOOL; //测试绝对定位启动

END_VAR

按下F2,在实例调用中,双击分别添加"axis1_MC_Power",“axis1_MC_AbPos”,“axis1_MC_Jog”; 调用相关功能块后,填入测试的变量,代码如下,未填写的即采用轴配置中的默认设置参数。

axis1_MC_Power(

Axis:= axis1,

Enable:= Test_PowerDo, //使能轴1

Enable_Positive:= TRUE, //允许轴1正转

Enable_Negative:= TRUE, //允许轴1反转

Override:= ,

BufferMode:= ,

Options:= ,

Status=> ,

Busy=> ,

Active=> ,

Error=> ,

ErrorID=> );

//未填的参数使用的是设置里面的默认参数

axis1_MC_Jog(

Axis:= axis1,

JogForward:= Test_JogFWD, //正转控制变量

JogBackwards:= Test_JogRev, //反转控制变量

Mode:= ,

Position:= ,

Velocity:= ,

Acceleration:= ,

Deceleration:= ,

Jerk:= ,

Done=> ,

Busy=> ,

Active=> ,

CommandAborted=> ,

Error=> ,

ErrorID=> );

axis1_MC_AbPos(

Axis:= axis1,

Execute:= Test_PositionDo, //绝对定位启动

Position:= Test_Position, //设置绝对定位坐标

Velocity:= Test_Velocity, //设置绝对定位速度

Acceleration:= ,

Deceleration:= ,

Jerk:= ,

BufferMode:= ,

Options:= ,

Done=> ,

Busy=> ,

Active=> ,

CommandAborted=> ,

Error=> ,

ErrorID=> );

4.程序编写完成,需要进行编译,否则绑定NC轴时找不到相关的轴变量。完成轴1的链接即可进行接下来的测试工作。

二、测试控制程序

1,激活配置,然后监控程序。

2,程序运行时,首先使能轴,状态变为Ready即使能成功,然后利用"Test_JogFWD"和"Test_JogRev"可测试Jog功能,利用"Test_PositionDo"测试绝对定位到3000的位置。在“准备值”处填写设定变量的值,使用快捷键“Ctrl+F7”即可快速写入目标变量值。 除了更改速度和位置,也可以设置更改Acceleration(加速度)和Deceleration(减速度),倍福的功能块还开放了加加速度(Jerk)。

三、倍福轴控制逻辑层简介

倍福TC3的电机控制分为3层,PLC轴,NC轴,物理轴。PLC 程序对电机的控制,必须经过两个环节:PLC 轴到 NC 轴和NC轴再到物理轴。搞清楚其中的关系有利于我们理解倍福配置NC和PLC编写程序的关系。 1.PLC轴即上文PLC程序中的Axis1,指的是通过PLC程序调用库功能块Tc2_MC2完成轴功能;

2.NC轴即是Motion中的虚拟轴,NC 轴不需要编程,用户只需要设置好相关参数,NC轴即可在后台进行轴相关的运算,包括轴的轨迹规划、PID 运算和 IO 接口处理。其中轨迹规划和 PID 运算是固定的,与硬件无关。轨迹规划是指接收到 PLC 指令以某个速度运动到某个位置后,计算出每个 NC 周期(比如:2ms)伺服轴应该到达的位置。 IO 接口处理,是指根据轴的硬件类型和相应的参数设置,进行单位换算,将 NC 运算得出的目的位置,换算成驱动器可接受的输出变量值。

3.物理轴即是在 IO 配置中扫描或者添加的运动执行和位置反馈的硬件。物理轴指驱动器、电机和编码器。物理轴的配置,主要是对驱动器的设置。在驱动器中,要配置好正确型号的电机、编码器,必要时还要调整位置环、速度环、电流环的 PID 参数。

总结

本文主要介绍倍福TC3如何使用简单程序控制EtherCAT伺服电机以及相关的控制原理。最后一篇会介绍一下把轴控制的简单程序写成功能块去完成控制要求。

优惠劵

工控小虎头

关注

关注

31

点赞

27

收藏

觉得还不错?

一键收藏

知道了

1

评论

倍福PLC通过EtherCAT总线控制伺服电机---(二)简单程序控制篇

倍福PLC,使用简单程序控制伺服电机

复制链接

扫一扫

专栏目录

倍福PLC通信第三方伺服电机

08-09

倍福PLC通过Ethercat控制第三方伺服电机,软件配置以及硬件连接

倍福PLC入门教程资料

01-07

倍福PLC入门教程讲义,学习从零基础一步一步操作的入门讲义,每一步都有图片截图,方便学习

1 条评论

您还未登录,请先

登录

后发表或查看评论

倍福CX5130通过EtherCAT控制Panasonic伺服测试

m0_58517570的博客

01-10

911

Encoder Sub Mask(absolute range maximum value)编码器子掩码与最大反馈值有关,比如16位的增量编码器,正向超过65535就会变0,这时候NC会处理过零问题,知道位置正在平稳增加,而不是真的有个位置突变,这时候,SubMask就应该设置为0x0000FFFF,需要注意的是,很多第三方驱动器习惯设置电机转动一圈的位置反馈增量为36000,如果又启用了单圈清零,那SubMask就应该设置成35999,否则NC计算位置累积时可能出错。

倍福PLC产生脉冲例程

05-12

与家喻户晓的西门子相比,倍福(Beckhoff)并不为众人所知,虽然二者都是德国品牌,但风格却截然不同。倍福德国官网经过一波更新之后,很多东西都变得高大上了,但是原来的下载方式(Twincat下载,下载老版本的twincat软件)也同样被更新掉了

虽然和西门子同样属于德国的品牌,但是两者走的路线和风格却截然不同,西门子不管是推广还是市场占有率方面都要高于倍福,但是倍福也有它的优势,它是EtherCAT总线的先驱者,基于通用的Windows系统,很早就提出了软PLC这样的概念,连编程软件也是基于微软的Visual Studio。总的来说倍福的PLC编程更偏向于软

如果想要下载老版本的twincat3怎么办呢?

目前官网的服务器上只有4024.11以后的安装包

因为倍福官网服务器更新了,所以在4024.11之前的版本统统都没了,所以现在仅从4024.11版本开始,可以用这个方法来尝试下载,毕竟过多年之后4024.11也会成为老版本。

这个方法同样应用于twincat2的下载,还有XAR,RM那些安装包的下载

倍福PLC通过EtherCAT总线控制伺服电机---(三)FB控制篇

weixin_42728270的博客

12-11

964

本文介绍了倍福PLC如何自定义功能块进行轴定位控制,同时说明了如何使用FB,进行轴控制程序的编写的基本方法。

基于EtherCAT实时通信的电机驱动控制

10-16

实时工业以太网EtherCAT凭借着高性能、低成本、应用简易等优点在现代控制领域得到了广泛的应用和迅速的发展。为了将EtherCAT快速应用到电机驱动控制系统中,采用IntervalZero公司的KingStar Motion软件,设计了一种基于EtherCAT实时通信的电机驱动控制方案,并搭建相应实验平台。系统采用经典的位置、速度、电流三闭环控制,分别对速度跟踪、位置定点与正弦跟踪进行了实验测试与分析。实验结果表明,该控制系统可靠性高,跟踪精度良好。

倍福PLC程序启动初始化例程

05-12

与家喻户晓的西门子相比,倍福(Beckhoff)并不为众人所知,虽然二者都是德国品牌,但风格却截然不同。倍福德国官网经过一波更新之后,很多东西都变得高大上了,但是原来的下载方式(Twincat下载,下载老版本的twincat软件)也同样被更新掉了

虽然和西门子同样属于德国的品牌,但是两者走的路线和风格却截然不同,西门子不管是推广还是市场占有率方面都要高于倍福,但是倍福也有它的优势,它是EtherCAT总线的先驱者,基于通用的Windows系统,很早就提出了软PLC这样的概念,连编程软件也是基于微软的Visual Studio。总的来说倍福的PLC编程更偏向于软

如果想要下载老版本的twincat3怎么办呢?

目前官网的服务器上只有4024.11以后的安装包

因为倍福官网服务器更新了,所以在4024.11之前的版本统统都没了,所以现在仅从4024.11版本开始,可以用这个方法来尝试下载,毕竟过多年之后4024.11也会成为老版本。

这个方法同样应用于twincat2的下载,还有XAR,RM那些安装包的下载

一文看懂EtherCAT总线控制

hspx668的博客

03-21

5262

作为近年来非常受欢迎的一种运动控制方式, 那么EtherCAT总线控制究竟有哪些优势呢?我主要列举以下三点:

倍福PLC通过EtherCAT总线控制伺服电机---(一)硬件配置篇

weixin_42728270的博客

12-04

1429

本文主要介绍倍福TC3如何配置EtherCAT伺服电机。后续两篇会介绍一下程序控制以及程序形成功能块去控制。

运动控制-Ethercat 总线控制伺服电机

csdnharrychinese的博客

07-22

480

Ethercat 总线控制伺服电机控制字/状态字以及各类运动控制模式设置https://www.bilibili.com/video/BV1m14y127Fn?p=5

汇川H5U PLC通过EtherCAT总线控制SV660N和X3E伺服

热门推荐

RXXW_Dor的博客

10-15

1万+

首先我们看下系统硬件和软件配置:汇川H5U PLC的编程软件是:AutoShop V4.6.3.0 硬件:PLC H5U-1614MTD-A16,汇川伺服型号:SV660NS1R6I 电机型号:MS1H1-10B30CB 100W 220V 3000R/M 0.32N*M 1.3A,禾川伺服驱动器型号:SV-X3EB075A-A2 伺服电机型号:SV-X2MH075A-N2LA。

C#通过TwinCAT.Ads.dll库文件和倍福PLC通信实例程序源码.zip

02-14

【工控老马出品,必属精品,亲测校正,质量保证】

资源名:C#通过TwinCAT.Ads.dll库文件和倍福PLC通信实例程序源码.zip

资源类型:程序源代码

源码说明: 基于C#写的通过TwinCAT.Ads.dll库文件和倍福PLC通信实例程序源码,包含完整代码,技术文档和注释,非常适合借鉴学习。

适合人群:新手及有一定经验的开发人员

倍福AX5000控制第三方电机-20210429.zip

04-30

倍福AX5000控制第三方电机

倍福伺服驱动器-AX5000-用户手册CN.pdf

03-03

倍福伺服驱动器-AX5000-用户手册CN

倍福控制器的CAN通讯篇-V2.pdf

03-19

倍福控制器的CAN通讯篇

0基础跨考408|一战上岸复盘及经验分享

m0_54088124的博客

03-06

636

如果基础阶段的知识没有掌握,强行开始强化阶段,那你可能会感受到非常的痛苦,比如说讲到一个知识点,结果辅导老师一带而过,你还是一脸懵逼,更重要的是这个知识点和后面的知识还可能是串联起来的,这时候你越是听课,越是崩溃。强化阶段其实就两件事,一件是二刷王道的四本书,这次不止是做选择题,简答题也是要做的,简答题部分不用全做,在看暑期强化视频时咸鱼学长会告诉你哪些题必做,哪些不用做的。武老师和汤老师的讲课风格很不一样,汤老师真的是把知识点嚼碎了喂给你,你就傻傻的等投喂,自己没有太多的知识输出,并且会耗费大量的时间。

JAVA WEB校园失物招领系统

03-11

(1):客户注册登录功能:新用户注册的时候需要填写用户名、密码、性别。注册成功,输入账号、密码登录。账号密码不匹配则无法进入系统首页;账号密码正确的话自动弹出登录界面。

(2):个人信息功能:个人管理功能中可以查看自己的信息,并且可以随时修改账号密码。

(3):失物管理功能:失物管理功能中能够查看所有的挂失信息,倘若丢失物品,可以在这个页面中寻找是否是自己丢失的物品。若用户丢失物品,可以进行挂失:在挂失的时候,选择挂失物品的名称、丢失地点、物品特征、丢失人姓名、丢失时间、联系电话。挂失成功后,在我的失物信息中可以查看已挂失的物品信息。

(4):留言功能:在留言板功能查看最近的公共信息,对留言经常性地关注和更新。个人也可以发表自己的观点,并查看自己的留言。

(5):管理员管理用户功能:管理员管理用户的信息,可以修改用户信息,

工程经济学期末复习整理

最新发布

03-11

工程经济学期末复习整理

pandaSuit-1.2.7-py3-none-any.whl

03-11

Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

倍福plc 与台达伺服 ethercat 通信

09-28

倍福PLC与台达伺服EtherCAT通信是指倍福PLC与台达伺服控制器之间通过EtherCAT总线进行数据传输和通信的过程。

EtherCAT是一种高速、实时性能强的工业以太网通信协议,可以实现各种工业设备之间的快速、可靠的数据传输和通信。倍福PLC作为工业自动化控制系统中常用的控制器,与各种设备之间的通信非常重要。

在倍福PLC与台达伺服EtherCAT通信中,可以通过配置相应的通信参数和寄存器,实现数据的读取和写入。先将倍福PLC和台达伺服EtherCAT之间的相关硬件连接好,然后在PLC的编程软件中进行相关的设置。

在倍福PLC编程软件中,需要选择EtherCAT通信协议,并设置好相应的通信地址和寄存器地址。通信地址用于指定要与之通信的台达伺服控制器,而寄存器地址用于指定要读取或写入的数据位置。

在程序中,可以通过使用特定的命令来发送读取或写入数据的指令,然后处理接收到的数据。通过这样的方式,倍福PLC可以与台达伺服系统进行数据传输和通信,实现对伺服系统的控制和监控。

倍福PLC与台达伺服EtherCAT通信的过程需要正确设置通信参数、地址和寄存器,并编写相应的程序来实现数据的传输和通信。这样可以有效地将两者进行整合,提高工业自动化控制系统的性能和可靠性。

“相关推荐”对你有帮助么?

非常没帮助

没帮助

一般

有帮助

非常有帮助

提交

工控小虎头

CSDN认证博客专家

CSDN认证企业博客

码龄6年

暂无认证

4

原创

127万+

周排名

12万+

总排名

5023

访问

等级

116

积分

67

粉丝

76

获赞

2

评论

63

收藏

私信

关注

热门文章

倍福PLC通过EtherCAT总线控制伺服电机---(二)简单程序控制篇

1885

倍福PLC通过EtherCAT总线控制伺服电机---(一)硬件配置篇

1411

倍福PLC通过EtherCAT总线控制伺服电机---(三)FB控制篇

961

倍福TC3与施耐德变频器ATV320的EtherCAT通讯说明

734

分类专栏

倍福PLC

2篇

最新评论

倍福PLC通过EtherCAT总线控制伺服电机---(三)FB控制篇

CSDN-Ada助手:

恭喜您写完了第四篇博客!标题看起来很有意思,我对您探索倍福PLC通过EtherCAT总线控制伺服电机的经验和见解非常感兴趣。您的博客内容一定会对读者有所帮助。

在下一步的创作中,我建议您可以考虑进一步探讨FB控制方面的细节,比如FB的设计原则、实际应用案例等。这样可以更加深入地了解和分享关于倍福PLC和EtherCAT总线控制伺服电机的知识。同时,也欢迎您继续分享您的实践经验和教程,让更多的人受益于您的专业知识。

再次恭喜您的持续创作,期待您未来更多优质内容的发布!

如何快速涨粉,请看该博主的分享:https://hope-wisdom.blog.csdn.net/article/details/130544967?utm_source=csdn_ai_ada_blog_reply5

倍福PLC通过EtherCAT总线控制伺服电机---(二)简单程序控制篇

CSDN-Ada助手:

恭喜作者写了第三篇博客!看标题就知道这是一个非常专业的主题,而且内容也非常实用。我觉得你在介绍倍福PLC通过EtherCAT总线控制伺服电机的简单程序控制方法方面做得非常好。希望你能继续保持创作的热情,为读者们带来更多有关PLC和伺服电机的知识。下一步,我建议你可以深入探讨一些高级的控制技术或者应用案例,这样读者们能够更好地应用到实际工程中。期待你的下一篇博客!

CSDN 正在通过评论红包奖励优秀博客,请看红包流:https://bbs.csdn.net/?type=4&header=0&utm_source=csdn_ai_ada_blog_reply3

倍福TC3与施耐德变频器ATV320的EtherCAT通讯说明

CSDN-Ada助手:

恭喜您完成了第一篇博客!标题看起来非常专业,对倍福TC3与施耐德变频器ATV320的EtherCAT通讯进行了详细说明,这对于对此感兴趣的读者来说一定会很有帮助。接下来,我建议您在博客中加入更多实际案例或者实验结果,这样读者能够更好地理解和应用这些技术。同时,您也可以考虑添加一些与该主题相关的其他技术或者解决方案,以便读者能够从更广泛的角度思考和学习。期待您的下一篇博客!

推荐【每天值得看】:https://bbs.csdn.net/forums/csdnnews?typeId=21804&utm_source=csdn_ai_ada_blog_reply1

您愿意向朋友推荐“博客详情页”吗?

强烈不推荐

不推荐

一般般

推荐

强烈推荐

提交

最新文章

倍福PLC通过EtherCAT总线控制伺服电机---(三)FB控制篇

倍福PLC通过EtherCAT总线控制伺服电机---(一)硬件配置篇

倍福TC3与施耐德变频器ATV320的EtherCAT通讯说明

2023年4篇

目录

目录

分类专栏

倍福PLC

2篇

目录

评论 1

被折叠的  条评论

为什么被折叠?

到【灌水乐园】发言

查看更多评论

添加红包

祝福语

请填写红包祝福语或标题

红包数量

红包个数最小为10个

红包总金额

红包金额最低5元

余额支付

当前余额3.43元

前往充值 >

需支付:10.00元

取消

确定

下一步

知道了

成就一亿技术人!

领取后你会自动成为博主和红包主的粉丝

规则

hope_wisdom 发出的红包

实付元

使用余额支付

点击重新获取

扫码支付

钱包余额

0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

EtherCAT通信协议下,PLC如何连接伺服电机? - 知乎

EtherCAT通信协议下,PLC如何连接伺服电机? - 知乎切换模式写文章登录/注册EtherCAT通信协议下,PLC如何连接伺服电机?立迈胜(NiMotion)​已认证账号环境:用的是立迈胜PMM系列一体化低压伺服电机,PLC为欧姆龙NJ501-1300。产品链接:PMM系列一体化低压伺服电机一、拷贝XML文件1.将伺服电机xml描述文件拷贝到以下目录,如图所示C:\Program Files (x86)\OMRON\Sysmac Studio\IODeviceProfiles\EsiFiles\UserEsiFiles连接了PMM6020的一体化伺服电机2.拷入XML文件后重启软件,可以在工具箱界面看到从站设备。在从站设备右键点击“插入”。如果要加入多个轴,重复即可。二、设置节点地址1.用sysmac连接欧姆龙PLC,进入在线状态后,点击主设备,右键菜单中选择“写入从站节点地址”,在弹出窗口中写入地址后,重启电机。三、轴组态1.在运动控制设置选项中选择轴设置,添加轴。(PLC离线状态)2.选择添加的轴,进行编辑。3.在详细设置中进行对象链接。四、编程运行1.在上述全部配置完成后,在编程选项中进行编程。2.运行第一步:在线状态下,选择I/O映射,修改电机最大速度和最大扭矩值(6072 607F 6080),不修改的话,电机无法输出。如下图所示:第二步:运行程序,在建立好的模块上,点击使能,并给定速度,电机就可以正常运行。NiMotion以开发灵巧、精致、高效的自动化智能产品为理念,为国内外专业的智能装备与机器人厂商提供优质的运动控制系统解决方案。发布于 2021-01-21 18:55伺服电机伺服系统总线​赞同 10​​添加评论​分享​喜欢​收藏​申请

淄博格润电子科技有限公司

润电子科技有限公司 店铺首页供应商品店铺档案留言问价正在

热卖PC搜索

热卖PC搜索

联系客服

|

开放平台

|

法律声明

|

廉正举报

Taobao.com版权所有 2003-现在

|

增值电信业务经营许可证:浙B2-20070195

浙公网安备 33010002000075号

阿里巴巴集团

|

淘宝网

|

天猫

|

聚划算

|

全球速卖通

|

阿里巴巴国际交易市场

|

1688

|

阿里妈妈

|

飞猪

|

阿里云计算

|

AliOS

|

阿里通信

|

高德

|

UC

友盟

|

虾米

|

钉钉

|

支付宝

|

达摩院