想学好PLC必须掌握的循环扫描工作过程!
1 CPU自检阶段
CPU自检阶段包括CPU自诊断测试和复位监视定时器。
在自诊断测试阶段,CPU检测PLC各模块的状态,若出现异常立即进行诊断和处理,同时给出故障信号,点亮CPU面板上的LED指示灯。当出现致命错误时,CPU被强制为STOP方式,停止执行程序。CPU的自诊断测试将有助于及时发现或提前预报系统的故障,提高系统的可靠性。
监视定时器又称看门狗定时器WDT,它是CPU内部的一个硬件时钟,是为了监视PLC的每次扫描时间而设置的。CPU运行前设定好规定的扫描时间,每个扫描周期都要监视扫描时间是否超过规定值。这样可以避免由于PLC在执行程序的过程中进入死循环,或者由于PLC执行非预定的程序造成系统故障,从而导致系统瘫痪。如果程序运行正常,则在每次扫描周期的内部处理阶段对WDT进行复位(清零)。如果程序运行失常进入死循环,则WDT得不到按时清零而触发超时溢出,CPU将给出报警信号或停止工作。采用WDT技术也是提高系统可靠性的一个有效措施。
2 通信处理阶段
在通信处理阶段,CPU检查有无通信任务,如果有则调用相应进程,完成与其他设备(例如,带微处理器的智能模块、远程I/O接口、编程器、HMI装置等)的通信处理,并对通信数据做相应处理。
3 读取输入
在读取输入阶段,PLC扫描所有输入端子,并将各输入端的通/断状态存入相对应的输入映像寄存器中,刷新输入映像寄存器的值。此后,输入映像寄存器与外界隔离,无论外设输入情况如何变化,输入映像寄存器的内容也不会改变。输入端状态的变化只能在下一个循环扫描周期的读取输入阶段才被拾取。这样可以保证在一个循环扫描周期内使用相同的输入信号状态。因此,要注意输入信号的宽度要大于一个扫描周期,否则很可能造成信号的丢失。
4 执行程序阶段
可编程控制器的用户程序由若干条指令组成,指令在存储器中按顺序排列。当PLC处于运行模式执行程序时,CPU对用户程序按顺序进行扫描。如果程序用梯形图表示,则按先上后下、从左至右的顺序逐条执行程序指令。每扫描到一条指令,所需要的输入信号的状态均从输入映像寄存器中读取,而不是直接使用现场输入端子的通/断状态。在执行用户程序过程中,根据指令做相应的运算或处理,每一次运算的结果不是直接送到输出端子立即驱动外部负载,而是将结果先写入输出映像寄存器中。输出映像寄存器中的值可以被后面的读指令所使用。
5 刷新输出阶段
执行完用户程序后,进入刷新输出阶段。可编程控制器将输出映像寄存器中的通/断状态送到输出锁存器中,通过输出端子驱动用户输出设备或负载,实现控制功能。输出锁存器的值一直保持到下次刷新输出。
在刷新输出阶段结束后,CPU进入下一个循环扫描周期。
「案例」西门子 S7-1200模拟量输入模块的奇怪故障(全溢出)
近日,有网友遇到了S7-1200 模拟量输入模块的奇怪故障,所有通道都上溢出,处理和分析的过程如下:
一、故障现象
S7-1200的8路AI模块,全部配置成电流信号,其中一个通道未接线,通道0的实测电流为7.3mA,通道1的实测电流为4mA。板卡无报错,所有通道的绿灯常亮。但是程序里所有通道的读数全为32767(上溢出)。不确定原始状态,已经更换过该AI板,状态无变化。
为了判定是否板卡再次损坏,还是软件问题,大家远程指导他进行了一系列尝试。如果是板卡损坏,则要想办法找出问题原因,避免再次损坏。
二、尝试过程
1、拆除外部信号线,读数无变化:
2、继续拆除PE线,读数无变化
3、拆除板子24V电源,板卡报错,说明板卡的24V监控功能正常。
4、接上一个通道,测量信号的直流电压差与电流相符(电流为4mA,标准电阻为280Ω,因此,电压是1.12V)。
5、测量通道对地电压,也没有较大共模电压。
6、PLC复位(PLC重置为出厂设置),重新下载硬件配置和软件
通道1设置成0-20mA,强周期滤波,检测值变为0。其他设置程4-20mA的通道读数还是溢出状态。
7、给通道1本地施加电流(用信号发生器),读数还是0(证明该通道已经损坏)。
8、后来,再次更换新板卡,恢复外部接线后正常。
三、可能原因分析
网友回忆说,外部有个仪表进过水,并且出现过24V直接接信号的情况,因此很可能是24V直接加在通道上,将通道烧毁,并波及了其他通道。(手册上说:电流信号最多耐受40mA,折算成电压也就11.2V,因此,直接加24V应该会烧掉)。
虽然还是最坏的结果,但是,上面的判断过程和故障现象还是值得大家参考滴!
说明:
1、本文是实践经验,非严格论文,与相关产品和理论可能不完全相符。
2、如需控制、三电相关帮助,交流,请关注本人,并加入技术讨论QQ群:877456127,那里有很多热心同行。
相关问答
1200PLC什么是溢出?求详细解答,谢谢?
溢出是对于模拟量而言的,对于模拟量一般的数值范围是0-27648,举个例子4-20MA对应0-27648,如果输入为30MA那么就会上溢出32767.如果线接反就会出现下溢出-32767...
plc溢出会怎样?
当PLC溢出时,可能会导致系统崩溃或功能失效。溢出可能发生在内存、寄存器或计数器等关键组件中,导致数据丢失或错误。这可能会导致控制系统无法正确执行程序,...
plc定时器为什么会溢出?
PLC定时器溢出是指定时器累积的时间值超过了其设定的最大值。当定时器溢出时,定时器会将输出信号切换到另一种状态。定时器溢出的原因可能有以下几种:1.定时...
PLC做流量累计,怎么解决溢出问题?
最大...对这个流量进行固定频率的采集,假如采集频率为10hz,也就是每秒钟采集10次,将每次采集的数据进行累加,再将累计的数除以10就是每秒流量,假如流量计工作...
plc的err灯常亮怎么消除?
1)通讯中断,或者下载中断,下载错误2)内存溢出,内存卡损坏3)其它硬件错误先清空内存,下载小段代码,看看是否能够执行,如果不能,检测硬件,更换内存卡如...1)通...
PLC电源指示灯闪烁?
通电后error灯闪烁,run灯不亮.那你张run打到运行状态..看看//还是闪烁..可以看下..程序有没有问题,,要是程序没事..那就是I/O模块有问题。ERROR灯亮一般有很...
西门子plc怎么保证vw和vd不冲突?
在西门子PLC中,VW(VariableWord)和VD(VariableDoubleWord)是用于存储和处理数据的变量类型。为了保证VW和VD不冲突,需要遵循以下几点:1.分配不同的内....
PLC死机怎么办?_其他问答_系统粉
可编程控制器PLC运行时可能会出现死机的情况,这给工业生产造成不可预估的损失,因此,首先要了解PLC死机的原因,针对原因进行排查,软件或硬件错误都有...
可编程控制器分子和分母怎么计算?
在可编程控制器(PLC)的逻辑控制中常常需要进行分子和分母的计算。PLC一般使用整型数据,因此分数被转换为小数后才能进行计算。下面介绍两种通用的方法。1.缩...
三菱plsr指令详解?
三菱PLSR指令是PLC编程中的一种指令,用于对寄存器进行移位操作。具体指令格式为:PLSR寄存器地址,移位数其中,寄存器地址表示要进行移位操作的寄存器;移位数...