分享

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

 笑对波浪 2018-04-02


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



程序截图



内容分析


开机初始化程序


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

  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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多