首页 上一页 1 2 3 下一页 尾页

博途精致HMI曲线的研究 点击:4259 | 回复:52



fengge11

    
  • 精华:1帖
  • 求助:0帖
  • 帖子:11帖 | 279回
  • 年度积分:0
  • 历史总积分:185
  • 注册:2013年12月25日
发表于:2023-08-11 13:40:32
楼主

我们在做西门子触摸屏的曲线时往往没有国产触摸屏来的方便,最近偶然得知西门子屏做曲线时,可以用一个控件去显示多个变量的趋势,于是自己实验了一番。

1、首先这几个内部变量image.png

2、做一个VB脚本(用于按钮动作)image.png

3、做一个控件设置好对应的内部变量image.png

4、做一个按钮用于对变量的赋值image.png

5、最终成果可以随意切换变量在趋势图上显示image.png

现在为一个不好的地方,从上一个趋势切换到下一个趋势时,两个变量的数据在同一个趋势里显示,从时间上时有衔接的。有没有好的办法可以将他们用一个控件独立调用显示,互相不干扰(多控件的办法就先不用研究了)



楼主最近还看过



池鱼

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 7回
  • 年度积分:0
  • 历史总积分:53
  • 注册:2017年5月27日
发表于:2024-06-04 10:26:33
41楼

xx谢谢楼主分享,实用技术

回复本条

    

自动化HD

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 19回
  • 年度积分:0
  • 历史总积分:74
  • 注册:2024年6月22日
发表于:2024-06-24 14:08:42
42楼

我的水平还没到,看不懂

回复本条

    

coolninai

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 64回
  • 年度积分:27
  • 历史总积分:175
  • 注册:2012年5月03日
发表于:2024-12-03 12:05:30
43楼

了解一下

回复本条

    

星辰似海丶

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 242回
  • 年度积分:45
  • 历史总积分:231
  • 注册:2021年3月27日
发表于:2025-02-15 16:35:13
44楼

厉害了

回复本条

    

光电隔离

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 32回
  • 年度积分:43
  • 历史总积分:2443
  • 注册:2020年5月23日
发表于:2025-03-29 08:53:58
45楼

不错,学 习了。

回复本条

    

卯丁

  • 精华:0帖
  • 求助:1帖
  • 帖子:10帖 | 107回
  • 年度积分:0
  • 历史总积分:196
  • 注册:2020年1月06日
发表于:2025-05-29 09:22:42
46楼

学习了,厉害

之前我都是用多控件

回复本条

    

qila

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 252回
  • 年度积分:88
  • 历史总积分:1346
  • 注册:2000年1月01日
发表于:2025-07-03 10:44:18
47楼

非常好的分享

回复本条

    

skyFrank

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 40回
  • 年度积分:26
  • 历史总积分:57
  • 注册:2013年2月24日
发表于:2025-07-09 23:12:34
48楼

赚积分,努力学习中。。。

回复本条

    

tzhuang

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:993
  • 历史总积分:993
  • 注册:2013年7月01日
发表于:2025-07-11 09:51:59
49楼

AI生成的答案,没有验证,思路不错,供参考

通过按钮切换趋势控件显示不同曲线变量的实现方法

方法一:使用VBS脚本(适用于WinCC/ProfiChart

创建趋势控件:

 

在画面中放置趋势控件

配置初始的趋势曲线变量

创建切换按钮:

 

在画面上添加多个按钮控件

为每个按钮分配不同的功能(如"显示温度""显示压力"等)

编写VBS脚本:

   

' 在按钮的点击事件中添加如下脚本

Sub OnClick(ByVal Item)

   Dim objTrendControl

   ' 获取趋势控件对象

   Set objTrendControl = HMIRuntime.ActiveScreen.ScreenItems("TrendControl1")

  

   ' 根据按钮切换不同的变量

   Select Case Item.Name

      Case "Button1"  ' 显示第一组变量

         objTrendControl.TrendIndex = 0  ' 选择第一条曲线

         objTrendControl.TrendTagName = "Variable1"  ' 设置变量名

      Case "Button2"  ' 显示第二组变量

         objTrendControl.TrendIndex = 0

         objTrendControl.TrendTagName = "Variable2"

      ' 可以添加更多Case

   End Select

End Sub

For code that is intended to be used in Siemens products or services, the code generation features of our AI Services may only be used after prior approval of your responsible organizational unit.

方法二:使用动态属性(适用于多数西门子HMI系统)

配置多个变量:

 

在趋势控件中预先配置多个趋势曲线,每条曲线绑定不同的变量

将初始不需要显示的曲线设置为不可见

创建按钮并配置动态属性:

 

添加多个按钮

在按钮的点击事件中,设置相应曲线的可见性属性

示例配置:

 

按钮1点击事件:设置曲线1可见,曲线23不可见

按钮2点击事件:设置曲线2可见,曲线13不可见

按钮3点击事件:设置曲线3可见,曲线12不可见

方法三:使用变量索引方法

创建一个整型变量(如"CurveSelector")用于控制当前显示的曲线

 

配置趋势控件:

 

设置趋势控件的数据源为间接变量,使用索引方式

配置变量地址为基本变量名+索引变量(如"Temperature[CurveSelector]"

配置按钮:

 

每个按钮点击时修改"CurveSelector"的值

按钮1:设置CurveSelector=0

按钮2:设置CurveSelector=1

以此类推

实施建议

确保所有需要显示的变量都已正确配置存档

测试每个按钮功能,确保切换正常

考虑添加视觉反馈,如当前选中的按钮高亮显示

如果曲线数量较多,可考虑使用下拉列表代替多个按钮


回复本条

    

qila

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 252回
  • 年度积分:88
  • 历史总积分:1346
  • 注册:2000年1月01日
发表于:2025-07-11 10:00:23
50楼

非常好

回复本条

    

skyFrank

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 47回
  • 年度积分:39
  • 历史总积分:70
  • 注册:2013年2月24日
发表于:2025-07-11 17:40:33
51楼

感谢楼主分享,赚积分中。。。

回复本条

    

luoluoluowei

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 203回
  • 年度积分:15
  • 历史总积分:95
  • 注册:2019年7月19日
发表于:2025-07-23 13:34:19
52楼

支持一下支持一下

回复本条

    

热门招聘
相关主题

官方公众号

智造工程师
    
    首页 上一页 1 2 3 下一页 尾页