程序扫描看门狗超时错误

小弟最近做个项目是有关的,电机运行的有效行程内有一个光电,我以之为零点,找零的过程是电机快速运行到零点后,由于惯性,电机已经超出了零点的位置,这时候我让电机切换到慢速,以小行程来逼近零点,如一次运行20脉冲,判断是否到零点,如果没到就再运行20脉冲,我将这个功能做成一个子程序 Fzero

Fzero 我做的太大,里面有循环判断指令,再循环体中我还有每个循环延时一秒来进行判断的指令;

|—-|M0.1|——–|Fzero|
程序下载执行,报警:【程序扫描看门狗超时错误】

请问是什么问题,如何解决?
答:首先你应该了解PLC的周期扫描的原理:自左向右,自上往下
简单的说,在扫描开始,读取输入输出数字量点状态,以之为基础,按照自左向右,自上往下的扫描顺序来执行指令的,在同一个扫描周期,一种逻辑位如V100.0,只保存在本次扫描周期结束前的最后一种状态,V100.0在一次扫描周期中改变不管改变多少次,只有最后一次会保持,直至下一个扫描周期开始;

所以你使用一些改变程序的指令,如JMP   FOR  NEXT,尤其是JMP指令,如果是逆向JMP,很容易出现看门狗错误;

这里给你几个建议:

1.将循环指令分解开,做成顺序执行,(需要增加逻辑判断语句)
2.如果有FOR —-NEXT指令,在循环体中不要用延时指令,而且数据量不要过多;
3.尽量不要修改背景时间,在要求响应速度的系统,这很不明智;
4.对你的寻零方案进行改进;

,小弟最近做个项目是有关的,电机运行的有效行程内有一个光电,我以之为零点,找零的过程是电机快速运行到零点后,由于惯性,电机已经超出了零点的位置,这时候我让电机切换到慢速,以小行程来逼近零点,如一次运行20脉冲,判断是否到零点,如果没到就再运行20脉冲,我将这个功能做成一个子程序 Fzero

Fzero 我做的太大,里面有循环判断指令,再循环体中我还有每个循环延时一秒来进行判断的指令;

|—-|M0.1|——–|Fzero|
程序下载执行,报警:【程序扫描看门狗超时错误】

请问是什么问题,如何解决?
答:首先你应该了解PLC的周期扫描的原理:自左向右,自上往下
简单的说,在扫描开始,读取输入输出数字量点状态,以之为基础,按照自左向右,自上往下的扫描顺序来执行指令的,在同一个扫描周期,一种逻辑位如V100.0,只保存在本次扫描周期结束前的最后一种状态,V100.0在一次扫描周期中改变不管改变多少次,只有最后一次会保持,直至下一个扫描周期开始;

所以你使用一些改变程序的指令,如JMP   FOR  NEXT,尤其是JMP指令,如果是逆向JMP,很容易出现看门狗错误;

这里给你几个建议:

1.将循环指令分解开,做成顺序执行,(需要增加逻辑判断语句)
2.如果有FOR —-NEXT指令,在循环体中不要用延时指令,而且数据量不要过多;
3.尽量不要修改背景时间,在要求响应速度的系统,这很不明智;
4.对你的寻零方案进行改进;

程序扫描看门狗超时错误

相关文章:

你感兴趣的文章:

标签云: