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

西门子(SIEMENS)服务商    

框架断路器、塑壳断路器、隔离开关、软启动、变频器、电机 、PLC、触摸屏

联系方式
  • 联系人:吴经理
  • 电话:18576370666
新闻分类
  • 暂无分类
站内搜索
 
首页 > 新闻中心 > 西门子触摸屏中给变量赋值用哪个函数?
新闻中心
西门子触摸屏中给变量赋值用哪个函数?
发布时间:2026-01-03        浏览次数:42        返回列表

西门子触摸屏(如 WinCC Flexible/WinCC Unified)中给变量赋值的函数,核心分基础赋值(直接写值) 和脚本赋值(动态 / 条件赋值) 两类,不同触摸屏软件版本(经典版 / Unified 版)函数名称略有差异,但逻辑一致,以下是最常用的函数及实操示例。


一、核心赋值函数(按软件版本分类)

1. WinCC Flexible(经典版,如 Smart Line/TP700 Comfort)

这是西门子主流触摸屏(Smart 700/1000、TP/MP 系列)的编程软件,赋值分两种场景:

(1)基础赋值(无脚本,直接组态)

无需写函数,通过 “按钮 / 输入域” 的 “事件 - 动作” 直接赋值,是最常用的方式:

  • 适用场景:固定值赋值(如按钮按下给变量设 1/0);

  • 操作步骤:

    1. 新建按钮,双击→“事件”→“按下鼠标”→“添加动作”;

    2. 选择 “直接赋值”,左侧选目标变量(如 PLC 的 DB1.DBW0),右侧输入赋值(如 100);

    3. 确认后,按钮按下时变量会被赋值为设定值。

(2)VBS 脚本赋值(动态 / 条件赋值)

需写 VBS 脚本,核心函数是 SetTagXXX(按变量类型区分),支持条件判断、运算后赋值:

函数名功能适用变量类型示例
SetTagBit给布尔变量赋值位变量(BOOL)SetTagBit("Motor_Run", True) → 给变量 Motor_Run 赋值 True(1)
SetTagWord给字变量赋值16 位整数(INT/UINT)SetTagWord("Speed_Set", 500) → 给速度设定值赋值 500
SetTagDWord给双字变量赋值32 位整数(DINT/UDINT)SetTagDWord("Position", 10000) → 给位置变量赋值 10000
SetTagFloat给浮点变量赋值浮点数(REAL)SetTagFloat("Temperature", 25.5) → 给温度变量赋值 25.5

脚本示例(按钮按下赋值)

vbscript

' 按下按钮,先判断变量值,再赋值
If GetTagWord("Speed_Set") < 1000 Then ' 读取当前值
    SetTagWord("Speed_Set", 1000) ' 赋值为1000
Else
    SetTagWord("Speed_Set", 0) ' 否则赋值为0
End If

2. WinCC Unified(新一代,如 TP700 Unified)

基于 TIA Portal 的 Unified 触摸屏,使用 Javascript 脚本,核心赋值函数为 setValue

  • 核心函数:Session.Scopes("变量路径").setValue(值)

  • 示例:

javascript

运行

// 给布尔变量赋值Session.Scopes("PLC1.DB1.DBX0.0").setValue(true);// 给整数变量赋值Session.Scopes("PLC1.DB1.DBW2").setValue(200);// 运算后赋值(如当前值+10)let current = Session.Scopes("PLC1.DB1.DBW2").getValue();Session.Scopes("PLC1.DB1.DBW2").setValue(current + 10);

3. 特殊场景:间接赋值(变量地址动态变化)

若需按条件给不同变量赋值(如选择不同工位赋值),用SetTagMulti函数(仅 Flexible 支持):

vbscript

' 同时给多个变量赋值
Dim Tags(1,1) ' 定义数组:行=变量名,列=值
Tags(0,0) = "DB1.DBW0" : Tags(0,1) = 100
Tags(1,0) = "DB1.DBW2" : Tags(1,1) = 200
SetTagMulti Tags ' 批量赋值

二、关键使用要点

  1. 变量类型匹配

    • 布尔变量只能用SetTagBit/setValue(true/false),不能赋值数字(如 1/0 需转 True/False);

    • 数值变量赋值时,值不能超过变量量程(如 INT 变量最大 32767,赋值 32768 会报错)。

  2. 变量路径正确

    • PLC 变量需写完整路径(如"PLC_1.DB1.DBW0"),本地变量直接写名称(如"Local_Temp");

    • 确保触摸屏与 PLC 的变量关联正确(下载变量表后再赋值)。

  3. 触发时机

    • 按钮按下 / 释放、定时器触发、画面加载、变量变化等事件均可触发赋值;

    • 避免频繁赋值(如 100ms 一次),防止通讯拥堵。


三、常见错误与排查

错误现象原因解决方法
赋值后变量值不变变量路径错误、PLC 通讯中断核对变量路径;检查触摸屏与 PLC 的通讯状态
脚本报错 “类型不匹配”赋值类型与变量类型不符如 BOOL 变量赋值 1→改为 True,REAL 变量赋值整数→加小数点(如 25→25.0)
批量赋值失败SetTagMulti数组格式错误数组需按 “变量名 - 值” 成对定义,下标从 0 开始

总结

  1. 基础赋值:WinCC Flexible 直接用 “直接赋值” 动作(无函数),Unified 版直接组态即可;

  2. 脚本赋值:Flexible 用SetTagBit/Word/DWord/Float,Unified 用setValue

  3. 核心原则:变量类型匹配、路径正确、触发时机合理,避免通讯或类型错误。

收缩
  • QQ咨询

  • 电话咨询

  • 18576370666
  • 添加微信客服