首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tx抑制时间

Tx抑制时间
EN

Stack Overflow用户
提问于 2022-09-03 07:53:03
回答 1查看 52关注 0票数 0

对象180 the有以下子索引:

0x00:

0x01:

0x02:

0x03 (抑制时间):这个子索引包含100个步骤的时间锁(见下图)。这可以用于设置在发送PDO之后必须经过的时间,然后再发送PDO。这一次只适用于异步PDO。这是为了防止在映射对象不断更改的情况下连续发送PDO。

0x04 (兼容性条目):这个子索引没有函数,只存在于兼容性原因。

0x05 (事件计时器):这一次( ms)可以用来触发一个事件,该事件处理数据的复制和PDO的发送。

根据上述观点,我们认识到,当事件发生时,确定了一定的时间,这是阻塞的,这是为to;现在,如果事件发生在这个间隔,它将在下一节执行。

为什么要执行整个部分?为什么在最后一部分执行第二、第三和第四事件?

第三次和第四次事件不应该分开执行吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-05 09:59:01

默认情况下,常见的CANopen设备配置文件(例如,CiA 401“通用I/O模块”)被配置成适合大型自动化网络。也就是说:一个拥有大量节点的大型网络,在那里保持低的公交流量是非常重要的。在这些网络上,节点仅在发生数据更新(发生内部事件)时才发送PDO。

然而,当CANopen用于实时控制系统时,这样的设置是非常不合适的,例如有一个可编程控制器控制一堆控制机器运动的执行器I/O模块。这也可能是一个与安全相关的应用。在这样的系统中,即使数据没有改变,始终以偶数间隔重复发送数据也是自定义的。例如,每10 For /100 For发送一次所有数据。

接收节点只使用最后发送的数据,因此,如果数据丢失/损坏,新的可靠数据将很快再次到达。如果根本没有数据到达,那就意味着某些东西坏了,系统应该恢复到一个安全的状态,在一定的时间内没有收到新的数据。这是移动/汽车控制系统最常见的设计方式,因为它是安全的、确定性的,并且在使用中得到了验证。定制的、非标准的CAN总线协议通常都是这样实现的.

现在,要用CANopen实现这一点,我们必须配置TPDO通信参数。事件计时器设置间隔和抑制时间,以防止节点在发生更改时立即发送额外的数据。如果我没记错,我们还需要将180 n:2传输类型设置为异步(这听起来有违直觉)。

有了这样的设置,只有最近的事件才重要。最最新的数据将总是被发送,以固定的间隔。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73590579

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档