返回主站|会员中心|保存桌面

安川变频器专营    

变频器、软启动器、伺服驱动器

联系方式
  • 联系人:吴经理
  • 电话:18576370666
  • 邮件:18576370666@163.com
新闻分类
  • 暂无分类
站内搜索
 
首页 > 新闻中心 > 如何做触摸屏与上位机PC之间切换控制!
新闻中心
如何做触摸屏与上位机PC之间切换控制!
发布时间:2026-02-01        浏览次数:0        返回列表

触摸屏与上位机 PC 切换控制 PLC(工业通用方案)

你想实现的是触摸屏(HMI)和上位机 PC(如工控机 / 电脑)对同一台 PLC 的控制权切换(避免同时操作导致设备误动作),核心是通过「硬件切换开关 + PLC 权限逻辑 + 通讯互锁」实现控制权的独占管理,适配西门子、台达、三菱、欧姆龙等主流 PLC,以及威纶通、昆仑通态、西门子精智面板等触摸屏,上位机支持组态软件(WinCC / 组态王 / 力控)、C#/Python 自定义程序、LabVIEW 等。

以下方案包含核心逻辑设计、硬件选型、PLC 程序编写、触摸屏 / 上位机配置,兼顾「手动切换」和「自动切换」两种场景,满足工业现场 “本地触摸屏操作 / 远程上位机监控” 的核心需求。

一、核心设计原则(避免冲突的关键)

  1. 权限独占:同一时间仅允许「触摸屏」或「上位机」其中一方拥有控制权,另一方仅能监控(只读);

  2. 状态可视:双方实时显示当前控制权归属(如触摸屏指示灯、上位机弹窗),切换时有明确提示;

  3. 切换安全:切换前自动停止 PLC 输出(或确认设备处于安全状态),避免切换过程中误操作;

  4. 通讯兼容:基于 PLC 原有通讯链路(以太网 / 串口),无需额外增加通讯模块,降低成本。

二、核心方案:硬件切换 + PLC 逻辑互锁(工业最通用)

适用场景

所有品牌 PLC / 触摸屏 / 上位机,优先推荐(可靠性最高,避免软件故障导致切换失效),核心通过物理选择开关(本地 / 远程)触发 PLC 权限逻辑,实现控制权切换。

1. 硬件配置(极简,仅需 1 个开关)

硬件作用说明
选择开关2 档自锁开关(如旋钮开关,安装在触摸屏旁),接 PLC 输入点(如 X0.0):→ 档位 1(本地):X0.0=OFF,触摸屏拥有控制权;→ 档位 2(远程):X0.0=ON,上位机拥有控制权;
PLC核心逻辑处理,根据 X0.0 状态屏蔽 / 放行触摸屏 / 上位机的控制指令
触摸屏显示控制权状态,仅在 “本地” 模式下可操作按钮 / 输入框,“远程” 模式下仅显示数据
上位机显示控制权状态,仅在 “远程” 模式下可下发控制指令,“本地” 模式下只读

2. 核心逻辑(以台达 DVP PLC 为例,通用所有品牌)

PLC 中定义「控制权标志位」,根据选择开关状态,仅允许对应设备的控制指令生效,另一方指令被屏蔽。

(1)变量定义(符号表,便于调试)

符号名地址类型功能说明
Ctrl_SwitchX0.0BOOL控制权选择开关(OFF = 本地 / 触摸屏,ON = 远程 / 上位机)
HMI_ControlM0.0BOOL触摸屏控制权有效标志(1 = 有效)
PC_ControlM0.1BOOL上位机控制权有效标志(1 = 有效)
HMI_OutputM1.0~M1.7BOOL触摸屏下发的控制指令(如启动、停止、复位)
PC_OutputM2.0~M2.7BOOL上位机下发的控制指令(与触摸屏指令一一对应)
PLC_Real_OutputY0.0~Y0.7BOOLPLC 实际输出(驱动接触器 / 电机等)
Ctrl_StateD100WORD控制权状态反馈(0 = 本地,1 = 远程),供触摸屏 / 上位机显示

(2)PLC 核心梯形图程序(台达 WPLSoft,通用所有品牌)

ladder

