发表于:2010/8/29 12:42:05
#0楼
最近接到两个“案子”,一个用伺服电机,一个用步进电机,都要求用触摸屏调整运行距离。第一次用伺服及步进(汗!),最后程序到是出来了,但是在屏上面距离只能用PLC输出的脉冲数来调整,用户自己要用“脉冲数╳每脉冲对应的距离”(手算)才知道实际调整的距离,使用起来很不方便。
因为<每脉冲对应的距离>应该是用<丝杠转动1圈的移动距离>除以<电机转动1圈所用脉冲数>. 这个好象要用到浮点数运算,所以要直接用距离来表示的话,在PLC内部就要用到浮点数运算,而我用的FX1N不支持浮点数,很郁闷,就去请教一个同行,问他是否一定要用浮点数运算,此人“嗯”一声不作回答。过了两天突然想起可以用下面的方式解决,根本不用浮点数运算。
设丝杠与步进电机直联,每转动1圈移动5mm,步进电机转动1圈为1600个脉冲(驱动器上的细分设置),则0.1mm就对应1600/50=32,也就是说每32个脉冲就对应丝杠移动0.1mm,这样,我只要把屏上设定的距离数╳32就是PLC要输出的脉冲数,只用整数乘法运算就行了。
比如屏上设定距离为:0.5mm,要输出的脉冲数为:5╳32=160(注意:屏上的数据输入格式设为带小数点的整数,用户看到的是有一个小数,输入到PLC的实际上是没有小数的整数!).
不知其他同行是不是也是用这种方式,如果有其他方式能否告知一下?
因为<每脉冲对应的距离>应该是用<丝杠转动1圈的移动距离>除以<电机转动1圈所用脉冲数>. 这个好象要用到浮点数运算,所以要直接用距离来表示的话,在PLC内部就要用到浮点数运算,而我用的FX1N不支持浮点数,很郁闷,就去请教一个同行,问他是否一定要用浮点数运算,此人“嗯”一声不作回答。过了两天突然想起可以用下面的方式解决,根本不用浮点数运算。
设丝杠与步进电机直联,每转动1圈移动5mm,步进电机转动1圈为1600个脉冲(驱动器上的细分设置),则0.1mm就对应1600/50=32,也就是说每32个脉冲就对应丝杠移动0.1mm,这样,我只要把屏上设定的距离数╳32就是PLC要输出的脉冲数,只用整数乘法运算就行了。
比如屏上设定距离为:0.5mm,要输出的脉冲数为:5╳32=160(注意:屏上的数据输入格式设为带小数点的整数,用户看到的是有一个小数,输入到PLC的实际上是没有小数的整数!).
不知其他同行是不是也是用这种方式,如果有其他方式能否告知一下?
我很努力,因为我喜欢。即使不成功我也不后诲!
——我来自“大千故里”四川内江——
——我来自“大千故里”四川内江——