​高速脉冲输出——多位移动案例

 

高速脉冲输出——多位移动案例程序截图内容分析开机初始化程序使用开机脉冲信号,传送不同的数值,且进行浮点数运算...



高速脉冲输出——多位移动案例
程序截图
内容分析
开机初始化程序


使用开机脉冲信号,传送不同的数值,且进行浮点数运算求出一个脉冲所走的长度。

  1. 使用【MOV】指令传送K20(周长)、K400(一圈的脉冲数)到D2、D4;
  2. 使用【FLT】整数转浮点数指令,把周长和脉冲转换成浮点数(小数);
  3. 使用【DEDIV】浮点数除法运算,用周长(D6)除以一圈的脉冲数(D8),得出一个脉冲所走的长度(D10);
  4. 使用【MOV】传送指令,把变址寄存器V0清零。

不同点位长度设置




使用【M3】辅助继电器控制参数写入,主要是写入不同长度,有多少个长度就写入几条指令,本截图7个长度,所以有七条指令。

注意:此程序是配合触摸屏使用,D50到D62的数值由触摸屏输入。

  1. 使用【FLT】整数转浮点数指令,把通过触摸屏输入的数值(D50到D62)转换成浮点数存放在(D100到D112中);
  2. 使用【DEDIV】浮点数除法指令,把设定的长度除以一个脉冲走的长度,得出设定长度所需的脉冲数;
  3. 使用【INT】浮点数转整数指令,把求得的每段长度所需的脉冲数转换成整数,以供发脉冲指令使用;

发脉冲指令执行部分




使用【M0】辅助继电器【SET】置位【M1】,把启动信号保持住,在使用【M1】常开触点驱动【PLSY】高速脉冲输出指令,把【D200V0】的脉冲数以800HZ的频率通过【Y0】口发送出去,其中【D200V0】使用了变址,这样就只需要编辑一条发脉冲指令。

  1. 【M8029】脉冲结束标志位,脉冲发送完了之后,接通一个扫描周期。即:【D200V0】找寻到的地址内的脉冲数发送完成后接通一瞬间。
  2. 使用【M8029】复位【M1】停止驱动发脉冲指令,再置位【M2】作为停止信号;
  3. 使用【M2】的常开触点,接通一个定时器,做停止时间,停止1秒;同时使用【ADDP】加法指令,改变变址寄存器【V0】的数值(此段为可以看为加2计数),且复位【M2】;再使用定时器【T0】的上升沿重启激活【PLSY】发脉冲指令;
  4. 使用触点比较指令,当【D200V0】的数值为零时,就停止所有启动信号,使其不能输出;

已走长度部分



  1. 使用【M8000】开机一直接通辅助继电器,驱动【DMOV】32位传送指令,把【D8140】Y0发出的脉冲总数传送给【D0】;
  2. 使用【FLT】整数转浮点数指令,把总脉冲数转为浮点数存入【D20】;
  3. 使用【DEMUL】浮点数乘法运算,把【D20】总输出脉冲数乘上【D10】一个脉冲所走的长度,结果存放在【D22】中,即:D22等于当前总长度。

清零程序




使用【M4】辅助继电器进行清零,【ZRST】成批复位指令,即:把【D12】到【D220】当中的所有寄存器值都清零,(不建议这样使用);

同时使用【DMOV】32位传送指令,把Y0口输出的脉冲总数进行清零,以便下次使用。
触摸屏画面截图

图一

图二


    关注 工控桥


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册