// 程序段1:控制权标志位赋值(根据选择开关)
LD  NOT Ctrl_Switch (X0.0)  // 开关=本地(X0.0=OFF)
OUT HMI_Control (M0.0)      // 触摸屏控制权有效
RST PC_Control (M0.1)       // 上位机控制权无效

LD  Ctrl_Switch (X0.0)      // 开关=远程(X0.0=ON)
OUT PC_Control (M0.1)       // 上位机控制权有效
RST HMI_Control (M0.0)      // 触摸屏控制权无效

// 程序段2:控制权状态反馈(供触摸屏/上位机显示)
LD  HMI_Control (M0.0)
MOV K0, Ctrl_State (D100)   // D100=0 → 本地/触摸屏

LD  PC_Control (M0.1)
MOV K1, Ctrl_State (D100)   // D100=1 → 远程/上位机

// 程序段3:输出互锁(仅有效侧的指令能驱动实际输出)
// 示例:启动指令(触摸屏M1.0,上位机M2.0,实际输出Y0.0)
LD  HMI_Control (M0.0)
AND HMI_Output (M1.0)       // 触摸屏控制有效时,取触摸屏启动指令
OR
LD  PC_Control (M0.1)
AND PC_Output (M2.0)        // 上位机控制有效时,取上位机启动指令
OUT PLC_Real_Output (Y0.0)  // 驱动实际输出

// 其他指令(停止、复位等)同理,复制上述逻辑即可
LD  HMI_Control (M0.0)
AND M1.1
OR
LD  PC_Control (M0.1)
AND M2.1
OUT Y0.1

3. 触摸屏配置(以威纶通 MT 系列为例)

(1)状态显示

  • 添加「文本显示控件」,关联 PLC 的 D100:表达式设置:D100==0?"当前控制权:本地(触摸屏)":"当前控制权:远程(上位机)"

  • 添加「指示灯控件」,分别显示 “本地有效”(关联 M0.0)、“远程有效”(关联 M0.1)。

(2)操作权限屏蔽

  • 所有控制按钮(启动、停止等)添加「权限条件」:按钮属性→「可见 / 启用」→ 启用条件:M0.0==1(仅触摸屏控制权有效时,按钮可点击);

  • 输入框(如参数设置)同理,启用条件:M0.0==1,否则灰显不可输入。

4. 上位机配置(以 WinCC 为例,通用所有组态软件 / 自定义程序)

(1)状态显示

  • 添加「静态文本」,关联 PLC 的 D100,显示控制权状态;

  • 添加「指示灯」,关联 M0.0/M0.1,显示当前有效权限。

