马上注册,享受更多特权
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 k10574 于 2022-4-12 23:21 编辑
大家好,本次为大家分享一个H3U与伺服CANOPEN通讯时,实时读取内部位置与设定位置比较,大于等于设定值时某寄存器加1,但实际效果偶尔加偶尔不加的原因剖析,希望能给大家带来一定帮助!
【案例题目】使用H3U与IS620PS2R8I-CO的伺服驱动器走CANOPEN通讯,使用指令MCRDPOS实时读取当前位置,与设定位置比较,当比较值=设定值时,就会让某个寄存器加1
【问 题】 数据偶尔加1,偶尔不加;
【问题说明】 从站同步周期设置为200ms,同步数设置为10 , 相当于2S钟采集一次数据;受扫描周期影响采集的数据有时在采集时已经超过了目标值范围,所以不会变化
例如控制伺服10000个脉冲/S的速度正转30000个脉冲,再返回至0;相当于正转3S反转3S,要求读取的位置>15000时寄存器加1;
从站同步周期设置为200ms,同步数设置为10;则代表2S采集一次当前位置;
则内部取值逻辑如下:
第一次读取实时位置 脉冲变化从0变化至20000 此时读取到当前值大于15000 加1
第二次读取实时位置 脉冲变化从20000至30000又返回至20000 此时读取到的当前值为20000 大于15000 加1
第三次读取实时位置 脉冲变化从20000至0 此时读取到的当前值为0 但运行中有15000的变化,但由于2S才读取一次,读取时位置已经变成0,此处未加;
导致出现偶尔加偶尔不加的异常表象;
【解决办法】:根据负载情况,合理设置同步周期及同步数 便可解决
【效果展示】:
修正前:
修正后:
【原理详解】:
PDO数据采集原理是实时采集还是周期采集取决于几个要素
1. H3U主站的同步周期,此周期决定CANOPEN网络效率,如果网络负载率不大的情况下可以改小,最小单位2MS 2 从站的同步周期,此周期决定此台从站的网络效率,如果网络负载率不大的情况下,可以改小,最小单位2ms
3. 可以单独对某个地址进行周期采集控制,此处同步数10代表的从站的同步周期*同步数=200*10=2S采集一次 如果同步周期改成50,同步数改成1则代表50MS采集一次
4. 可以单独对某个PDO进行异步控制,异步控制的意思是只要从站此地址里面的值变化,就会采集一次;采集的时间频次为抑制时间,如果抑制时间是1000,则1000*100us=100ms采集一次; 事件时间:如果为异步,数据始终没变化,那也会根据事件时间去采集;如设置1000,如果1S数据没变化,也会采集一次
|