Canopen如何使用event timer方式触发PDO传输??

2020-01-04 19:01发布


Canfestival协议移植到STM32,NMT、PDO、EMCY、SDO等各个功能都运行正常。
我现在使用一个主机带15个从机,主机每2秒发送一次SYNC同步报文,15个从机收到主机发送的SYNC报文后,用PDO方式把各自采集的电压数据传给主机,
也就说,主机每发一次SYNC,就会收到15个电压数据,这个自然没问题,目前运行良好。。。。。。。
但是,我现在想换个方式。。。。。我不想主机发SYNC来触发从机发送电压数据,我想从机自己定时触发自动给主机发送电压数据。
CANOPEN资料文档里介绍:PDO传输类型有event timer; inhibit timer; change of state; respond to SYNC等,我想让从机定时触发,是不是该用Event timer方式来触发??
我在Canfestival字典里尝试更改Event timer参数值,但貌似不起作用。。。。
不知哪位有这方面的经验,请指点一二。。。。。
下面截图代码,具体我该如何设置和操作?谢谢!

2_3839_15.jpg (152.68 KB, 下载次数: 0) 下载附件 2016-11-25 22:27 上传

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
16条回答
天马行空
2020-01-05 10:56
waterx3 发表于 2016-11-28 13:19
Transmission_Type =255;
Event_Timer = 毫秒

如果这样设置:
Transmission_Type =255;
Event_Timer = 100;

我有点想不明白:Transmission_Type =255就是值改变了触发PDO发送,Event_Timer = 100就是每隔100MS发送一次??
感觉有点矛盾,究竟是值改变了触发,还是定时100MS触发??如果再设置一个抑制时间inhibit timer,感觉就乱了。。。。。

一周热门 更多>