如何在西门子TIA Portal中配置首次扫描位

首次扫描(FirstScan)触发器用于协调PLC初次启动或从停止转为运行时程序元素的初始化。本工程简报演示如何在图1所示的S7-1200 PLC上通过TIA Portal启用该功能。由于首次扫描操作属于PLC中级主题,我们假定读者已具备TIA Portal的基础知识。


本文属于DigiKey工业自动化现场指南系列

位置 :编程→PLC→西门子S7-1200与S7-1500
难度:wrench: 技术员级——难度等级说明
最后更新 :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 中启用首次扫描功能?

启用西门子首次扫描需两个步骤:

  1. 如图2所示启用系统存储器位选项

  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 唤醒时的第一口气。这表明是时候整理好你的家务,为即将到来的真正工作做好准备了。

:books: 继续探索工业控制系统

若本文对您有所启发,您可能还对以下内容感兴趣:

:world_map: DigiKey 导航

:japanese_symbol_for_beginner: 相关基础文章