3. 模式选择:手动/自动/编辑切换

任务说明

在数控系统操作面板上,模式选择开关(通常为旋转开关)用于在手动(JOG)、自动(AUTO)、编辑(EDIT)三种模式间切换。不同模式下,操作面板上可用的功能按键不同,例如:手动模式下允许点动轴移动,自动模式下允许启动循环启动,编辑模式下允许修改程序。本案例实现模式开关的读取与模式状态输出,并据此启用或禁用对应的面板功能按键。

硬件与依赖

  • PLC:西门子S7-1200(或同类支持结构化文本ST的PLC)
  • 输入:模式选择开关接入I0.0(手动)、I0.1(自动)、I0.2(编辑),开关为自锁型,同一时刻仅一个输入为TRUE
  • 输出:Q0.0(手动模式指示灯)、Q0.1(自动模式指示灯)、Q0.2(编辑模式指示灯)
  • 面板功能使能信号:M0.0(手动点动使能)、M0.1(循环启动使能)、M0.2(程序编辑使能)

完整代码(ST语言)


FUNCTION_BLOCK FB_ModeSelect
VAR_INPUT
    iManual     : BOOL;   // 手动模式开关信号
    iAuto       : BOOL;   // 自动模式开关信号
    iEdit       : BOOL;   // 编辑模式开关信号
END_VAR
VAR_OUTPUT
    oModeManual : BOOL;   // 当前处于手动模式
    oModeAuto   : BOOL;   // 当前处于自动模式
    oModeEdit   : BOOL;   // 当前处于编辑模式
END_VAR
VAR
    // 面板功能使能信号(输出到操作面板逻辑)
    oJogEnable      : BOOL;  // 手动点动功能使能
    oCycleStartEnable: BOOL; // 循环启动功能使能
    oEditEnable     : BOOL;  // 程序编辑功能使能
END_VAR

// 模式判定:同一时刻仅一个开关有效,优先级手动 > 自动 > 编辑
oModeManual := iManual;
oModeAuto   := NOT iManual AND iAuto;
oModeEdit   := NOT iManual AND NOT iAuto AND iEdit;

// 根据模式启用对应面板功能
oJogEnable       := oModeManual;
oCycleStartEnable:= oModeAuto;
oEditEnable      := oModeEdit;

主程序调用(OB1)


// 实例化模式选择功能块
"ModeSelect_Instance"(
    iManual := "HMI_Manual_Switch",   // I0.0
    iAuto   := "HMI_Auto_Switch",     // I0.1
    iEdit   := "HMI_Edit_Switch",     // I0.2
    oModeManual => "Q_Manual_Lamp",   // Q0.0
    oModeAuto   => "Q_Auto_Lamp",     // Q0.1
    oModeEdit   => "Q_Edit_Lamp"      // Q0.2
);

// 将功能使能信号传递给操作面板按键逻辑
"Jog_Enable"      := "ModeSelect_Instance".oJogEnable;
"CycleStart_Enable" := "ModeSelect_Instance".oCycleStartEnable;
"Edit_Enable"     := "ModeSelect_Instance".oEditEnable;

运行与验证

  1. 将上述FB添加到PLC程序中,并在OB1中调用。
  2. 下载程序到PLC,进入在线监控模式。
  3. 验证步骤与通过条件:
操作预期输出
仅将I0.0置为TRUE(手动)Q0.0=TRUE,Q0.1/Q0.2=FALSE;M0.0=TRUE,M0.1/M0.2=FALSE
仅将I0.1置为TRUE(自动)Q0.1=TRUE,Q0.0/Q0.2=FALSE;M0.1=TRUE,M0.0/M0.2=FALSE
仅将I0.2置为TRUE(编辑)Q0.2=TRUE,Q0.0/Q0.1=FALSE;M0.2=TRUE,M0.0/M0.1=FALSE
同时将I0.0和I0.1置为TRUE手动优先:Q0.0=TRUE,Q0.1=FALSE;M0.0=TRUE,M0.1=FALSE

关键说明

  • 模式判定采用优先级逻辑,防止开关信号抖动或误操作时出现多模式同时激活。
  • 功能使能信号(M0.0~M0.2)输出到操作面板按键逻辑,用于在HMI或物理按键上屏蔽非当前模式的按键操作。
  • 实际接入时,I0.0~I0.2对应PLC输入端子,Q0.0~Q0.2接指示灯,M0.0~M0.2为内部标志位,供后续按键处理逻辑使用。