Write Tag Bit 修改位

Write Tag Bit(修改位)是交互类点击行为:用户在导出页面上点击该图形时,它只修改整数标签中的某一位,其余位保持不变。适合一个整数寄存器承载多个开关位的场景。行为内部会完成“读当前整数 → 用位序号生成掩码 → 置位/复位/取反 → 把新整数沿同一条写入通道写回”。它和 Write Tag 的区别是:Write Tag 写入整条标签的值,Write Tag Bit 只修改其中一位。只有用户实际点击时才会触发。

交互

交互: Write Tag Bit 修改位

点击时只改整数标签里的某一位(置位/复位/取反),其余位保持不变,写值仍走宿主机的统一写入通道。

功能说明

Write Tag Bit(修改位)是交互类点击行为:用户在导出页面上点击该图形时,它只修改整数标签中的某一位,其余位保持不变。适合一个整数寄存器承载多个开关位的场景。行为内部会完成“读当前整数 → 用位序号生成掩码 → 置位/复位/取反 → 把新整数沿同一条写入通道写回”。它和 Write Tag 的区别是:Write Tag 写入整条标签的值,Write Tag Bit 只修改其中一位。只有用户实际点击时才会触发。

使用方法:编辑器里要填的字段

在图形上添加 Write Tag Bit 行为后,弹出的编辑器分三块:General(基本)、Interaction Setup(交互设置)、Options(选项)。逐项填写:

  • Behavior Name 行为名称:给这个行为起个备注名,便于后期辨认。
  • Component Name 组件名称:当前图形名,只读、不可改。
  • Setup Script 准备脚本(Definition):可选。在这里先算好要用的变量或辅助逻辑,留空也行。
  • Tag 标签:要写的目标标签,必须填承载这些位的“父整数标签”,不要在这里加位下标。纯标签名可不加引号;用变量时按表达式写。
  • Bit Index 位序号:要改第几位,可选范围 0-31。Bit 0 是最低位(最右边那一位)。
  • Bit Action 位动作:Set 置位(置 1)/ Reset 复位(置 0)/ Toggle 取反(0、1 互换),三选一。
  • Use FORCE mode 使用 FORCE 模式:勾选后按强制方式下发本次写入;不确定就保持不勾。
  • Condition 条件(Enabled):相当于开关,结果为 true 才执行、false 则跳过本次点击。
  • Options 选项:Show hand cursor when enabled(启用时显示手型光标)、Use bold border when enabled(启用时加粗描边)、Hide when disabled(禁用时隐藏)。
Tag:        PLC1.PUMP.CTRL_WORD
Bit Index:  3
Bit Action: Toggle
Condition:  ReadTagBoolean("PLC1.PUMP.REMOTE", false)

适用场景

典型场景:一个控制字(control word)整数里按位放了多个开关位。

  • “启动/停止”按钮:用 Toggle 翻转控制字里的运行位,一个按钮在线启停。
  • 复位某个报警确认位:用 Reset 把指定位清零;或用 Set 把使能位置 1。
  • 想用条件限制点击时机时,在 Condition 里判断(例如只在远程模式下才允许翻位)。

注意事项与常见错误

常见误区:

  • Tag 要填承载这些位的父整数标签,不要在标签名后面再追加 [位号],位号由 Bit Index 单独指定(位下标 [0..31] 那种写法是读取时用的,写位不用)。
  • 位序号从 0 起算、Bit 0 是最低位;范围 0-31,不要按“第 1 位”去想。
  • 写入不一定立即生效:宿主机可能加权限校验、二次确认、原因填写或异步处理,不要假设“点了就一定成功、一定同步”。
  • Condition 留空时默认按 true 处理(会执行)。
Write Tag Bit 修改位行为编辑器
图示 1: Write Tag Bit 编辑器

选父整数标签和 Bit Index,按 Set / Reset / Toggle 只改其中一位,其余位不变。