合信论坛

快捷导航
查看: 5807|回复: 0

CANopen 常见问题及相关解决方法

[复制链接]

146

主题

229

帖子

3086

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3086
发表于 2022-1-4 12:04:51 | 显示全部楼层 |阅读模式
本帖描述了最近遇到的 CANopen 相关的一些问题,并解释其原因,提供了解决的方法。
1.启动检查相关。
经常会遇见各种第三方的从站,或我司的从站,各种配置(波特率,站点地址)都是正确的,但死活通讯不上。 CAN 模块亮红灯,CAN 模块状态为 21, 从站状态为 0X7F 或 0。
这时首先要怀疑是不是启动检查配置没通过
1.png
如果选项勾上,启动时主站就会检查组态的相关选项是否与实际从站相符。如果不相符就直接报错,不会再进行通讯。
解决方式也很简单,直接勾掉相关选项就可以了。当然能修改 EDS 文件使之与实际相符就更好了。

2. 心跳相关。
在杭州办曾出现一个第三方站点,连上之后,会发现主站 BF 站一下亮,一下灭,从站的状态一下为 OP(5),一下又为断线(1)。检查其组态之后发现心跳定时器比主站监控定时器的还要大。

2.png
心跳定时器指的是从站多长时间会发送一次心跳(状态),而主站监控定时器指的是如果主站多长时间没有检查到心跳会认为从站掉线了,所以主站监控定时器时间必须要比从站定时器多,一般取 2 到 3 倍比较合适。
需要注意的是有些第三方的从站并不接收主站为其配置的心跳时间,这个时候就要查看其说明书,确定其心跳时间,并配置合适主站监控时间。
3. 异步 PDO 导致的问题。
最近遇见一个客户,连 8 台伺服,正常情况下,通讯和状态都是正常的,但是伺服一转起来,后面几台伺服的状态就会变成了掉线。而将后面的几台伺服的 NodeId 和前面的几台交换一下,物理连接不变,就变成了前面几台掉线。首先排除的是干扰的问题,因为物理连接不变的情况下,变换了 NodeId 就变成前面的掉线,改变 NodeId 就改变了从站报文的优先级,NodeId 越小,优先级越高。可以确定的是有优先高的报文挤占了大 NodeId的从站的心跳报文,使之心跳无法发出来。正常通讯时间内,除了心跳就是 PDO 报文了,心跳时间不变,只能是 PDO 了。PDO 有两种类型,同步和异步的,我司伺服默认是异步的。
在 H300 的硬件组态,从站的 PDO 选项卡中选中 PDO 右键 “属性”
3.png
传送类型里选择的 255 是异步的。异步的 PDO 报文,通常是值有变化就发,没有变化就不发。当然还要受到事件定时器和抑制定时器的影响。在事件定时器到来时,就算报文值没有变化,也要发送。在抑制定时器时间内,就算值有变化报文也不能发送。伺服高速转动时,速度和位置变化是很快的,如果抑制时间设定不合适那这个 PDO 报文就会挤占大量的总线时间,导致低优先级的心跳报文发不出去,从而导致从站状态变为掉线。如果是 H300 CPU 只要合适的增加 PDO 的抑制时间,类似的问题就会解决。而如果是 200 CPU 主站这边没有这个参数可设,这时就需要在从站这边设定,使用 Tuner 设 33 号参
4.png
由于伺服程序的 BUG,中间可能有些版本的伺服 PDO 禁止时间设置并没有起作用,一直为 0,这时需要更新成最新版本的伺服固件。 测试禁止时间有没有作用,可设禁止时间为一个较大值如 5S,然后使伺服里值快速变化,看主站这边映射值的变化是否与禁止时间设置一致。
4. 同步 PDO 导致的问题。前面说了 PDO 传送类型为 254,255 就是异步的 PDO,传送类型 1-240 则为同步的 PDO。同步 PDO 怎么发送的呢?主站作为同步的生产者,周期性的发送同步报文, 从站收到从站的“传送类型”次同步报文后就发送相应的 PDO.
5.png
如图主站配置 CoB ID 为 128,同步周期为 50000us(50ms), 从站 PDO 传送类型为 100。那么主站每 50ms发送一次同步报文(帧 ID 为 128),而从站每收到 100 次同步报文发送一次 PDO 数据(50ms*100=5 秒钟发送一次)。遇到一个客户使用 C37 + CAN1T + 第三方从站,下载后从站状态,通讯都正常,但是输入就是读不上来。检查报报文发现没有 PDO 报文发上来。仔细看了它的说明书发现它的 PDO 是同步。
6.png
而我们 C37 主站默认没同步生产者,所以也没有同步报文发出来,自然也不会有 PDO 报文发上来。勾选上使能同步生产者,输入就有了。
7.png
5.其他的问题。
使用 C37 + CAN1T,组态两个从站,而实际连接一个,结果两个从站状态都不对,而使用 H36 +CAN1M,则至少实际连接的从站状态是正常的,这是由于两个的配置不同
8.png

将 NMT 启动所有这里的勾去掉,不然只要有从站没有连上,所有站都不会启动。去掉之后就和 H 系列的一样了

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

本版积分规则

客服热线
400-700-4858 周一至周五:09:00 - 18:00
深圳市南山区打石一路深圳国际创新谷6栋A座9层

深圳市合信自动化技术有限公司(简称“合信技术”)成立于2003年,高新技术企业,专注于工业自动化产品的研发、生产、销售和技术服务,依靠高质量、高性能的自动化控制产品与方案为客户创造最大价值,立志于成为全球领先的工业自动化解决方案供应商。

Archiver|手机版|小黑屋|COTRUST Inc. ( 粤ICP备13051915号 )

GMT+8, 2024-4-20 04:16 , Processed in 0.069894 second(s), 23 queries .

快速回复 返回顶部 返回列表