登录
首页 PLC论坛 西门子SIEMENS
回帖 发帖
正文

主题:在线急等!!!西门子313c采集绝对值编码器信号问题!!!!

点击:2460 回复:7

我在编一个测角的程序,电机转速很低,每分钟几百转,但是精度要求很高,(正负5分)。发现一个问题:编码器为13线,ssi二进制输出,即每转8192个输出,如果要求cpu实时采集测量角度,根据cpu运算速度,执行一条指令至少约需2微秒,那么即使编码器以每秒一转的低速度旋转,cpu也不可能将每个数据读入。如果按照循环完毕在读数据是否测角精度会更低?
我猜我得想法肯定是错误的,不然现场就没办法应用了。但是自己实在找不到合理的解释,求高人们指点迷津。谢谢
05-03-08 20:33
自己先顶下
05-03-08 20:34
没细看313C的技术指标,也没计算你的需要,但只有两个方法:
1. 使用硬件中断
2. 加FM352
05-03-08 20:53
karl大哥,我的项目是用编码器采集角度作为反馈,用plc控制电机转到设定的角度值。您说的硬件中断是不是说根据设定角度换算成二进制数,以cpu发出计数指令,让编码器转多少个脉冲后停止?
fm352位置控制块我的项目上可能没办法用,因为电机是直流力矩电机,输出电流要求很大10A,而且以后的工作环境没有交流电
karl大哥能不能给些建议?
05-03-08 21:33
差不多,参看西门子的硬件中断的用法。
352是电子凸轮,不是功率输出。
05-03-08 22:18
o,谢谢karl大哥,我理解错了,以为您说的是fm351模块。我没看过352的资料,谢谢您的建议。
现在还是那个问题,我计算了一下,13线的绝对编码器(ssi输出)其每转就是2的13次方,即8192个计数脉冲,每个脉冲对应2.6分,项目的测角精度要求正负5分,而电机转速最高不超过200转。即使电机以每秒一转的速度也要输出8192个脉冲量,而cpu是采用循环读取的方式,假如循环有100条指令,也至少要100微秒的时间,等cpu再次取数,这中间电机带着编码器早就转过800多个数了,根本没办法满足5分的精度啊!是不是做实时控制的话cpu或者编码器必须换一个?
您说的硬件中断的方法如果是用cpu发计数指令让编码器走到设定角度值,那是不是变成开环控制了?能保证精度吗?
05-03-08 23:25
是编码器走到设定角度值后触发中断调用程序来处理,计数是由硬件来处理的,不受程序循环扫描时间的影响。
05-03-09 08:57
明白了,回去试试看能不能满足精度要求,谢谢两位大侠的帮助
05-03-09 09:28

工控新闻

更多新闻资讯