首次扫描(FirstScan)触发器用于协调PLC初次启动或从停止转为运行时程序元素的初始化。本工程简报演示如何在图1所示的S7-1200 PLC上通过TIA Portal启用该功能。由于首次扫描操作属于PLC中级主题,我们假定读者已具备TIA Portal的基础知识。
位置 :编程→PLC→西门子S7-1200与S7-1500
难度 :
技术员级——难度等级说明
最后更新 :2026年3月6日
PLC 首次扫描原理及其重要性
首次扫描是系统级的布尔型内存位。该位(下文称FirstScan)会在第一个且仅第一个程序扫描周期自动置为TRUE。
FirstScan充当初始化标志位。程序员可利用这个单次触发信号对程序组织单元(POU)进行有序初始化。例如,可在条件赋值块中使用FirstScan将状态机初始化为空闲状态。
// FirstScan prototype in structured text
IF "FirstScan" THEN
// Initialize my variables
END_IF;
作为系统级内存位,每次PLC上电或从停止转为运行时,FirstScan都会产生脉冲信号。只要使用得当,FirstScan将成为PLC启动过程中实现稳定可预测程序初始化的关键环节。
图 1 :作者工作台上的西门子S7-1200 PLC。
如何在西门子 TIA Portal 中启用首次扫描功能?
启用西门子首次扫描需两个步骤:
-
如图2所示启用系统存储器位选项
-
如图3所示编译并下载新硬件配置
技术提示 :请勿将图3所示的硬件流程与主程序(如梯形图)混淆它们具有不同且独立的PLC下载机制可理解为硬件配置(准备硬件)与软件编程(运行程序)两个层面
笔者曾遭遇主程序可编译但FirstScan相关代码失效的情况值得注意的是,即使禁用系统存储器位,TIA Portal代码仍能编译通过
图 2 :TIA Portal中首次扫描启用复选框的位置
图 3 :TIA Portal中硬件编译与下载选项的位置
首次扫描功能验证
这个简单的结构化文本程序演示了 FirstScan 位的操作。该程序有三个输入端,包括一个选择开关和一个开-关-开瞬时选择开关。此外,还有两个用于双色红/绿面板灯的输出端口。
FirstScan 位于程序的第一行,它用于根据选择开关的状态初始化面板灯颜色。这可以非常直观地表明 FirstScan 逻辑正在运行。
当我们对 PLC 进行电源循环,并且面板指示灯颜色根据选择开关的位置发生变化时,我们有很高的成功信心。
用于演示首次扫描操作的代码块
// FirstScan Initialization Demonstration
IF "FirstScan" THEN
IF "gxSW1" THEN
"gxPLGreen" := FALSE;
"gxPLRed" := TRUE;
ELSE
"gxPLGreen" := TRUE;
"gxPLRed" := FALSE;
END_IF;
END_IF;
IF "gxSSLeft" THEN
"gxPLGreen" := FALSE;
"gxPLRed" := TRUE;
END_IF;
IF "gxSSRight" THEN
"gxPLGreen" := TRUE;
"gxPLRed" := FALSE;
END_IF;
技术提示 :我个人喜欢使用匈牙利记数法来提醒自己内存的范围和类型。在本应用中,前缀 gx 代表全局和布尔值。
常见问题解答
FirstScan 位的作用是什么?
FirstScan 位是一个使能信号。当 PLC 首次上电或从停止状态过渡到运行状态时,会产生此触发信号。
当你的程序检测到这一位时,它们就知道该将关键内存位置(例如计数器初始化为零或状态机初始化为空闲状态)初始化了。
我的 FirstScan 为什么不能正常工作?
假设你的主要程序可以编译,那么很可能存在以下三个问题:
- 系统内存位未启用(参见图 2)
- 硬件变更未编译(见图 3)
- 硬件变更未下载到PLC(图3)
结语
FirstScan 位就像 PLC 唤醒时的第一口气。这表明是时候整理好你的家务,为即将到来的真正工作做好准备了。
继续探索工业控制系统
若本文对您有所启发,您可能还对以下内容感兴趣:
DigiKey 导航
- 完整目录 :工业控制与自动化