(2)操作权限屏蔽

  • 所有控制按钮 / 输入框添加「禁用条件」:按钮属性→「禁用」→ 条件:M0.1!=1(仅上位机控制权有效时,按钮可点击);

  • 自定义程序(C#/Python):发送控制指令前,先读取 M0.1 状态,仅当 M0.1=1 时才下发指令,否则弹窗提示 “无控制权”。

三、进阶方案:软件切换(无硬件开关,远程操作)

适用场景

需远程切换控制权(如上位机远程操作),无需现场物理操作开关,核心通过「触摸屏 / 上位机的切换按钮」触发 PLC 逻辑,需增加「防误触确认」(避免误操作)。

1. 核心逻辑(在硬件方案基础上修改)

(1)新增变量

符号名地址类型功能说明
HMI_Switch_ReqM3.0BOOL触摸屏发起的切换请求(点动)
PC_Switch_ReqM3.1BOOL上位机发起的切换请求(点动)
Switch_/confirm/iM3.2BOOL切换确认(需双方无操作时触发)

(2)PLC 程序补充(软件切换逻辑)

ladder

// 程序段4:触摸屏发起切换请求(切换到远程)
LD  HMI_Switch_Req (M3.0)
AND NOT PLC_Real_Output (Y0.0)  // 设备停止时才能切换
OUT Switch_/confirm/i (M3.2)
SET Ctrl_Switch (X0.0)          // 模拟开关=ON,切换到远程

// 程序段5:上位机发起切换请求(切换到本地)
LD  PC_Switch_Req (M3.1)
AND NOT PLC_Real_Output (Y0.0)  // 设备停止时才能切换
OUT Switch_/confirm/i (M3.2)
RST Ctrl_Switch (X0.0)          // 模拟开关=OFF,切换到本地

// 程序段6:切换确认反馈(供触摸屏/上位机显示)
LD  Switch_/confirm/i (M3.2)
TON T37, 20  // 确认提示2s
LD  T37
RST Switch_/confirm/i (M3.2)
RST HMI_Switch_Req (M3.0)
RST PC_Switch_Req (M3.1)

(3)触摸屏 / 上位机配置

  • 触摸屏添加「切换到远程」按钮:按钮动作:置位 M3.0(仅当设备停止时按钮启用),点击后弹窗提示 “切换请求已发送,请等待确认”;

  • 上位机添加「切换到本地」按钮:按钮动作:置位 M3.1(仅当设备停止时按钮启用),弹窗提示切换状态;

  • 核心约束:仅当设备处于停止状态(Y0.0=OFF)时,才能发起软件切换,避免切换过程中设备误动作。

四、通讯层面优化(避免数据冲突)

触摸屏和上位机均通过同一 PLC 通讯链路(以太网 / 串口)读写数据,需注意:

  1. 通讯优先级:无特殊优先级,PLC 以「扫描周期」为基准处理数据,只要逻辑层做好互锁,通讯层面不会冲突;

  2. 数据刷新频率

    • 触摸屏:本地模式下刷新频率设为 500ms(保证操作响应),远程模式下设为 1s(仅监控);

    • 上位机:远程模式下刷新频率设为 500ms,本地模式下设为 1s;

  3. 避免重复写同一寄存器

    • 触摸屏仅写「M1.0~M1.7」(触摸屏指令区),上位机仅写「M2.0~M2.7」(上位机指令区);

    • PLC 实际输出仅由「M0.0/M0.1」互锁后驱动,杜绝双方同时写 Y 寄存器。

五、不同品牌适配要点

1. 西门子 PLC(S7-1200/1500/200SMART)

  • 变量定义:用「数据块(DB)」替代 M 寄存器(如 DB1.DBX0.0 = 触摸屏控制权),更规范;

  • 逻辑指令:用「LAD/FBD」编写,核心互锁逻辑一致,仅指令格式不同;

  • 触摸屏(精智面板):通过「画面权限」+「变量触发」屏蔽按钮,无需额外配置。

2. 三菱 FX PLC

  • 变量定义:用「M 寄存器」即可,逻辑与台达一致;

  • 指令:用「LD/AND/OR/OUT」等基本指令,无差异;

  • 触摸屏(三菱 GT 系列):按钮「启用条件」关联 M0.0,简单配置即可。

3. 上位机自定义程序(C#/Python)

  • 读取 PLC 的 M0.1 状态,仅当 M0.1=1 时,才允许发送控制指令;

  • 发送指令前增加「权限校验」,若 M0.1=0,弹窗提示 “当前为本地控制权,无法操作”;

  • 示例(Python+pyModbusTCP):

    python

  • from pyModbusTCP.client import ModbusClient
    
    c = ModbusClient(host="192.168.1.10", port=502)c.open()# 读取上位机控制权标志位M0.1(对应PLC寄存器地址需根据品牌调整)pc_control = c.read_coils(1, 1)[0]  # 假设M0.1对应线圈地址1if pc_control:
        # 有权限,发送启动指令(写M2.0=1)
        c.write_single_coil(16, True)  # M2.0对应线圈地址16
        print("启动指令已发送")else:
        print("无控制权,当前为本地模式")c.close()

核心总结

触摸屏与上位机切换控制的核心是「逻辑互锁 + 权限独占」,优先推荐「硬件开关 + PLC 互锁」方案(可靠性最高),关键要点:

  1. 物理开关 / 软件请求触发 PLC 的控制权标志位(M0.0/M0.1);

  2. PLC 所有实际输出(Y 寄存器)必须通过标志位互锁,仅允许有效侧的指令生效;

  3. 触摸屏 / 上位机的操作控件需添加「启用条件」,关联对应标志位,避免无效操作;

  4. 软件切换需增加「设备停止」约束,杜绝切换过程中误动作。

该方案适配所有品牌 PLC / 触摸屏 / 上位机,仅需修改变量地址和指令格式,核心逻辑完全通用,落地时重点做好「互锁覆盖所有输出」和「状态显示实时同步」,即可实现安全、稳定的控制权切换。

收缩
  • QQ咨询

  • 电话咨询

  • 18576370666
  • 添加微信客服