『7x24小时有问必答』
接上了也不报错,数据却全是 0
EtherCAT PDO 配置,一步步来
上一篇讲了 SDO,那是上电时候用的通道,负责把参数写进驱动器。
这一篇讲 PDO。设备真正跑起来之后,主站每个周期发指令、驱动器每个周期报反馈,走的全是它。
PDO 最气人的地方在于:配错了不报错。设备能扫到、状态能上 Op、SDO 也能读能写,看着哪儿都正常,就是电机不动,或者数据一直是 0。
一、先分清 SDO 和 PDO
▲ 一个管上电配置,一个管跑起来之后
SDO 是一问一答的,主站问一句从站答一句,慢,但是想读写哪个参数都行。上电配置那些活归它。
PDO 不问不答,双方事先说好这一帧里哪几个字节代表什么,然后每个周期照着这个约定收发,不用再说明。所以它快,能跑到毫秒甚至更短的周期。
而这个事先说好的约定,就是所谓的 PDO 配置。你要做的就是告诉双方:这一帧里放哪几项、每项占几个字节、谁在前谁在后。
二、配 PDO 其实是两件事
这一节是全文最要紧的地方。很多人卡住就卡在这儿。
▲ 装表和交表,少一件都不行
第一件叫装表。你先写清楚这张表里要放哪几项,用的编号是 1600h 和 1A00h。
1600h 装的是主站发给驱动器的东西,比如控制字、目标位置。1A00h 装的是驱动器报给主站的东西,比如状态字、实际位置。
注意这两个方向是站在驱动器的角度说的,很多人在这儿绕晕。记住一句就行:1600 是收,1A00 是发。
第二件叫交表。表印好了,还得告诉系统这张表要启用,用的编号是 1C12h 和 1C13h。
1C12h 对应 1600h 那张收的表,1C13h 对应 1A00h 那张发的表。
只做第一件不做第二件,就是最典型的坑。你改了 1600h 觉得配好了,结果表根本没交上去,系统不认,跑起来数据全是 0。
记法可以简单一点:1600 和 1A00 管内容,1C12 和 1C13 管启用。
三、表里每一项长什么样
打开配置界面,你会看到表里每一项是一串数,比如 0x60400010。这串数不是随便一个编号,它是三段拼出来的。
▲ 参数编号+子索引+位数
前四位是参数编号,6040h 就是控制字。中间两位是子索引,参数没有子项的话填 00。最后两位是这一项占多少位。
最后两位最容易填错,因为它是位数不是字节数。16 位要写 10(十六进制的 10 就是十进制的 16),32 位要写 20。有人按字节数写成 02 和 04,一配就报错。
常用的几项可以直接抄:
要传的东西
参数编号
位数
填进表里就是
控制字(发给驱动器)
6040h
16 位
0x60400010
目标位置(发给驱动器)
607Ah
32 位
0x607A0020
目标速度(发给驱动器)
60FFh
32 位
0x60FF0020
状态字(驱动器报回来)
6041h
16 位
0x60410010
实际位置(驱动器报回来)
6064h
32 位
0x60640020
实际转矩(驱动器报回来)
6077h
16 位
0x60770010
  
把这些按顺序填进表里,主站和驱动器就知道每一帧的字节该怎么解读了。
四、多数人其实不用手动配<o:page></o:page>
▲ 先看预设有没有现成的
厂家在 ESI 文件里通常已经把常用的搭配做好了,比如位置模式一套、速度模式一套、带转矩限制的一套。主站软件里下拉一选就行。
九成场合这些预设够用。所以配 PDO 的第一步不是打开手册研究编号,而是先翻翻预设里有没有现成的。
什么时候才需要手动配?预设里没有你要的那一项的时候。比如你想额外传一个厂家自定义的参数,或者想把某项去掉省点带宽。
五、真要手动配,顺序不能乱
▲ 顺序错了就白配
这八步看着繁琐,但每一步都有原因。
先退到 Pre-Op。PDO 配置只能在这个状态下改,设备已经在 Op 跑着的时候改不了,会直接报错。上一篇讲过四道关,这里正好用上。<o:page></o:page>
先写 0 再改内容。不清零直接往里塞,条数和实际内容会对不上,系统按旧条数去读新内容,读出来就是乱的。
写条数一定放在最后。这是最容易搞反的一步。先填完所有项,再回头告诉系统一共几项。反过来做,系统会按你报的条数去读还没填的位置。
1C12h 也是同一套逻辑。先写 0 清掉,再指定用哪张表,最后写一共几张。
全部做完,切到 Safe-Op,数据就该出来了。
实际工程里,这八步一般不是人手动点的,而是写进主站的启动参数表,让它每次上电自动发一遍。上一篇讲 SDO 的时候说过那张清单,就是干这个用的。
六、按现象排查
●卡在 Pre-Op 上不去:多半是映射里有驱动器不支持的项,或者位数填错了。看主站给的错误码,一般能定位到具体哪一项。
●上了 Op 但数据全是 0:先查 1C12h 和 1C13h。九成是表装好了没交上去。
●位置读不回来:看 1A00h 里有没有把 6064h 加进去。很多预设组合默认只报状态字,实际位置要自己加。
●改了 ESI 文件没生效:主站缓存了旧的描述,要重新扫描设备,有的还得先删掉再加。
●报映射长度超限:每张表能装的项数和总字节数有上限,各家不一样。去掉几项不用的,或者分到第二张表里。
●跑着跑着改配置改不动:那是因为在 Op 状态,退回 Pre-Op 再改。
七、几个容易忽略的点
●映射的顺序就是字节在帧里的顺序。改了顺序,主站那边解析的偏移量也得跟着改,不然读出来是错位的。
●别把用不上的项都塞进去。每一项都占带宽,多轴系统里几十台设备累加起来,周期就跑不快了。用得着什么放什么。
●收和发是两张独立的表,条数可以不一样。有些设备只需要接收不需要反馈,1A00h 那张可以是空的。<o:page></o:page>
●改完记得断电重上电验证一次。启动参数表填错但主站没报错的情况是有的,只有重来一遍才验得出来。
●多台同型号设备的 PDO 配置通常一样,主站里配一台,其他的可以直接复制。但换了型号就得重新对,因为参数编号里 2000h 那段各家不同。
整篇归纳一句:PDO 配置就是事先约定好一帧里放什么。装表用 1600h 和 1A00h,交表用 1C12h 和 1C13h,两件都做了数据才会出来。多数时候用厂家预设就够,真要手动配,记住顺序:先清零、再填内容、最后写条数。
下一篇我们接着讲 PDO 的同步方式:自由运行、SM 同步、DC 同步差在哪,周期该设多少,为什么多轴联动必须用 DC。欢迎关注我们,一起把这些看着唬人的技术名词一个个拆明白。
工业总线  #EtherCAT #伺服驱动器 #工业通信 #运动控制  鼎时<o:page></o:page>

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

上一主题上一主题         下一主题下一主题
QQ手机版小黑屋粤ICP备17165530号

关于我们·投诉举报· 用户帮助· 联系我们 · 本站服务 · 版权声明· 隐私政策 · 投搞指南

法律保护:PLC技术网,plcjs.com,plcjs.net等字样
Copyright 2010-2030. All rights reserved. 


微信公众号二维码 抖音二维码 百家号二维码 今日头条二维码哔哩哔哩二维码