purshro
级别: 略有小成
精华主题: 0
发帖数量: 108 个
工控威望: 228 点
下载积分: 8583 分
在线时间: 227(小时)
注册时间: 2014-05-07
最后登录: 2018-01-29
查看purshro的 主题 / 回贴
楼主  发表于: 2014-06-06 22:10
高速中断的问题请教各位。信捷XC3高速定长切断。最高速120米每分钟。用的400线的编码器计数,1倍频。高速计数中断方式切断。当到达设定长度脉冲后,立刻进入中断,复位高速数器C630。现在的问题是发现复位C630时,丢脉冲导致计数不准。感觉复位时间太长导致编码器在走了不少距离才又归的零。几试过1024线的也差不多。低速误差还好,高速相差较大。编码器没问题,只要复位就有误差。
purshro
级别: 略有小成
精华主题: 0
发帖数量: 108 个
工控威望: 228 点
下载积分: 8583 分
在线时间: 227(小时)
注册时间: 2014-05-07
最后登录: 2018-01-29
查看purshro的 主题 / 回贴
1楼  发表于: 2014-06-07 08:19
再说一下检测思路。编码器400线,1倍频。在编码器上设置一标志位,那么转一周刚好转回标志位对齐。比如80000个脉冲,那么刚好20转对齐标志位。但当设置比如40000个脉冲进入中断时,应该就是转10圈进入中断。立即对C630复位。第二个也40000个脉冲进入第二次中断,当第二,第三个……中断来的时候,就越来越偏离标志位了。按理说应该每转一圈400个脉冲都应该对得上标志位置,实际上复位就不行。不复位怎么都行,标志位上监控的数也都是400的整倍数。
张文杰
级别: 略有小成
精华主题: 0
发帖数量: 151 个
工控威望: 280 点
下载积分: 1322 分
在线时间: 407(小时)
注册时间: 2011-07-09
最后登录: 2022-12-27
查看张文杰的 主题 / 回贴
2楼  发表于: 2014-06-07 11:17
会不会机械滞后!
lee1887
级别: 探索解密
精华主题: 0
发帖数量: 6 个
工控威望: 110 点
下载积分: 549 分
在线时间: 0(小时)
注册时间: 2014-04-15
最后登录: 2014-06-07
查看lee1887的 主题 / 回贴
3楼  发表于: 2014-06-07 11:22
        
709488196
常熟工控
级别: 探索解密
精华主题: 0
发帖数量: 40 个
工控威望: 161 点
下载积分: 766 分
在线时间: 106(小时)
注册时间: 2014-04-24
最后登录: 2024-04-29
查看709488196的 主题 / 回贴
4楼  发表于: 2014-06-07 16:04
个人感觉是不是应该用XCC系列的
709488196
常熟工控
级别: 探索解密
精华主题: 0
发帖数量: 40 个
工控威望: 161 点
下载积分: 766 分
在线时间: 106(小时)
注册时间: 2014-04-24
最后登录: 2024-04-29
查看709488196的 主题 / 回贴
5楼  发表于: 2014-06-07 16:05
XC3的处理速度比较慢
eledesigner
懂一点点
级别: 工控侠客
精华主题: 0
发帖数量: 1785 个
工控威望: 2039 点
下载积分: 2655 分
在线时间: 2203(小时)
注册时间: 2009-08-21
最后登录: 2024-11-15
查看eledesigner的 主题 / 回贴
6楼  发表于: 2014-06-07 18:25
伺服可以
purshro
级别: 略有小成
精华主题: 0
发帖数量: 108 个
工控威望: 228 点
下载积分: 8583 分
在线时间: 227(小时)
注册时间: 2014-05-07
最后登录: 2018-01-29
查看purshro的 主题 / 回贴
7楼  发表于: 2014-06-07 18:27
机械没有问题的,PLC速度应该也不是问题。中断不就是立即处理不受扫描周期影响的么?就算是最高速度1ms也才是运行2mm而已。我现在关心的是C630进入中断后立刻复位C630,那么它是不是马上复位。复位后又是否马上计数。因为程序的思路就是C630到达设定的脉冲数(长度)后进入中断,复位C630。那么C630应该立即从0开始计数。到达设定脉冲数后进入中断,复位C630……如此循环。
niningtt
级别: 工控侠客
精华主题: 0
发帖数量: 1230 个
工控威望: 3550 点
下载积分: 858 分
在线时间: 459(小时)
注册时间: 2010-08-24
最后登录: 2024-11-12
查看niningtt的 主题 / 回贴
8楼  发表于: 2014-06-08 15:42
首先你要知道PLC的扫描周期。你使用的高速计数器计数不会丢(相信一般的PLC都可以做得到),那么就是你的程序的问题了,在告诉处理的程序,应该避免因为扫描周期造成的误差。比如本次扫描,读取告诉计数器值,小于目标值哪怕是1,也不会输出。但是当下一个扫描周期,这一个周期有可能过了数个,数十个,脉冲。原因大多是你这个指令用的不对。信捷的没用过,但是应该有个高速比较指令。这个就是高速计数器达到指定值就直接进入中断,就像高速计数后台处理,这样就可以避免一个扫描周期内的不确定性
purshro
级别: 略有小成
精华主题: 0
发帖数量: 108 个
工控威望: 228 点
下载积分: 8583 分
在线时间: 227(小时)
注册时间: 2014-05-07
最后登录: 2018-01-29
查看purshro的 主题 / 回贴
9楼  发表于: 2014-06-08 19:03
引用
引用第8楼niningtt于2014-06-08 15:42发表的  :
首先你要知道PLC的扫描周期。你使用的高速计数器计数不会丢(相信一般的PLC都可以做得到),那么就是你的程序的问题了,在告诉处理的程序,应该避免因为扫描周期造成的误差。比如本次扫描,读取告诉计数器值,小于目标值哪怕是1,也不会输出。但是当下一个扫描周期,这一个周期有可能过了数个,数十个,脉冲。原因大多是你这个指令用的不对。信捷的没用过,但是应该有个高速比较指令。这个就是高速计数器达到指定值就直接进入中断,就像高速计数后台处理,这样就可以避免一个扫描周期内的不确定性
r
谢谢指导。信捷好象没有类似HSCS,HSCR 这类指令。它的HSCR只是读取高速计数的值。所以才用的中断处理,所以第一根总是准的。当C630到达指定长度后进入中断。RST -C630,问题是只要一复位C630计数器,就不准了。RST是非高速指令,不知道会不会是这个问题。信捷好象也没有高速计数器比较复位HSCR这样的指令。