ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

TwinCAT2主站配置史陶比尔机器人EtherCAT从站全流程解析

TwinCAT2主站配置史陶比尔机器人EtherCAT从站全流程解析 做集成项目的朋友应该都有体会把大家伙接进小系统里是最容易翻车的环节。史陶比尔机器人这类的四轴、六轴机械臂单看轨迹精度和节拍那是真能打但真到了产线上它往往不是孤零零干活旁边还得跟着倍福的PLC、伺服、视觉系统整条线需要一个统一的总线脉络。这次我就用TwinCAT2作为主站把史陶比尔机器人配置成EtherCAT从站整条线的通信脉络打通。整个过程里有几个坎儿比较典型单独记下来给后面接手的兄弟留个参考。1. 项目整体思路拆解主从关系、硬件选型与方案设计1.1 先搞清楚EtherCAT里的主站和从站到底谁说了算EtherCAT这个东西名字叫以太网控制自动化技术但和咱们平时用的Modbus TCP、Profinet IO那套完全不是一个玩法。它的核心是主站负责发出报文从站硬件在报文经过的时候直接在硬件层面完成数据提取和插入整个过程不需要CPU参与所以实时性可以做到几十微秒甚至更低。在倍福TwinCAT2的系统里PC或者工控机装上网卡、装好实时驱动就是天然的EtherCAT主站。那史陶比尔机器人呢它的控制器是CS8或者CS9系列本身是带独立运动控制能力的。这里就有一个非常关键的设计决策机器人到底应该做主站还是做从站很多刚入行的人会懵因为机器人听起来也是控制器凭什么要给别人当从站道理很简单EtherCAT总线上一般只需要一个主站而主站的职责不仅要发报文还要负责全网的时钟同步、状态机管理、拓扑管理。如果让史陶比尔的CS8也往上凑一个主站身份整条线上的倍福PLC、伺服驱动器可就不干了。把机器人作为从站挂在倍福主站下面让PLC统一调度节拍、统一分配数据这才是产线集成的标准姿态。我这个项目里倍福主站管理 6 个伺服轴、一套模拟量采集模块加上史陶比尔机器人一共 8 个从站拓扑就是简单的菊花链。1.2 硬件选型为什么选了CS8控制器加EtherCAT从站模块史陶比尔机器人的控制器有CS8和CS9老机型用的USB口或者PCMCIA卡新机组则走内置的通讯接口。我们现场这台是CS8系列要让它成为EtherCAT从站硬件上必须有对应的总线接口模块。史陶比尔官方提供的选件里有现场总线接口卡支持EtherCAT从站功能。**选板卡的时候一定要跟人家确认清楚你要的板卡是从站功能的不是网卡。**CS8上有个以太网口不一定直接支持EtherCAT从站协议栈必须配套史陶比尔的EtherCAT从站接口卡同时在控制器固件上开通对应协议使能。TwinCAT2这边推荐用倍福的工控机或者你的普通电脑加Intel网卡。比较稳的是Intel 82574L或者82579LM这种服务器级网卡因为EtherCAT对网卡驱动和硬件时间戳要求高。Realtek网卡虽然也能用但实际跑起来抖动偏大我看到过不少因为网卡性能差导致总线掉线的案例所以规格书里我直接定了Intel平台。2. 史上最容易被忽略的一步机器人侧参数与从站配置2.1 CS8控制器里的EtherCAT从站使能要如何打开史陶比尔机器人控制器天生支持不少总线协议像Modbus TCP、CANopen、PROFINET都有对应选件但EtherCAT从站不是默认就开着的。需要进入机器人控制柜的通讯配置界面把自己的地址和网络配置设置好。如果你手头有史陶比尔的编程软件VAL3编程环境或者SRS操作面板在通讯配置或者现场总线配置这个菜单里找到EtherCAT选项。我们需要在里面做三件事使能从站功能激活EtherCAT Slave接口设定从站地址一般用默认的 1 号地址就行也可以在配置里改确定PDO映射表格要被主站接受这里有个关键点史陶比尔机器人的EtherCAT从站接口卡在配置完成之后很多参数是要在控制器重启之后才真正生效的。别改了配置就直接去扫描总线等个 1 分钟让控制柜重启完再去做主站侧的扫描动作。别问我为什么知道我第一次配置完愣是扫描不到设备最后发现是机器人侧根本没把新的通讯配置加载起来。2.2 PDO映射与CiA402协议模式的选择EtherCAT从站设备描述里最核心的就是它的过程数据对象PDO映射。史陶比尔作为从站挂在总线上它向主站提供哪些数据、接受哪些数据全部由PDO来决定。常见的有两套映射思路第一套是直接用CiA402的CSP模式Cyclic Synchronous Position主站每次周期下发目标位置、速度、加速度、扭矩限制机器人从站把这些位置值当成外部给定位置。整个轨迹规划其实还是在机器人控制器里做的它会平滑地走到这个目标位置。主站侧不需要关心机器人内部怎么插补。第二套是更简单粗暴的数字IO映射把机器人的启动、暂停、复位、在HOME位、运行中、报警这些信号通过PDO里的布尔量直接映射出去。这种方式实时性要求不高但也要走EtherCAT总线。我这次项目要求PLC实时知道机器人当前位置同时下发目标位置和抓取信号所以用的是CSP模式加一段布尔IO的混合映射。PDO配置在史陶比尔侧是预先烧在接口卡固件里的映射表我们只需要在倍福侧加载对应的EtherCAT从站描述文件ESI文件然后勾选相应的PDO内容就可以了。3. TwinCAT2主站侧实操从环境准备到在线扫描完整步骤3.1 安装TwinCAT2环境与实时网卡的绑定TwinCAT2虽然是老平台了但它对实时性要求非常高安装之后必须先做实时以太网适配。步骤如下安装TwinCAT 2.11选安装路径的时候保持默认不然许可证管理会找不到文件插上网线确保你的电脑网卡IP和机器人控制器的通讯口IP不在同一冲突网段这里手动设置成电脑端192.168.1.50机器人端192.168.1.60打开TwinCAT的系统管理器System Manager左侧树形结构里找到Real-Time Ethernet设置选择你实际连接现场的Intel网卡注意TwinCAT2在绑定网卡之后该网卡的TCP/IP协议栈会被强制停止也就是说你网卡的IP地址会暂时失效。这是正常现象不需要管它通讯走的是EtherCAT帧而不是TCP/IP。如果你在同一台电脑上还想访问机器人调试口得再插一张普通网卡做辅助口。3.2 手动添加EtherCAT从站为什么不用自动扫描理论上TwinCAT2可以扫描到链路上的所有EtherCAT从站但你实际扫描时可能会遇到两个麻烦第一是机器人控制器没有开机或者总线接口卡没有被正常激活这时候扫描出来的是空拓扑第二是扫描出来的从站类型和ESI文件里的描述对不上报一堆CRC错误。我的习惯是手动添加从站方法如下在TwinCAT System Manager左侧的IO设备列表里右键点击 Device 1 (EtherCAT)选择Scan Devices让它先扫一遍链路在扫描结果里应该能看到机器人接口卡对应的设备名以及各个从站的站地址如果没有可以手动右键添加新设备然后在EtherCAT页面里导入你从机器人厂商那里拿到的ESI文件确认站地址必须跟机器人侧设置的地址一致默认是1如果你多挂了几台机器人就按顺序配2、3、4扫描到设备之后展开设备下的ProcessData节点把需要的PDO条目拖动或者勾选到TxPDO从站发主站的数据和RxPDO主站发从站的数据列表里。这一步的操作相当于建立了一张变量对表主站侧要往里写的是速度给定、目标位置主站侧要读的是从站反馈的实际位置、状态字、电流等。3.3 TwinCAT2状态机切到OP之前必须完成的验证EtherCAT从站状态机分为四种INIT、PRE-OP、SAFE-OP、OP。从站设备必须逐级切换不能直接从INIT跳到OP。TwinCAT2里你可以在System Manager里的State下拉菜单里手动切状态但这个流程在实际调试中必须非常小心。先把状态切到PRE-OP此时主站和从站之间建立邮箱通信可以读写参数但PDO没有数据交换。然后是SAFE-OP这时候PDO输入数据从站到主站开始传输但输出数据被锁住从站不会执行任何给定值。最后一步才是切到OP此时双向传输全部生效。**常见的坑在这里如果机器人侧没有处于自动状态或者安全门信号没有闭合你把TwinCAT的状态切到OP机器人是不会动的。**这不是总线问题而是机器人内部的安全逻辑在起作用。你需要在机器人程序里触发一个外部总线控制使能的信号比如给到它的专用使能位然后在VAL3程序里写一条命令去接受外部给定目标位置。这套联动逻辑每个现场都不一样建议在安全确认无误的前提下先用一个很小的速度覆盖值去验证确认输出通道正确后再切自动模式。4. IO映射配置实用技巧数据类型、位置换算与周期参数4.1 TwinCAT2里的IO映射表如何对应到机器人坐标很多人配置完PDO却不知道数据怎么用。其实TwinCAT2里IO映射就是把总线上的数据映射到PLC程序里的全局变量。你可以直接映射到标准变量如bEnable_Staubli : BOOL;、rTargetPos_X : REAL;、rActualPos_ActualX : REAL;。映射的时候必须注意两个东西一个是数据类型一个是字节序。史陶比尔从站反馈的位置数据一般是以**32位整数DINT**传出来的单位通常是脉冲或者微米。主站侧最稳妥的做法是读取DINT原始值然后在PLC程序里转换为REAL再除以轴系数得到毫米单位。比如我现场用的是一个 1000 线编码器四倍频之后是4000脉冲/毫米那换算就是位置毫米 原始DINT值 / 4000.0如果你直接在映射表里把DINT硬映射成REAL变量TwinCAT会按照内存地址直接强转小数部分就会错位成乱七八糟的值踩过一次就长记性了。所以字段类型必须严格对应换算要么在PLC里做要么在机器人侧做不要指望TwinCAT自动帮你搞定单位转换。4.2 周期、看门狗与DC同步抖动的设置建议EtherCAT的周期参数决定整个链条上所有从站的同步行为。TwinCAT2默认周期一般是1ms如果整个链路里没有高速CNC轴用2ms也可以但既然有史陶比尔机器人这种高速设备我给的建议是直接用1ms周期把DC同步打开。DCDistributed Clock是EtherCAT最核心的同步机制它让所有从站的本地时间和阿秒级别的SYNC事件对齐。在TwinCAT里打开DC选项之后你会在从站的CoE对象里看到Sync0和Sync1两个事件它们分别对应输入采样和输出刷新。史陶比尔接口卡支持SYNC0触发的输入和输出同时更新这是最理想的模式。看门狗这块也要单独讲一下EtherCAT从站默认有一个看门狗时间设得太短会导致偶尔误报掉线时间设得太长又会在真正断线时反应迟钝。倍福的默认值是100ms但如果你的总线上还挂了第三方从站跟着默认走反而是最稳的。现场发生过一次机器人在运动过程中总线突然掉线查了半天时钟也没问题最后发现是现场电磁干扰导致短时CRC错误超限。这种问题没办法完全消除只能从两方面入手第一是尽量缩短网线长度使用屏蔽双绞线并保证两端的接地第二是适当增大看门狗时间到200ms给总线恢复留出余量。5. 调试过程中的疑难杂症排查与心得汇总5.1 扫描不到设备八成不是网卡问题排查过好几台机器了十次有八次扫描不到设备根本不是网卡的问题。扫不到史陶比尔从站时优先级顺序应该是这样第一个检查机器人控制柜状态是不是控制柜的现场总线接口板卡没有使能第二个检查总线电缆接线尤其CRIMP端子有没有压牢第三个检查网线是否被TwinCAT占用了导致IP冲突从站设备不会因为IP冲突不出来但你绑定的网卡不对就会完全看不见它尤其要留意一个现象机器人控制器自身有两个网口一个用于编程调试另一个才用于EtherCAT总线。千万别把EtherCAT总线网线插到调试网口上否则TwinCAT侧可以看到链路Link up但就是扫描不到任何设备信息原因就是机器人控制器不会把EtherCAT报文转发到它的调试口。5.2 状态机一直停在PRE-OP动不了怎么办状态机切不上去是非常经典的问题。如果你发现从站状态卡在PRE-OP主站切到SAFE-OP就没反应这时候先别急着怀疑主站配置去查一件事从站设备的Sync Manager配置是否和PDO长度匹配。具体来说每次你修改了PDO映射TwinCAT会根据你所选PDO的长度自动重新计算SM通道的三个起始地址和长度。但如果你是从一个老的工程文件打开然后再挂载新的从站这些地址有可能没有自动刷新就会导致SM配置和CoE对象里的实际长度对不上。解决方法是把从站设备删掉重新添加一次让它重新初始化一遍SM配置。另外还有一个常见的坑是机器人侧程序里写了一个持续运行的写指令比如把机器人位置值直接写入某个总线输出变量但那个变量在从站没有映射到RxPDO。总线上的PDO通信本身是没问题但是机器人控制器内部有报警一旦总线切到OP状态下接口卡检测到了一个没有被主站接受的输出映射就自动将状态机拒绝在SAFE-OP。解决方式是检查机器人侧程序里所有调用到总线变量的指令把没有映射的变量全部补充到PDO映射表里。5.3 运动过程中数据跳变与DC不同步的隔离排查如果你看到机器人实际位置反馈值在总线上一会儿正常一会儿跳变第一反应可以看下主站扫描出来的Clock时间差。在TwinCAT2的System Manager里点开某个从站的Advanced Settings找到Distributed Clock页面里面能看到当前从站的接收时间戳和Sync时间戳如果偏差保持在微秒级别以下就正常如果出现几十甚至几百微秒的漂移说明DC同步没有生效。这种问题多数是链路拓扑原因。EtherCAT从站必须在报文进入和离开时打上时间戳如果你的链路里加入了一个不支持DC的老式从站模块后续所有从站都会失去精确同步的基础。这时候有一种变通办法放弃DC对所有从站的同步改用SM事件同步模式虽然实时性会下降一点点但至少数据不会跳变。我最后一次调试时就是因为链路的最后一截网线超过了二十米信号完整性出了波动导致机器人的DC同步误差拉大。缩短距离、换一条屏蔽性能更好的网线问题马上消除。总线拓扑这件事布局时候多花点心思后面能省下大把排查时间。5.4 重启与热插拔的注意事项产线运行中如果某个从站意外断电重新上电之后TwinCAT会自动重启总线通信吗很多时候它是保持断开状态需要你手动把设备状态切回去。里边的逻辑是EtherCAT主站在检测到拓扑变化之后会认为链路报警锁定输出。这时候如果你没有做好程序上的自动恢复策略必须去现场人工恢复。比较现实的做法是在PLC程序里写一个总线复位逻辑当检测到某个从站的不在OP状态持续超过一定时间就输出一个复位字让TwinCAT重新初始化对应从站。这个做法在生产线上非常常见写起来也不复杂强烈推荐加上。6. 最后再分享一点实际体会整个项目做下来我倒觉得配置EtherCAT通信最难的不是技术本身而是一开始把架构想清楚。在动手配置之前先用半天把人机接口、坐标系、机器人工作范围、PLC的节拍逻辑这些边界条件摸透比急着把总线通了更有用。把这个总线配置当成打通神经系统的工程而不是拼积木少走很多弯路。另外在项目收尾时别忘了把以下文档留存下来史陶比尔侧的EtherCAT接口板卡订货号与固件版本、TwinCAT2的ESI文件版本、机器人的坐标计数方向与单位换算系数。这些信息过半年你再回去维护会发现它们比你的记忆可靠太多。如果后面有机会把整个设备的机器自动运行节拍也整理出来我再写一篇专门讲上位逻辑和机器人轨迹集成的内容到时候继续交流。
返回列表