小弟最近做个项目是有关步进电机的,电机运行的有效行程内有一个光电传感器,我以之为零点,找零的过程是电机快速运行到零点后,由于惯性,电机已经超出了零点的位置,这时候我让电机切换到慢速,以小行程来逼近零点,如一次运行20脉冲,判断是否到零点,如果没到就再运行20脉冲,我将这个功能做成一个子程序 Fzero
Fzero 我做的太大,里面有循环判断指令,再循环体中我还有每个循环延时一秒来进行判断的指令;
Fzero 我做的太大,里面有循环判断指令,再循环体中我还有每个循环延时一秒来进行判断的指令;
|----|M0.1|--------|Fzero|
程序下载执行,PLC报警:【程序扫描看门狗超时错误】
请问是什么问题,如何解决?
答:首先你应该了解PLC的周期扫描的原理:自左向右,自上往下
简单的说,在扫描开始,读取输入输出数字量点状态,以之为基础,按照自左向右,自上往下的扫描顺序来执行指令的,在同一个扫描周期,一种逻辑位如V100.0,只保存在本次扫描周期结束前的最后一种状态,V100.0在一次扫描周期中改变不管改变多少次,只有最后一次会保持,直至下一个扫描周期开始;
所以你使用一些改变程序的指令,如JMP FOR NEXT,尤其是JMP指令,如果是逆向JMP,很容易出现看门狗错误;
这里给你几个建议:
1.将循环指令分解开,做成顺序执行,(需要增加逻辑判断语句)
2.如果有FOR ----NEXT指令,在循环体中不要用延时指令,而且数据量不要过多;
3.尽量不要修改背景时间,在要求响应速度的系统,这很不明智;
4.对你的寻零方案进行改进;