PLC至少有三种工作模式:启动(StartUp)、运行(RUN)和停机(STOP),S7-300/400PLC还有第四种模式:保持(Hold)。前面的文章我们介绍过PLC在运行(RUN)模式下,会刷新输入/输出缓存区、执行用户程序、处理中断及与PG/PC通信等。今天这篇文章,我们想深入讨论下PLC的停机(STOP)模式。停机(STOP)到底意味着什么?PLC是否还会继续刷新输入/输出缓存区?是否会继续响应中断?PG/PC的通信还能否继续?下面,我们来详细谈谈这个话题。
首先来看看PLC正常运行(RUN)模式下的循环扫描状态图:
与正常运行(RUN)模式相比,当PLC进入停机(STOP)模式时,有以下几点不同:
不读取外部数字量输入值到缓存区;
不执行用户程序;
不响应用户程序中断;
仅处理PG/PC的通信请求或单边被动通信的请求;
使用预先设置的安全值更新数字量输出;
在停机模式下,PLC的诊断功能正常运行,包括:
硬件诊断(是否存在硬件故障?);
软件诊断(是否存在软件问题?比如地址错误);
启动条件是否满足?
注:诊断功能之所以能在停机模式下继续运行,其原因是它属于PLC操作系统的一部分;
PLC在停机模式下属于半空闲状态,其工作流程如下面这张图所示:
有两种方式会导致PLC进入停机(STOP)模式:
1.手动方式:
对于S7-300系列PLC,CPU上有一个运行/停止的拨码开关。通过将拨码开关拨到停止位置,可以让CPU进入停机模式;
对于S7-1200/1500及S7-200 Smart CPU,可以通过编程软件发送【停止】指令让CPU进入停机模式;
2.自动方式:
当PLC检测到软件或硬件故障、并且这个故障会影响PLC的运行(属于致命故障)时,则PLC进入停机模式;
比如,在S7-300中,如果PLC检测到一个软件错误,就会发出一个中断请求。操作系统接到中断请求后,会调用OB121来处理。如果程序块中没有下载OB121,则CPU进入停机模式。
对于S7-200 smart,当下载程序时,需要让PLC进入停机模式。下载完成后点击Step7-Micro/WIN SMART的RUN按钮,让PLC进入运行模式;
对于S7-300/400,当下载程序(FB/FC/OB)时PLC不会停机;只有下载硬件组态或者网络组态时,Step7会提示PLC将停机。当下载完成后,会提示是否将PLC从停机模式转到运行模式,此时点击确认即可;
当然,如果下载的程序有错误而且没有下载OB121,PLC会停机的。