趋势中的index、numitems、itemvisible属性的具体用法

我现在打算只做一张趋势,可以增加笔,减少笔,在上面可以做趋势分析,因此我想知道如何获得趋势的某个曲线,属性里的index不知道怎么用,例如趋势上有好多根曲线,A、B、C。。。
 如果我要把A曲线删掉,而不是隐藏掉,应该怎么做,怎么获取A曲线的唯一属性。
 帮助中的deletedata也不明白是啥意思。

 下面的脚本中,我用了两个LISTBOX控件
 第一个控件放满所有的需要显示的变量曲线名
 第二个控件用来装“添加”进来的笔
 趋势中显示第二个控件里的笔

 增加笔的脚本

 Dim lstListBox
 Dim lstListBox1
 Dim trend
 Dim listtext
 Set trend= ScreenItems("控件2")
 trend.NumItems=trend.NumItems+1
 Set lstListBox = ScreenItems("listbox")
 Set lstListBox1 = ScreenItems("listbox1")
 If lstListBox.listindex=0 Then
 lstListBox1.AddItem "1_listbox_Field"
 trend.TagName="AI\NewTag"
 trend.color=RGB(255, 0, 0)
 trend.write
 End If

 减少笔的脚本

 Dim trend
 Dim lstListBox
 Dim lstListBox1
 Set trend= ScreenItems("控件2")
 Set lstListBox = ScreenItems("listbox")
 Set lstListBox1 = ScreenItems("listbox1")
 lstListBox1.RemoveItem lstListBox1.listindex
 MsgBox ActiveDocument.Selection(1).ObjectName
 If lstListBox1.selected(0)=True Then
 trend.index = 0
 If trend.index = 0 Then
 trend.ItemVisible = 0'这样写无法实现功能
 End If
 End If
 但是将趋势控件的NUMITEMS减小也不对
 因为当我添加A、B\、C三条曲线时,我是将NUMITEMS增加,因此INDEX的顺序是0、1、2。删除的时候它就以2、1、0的顺序删除,而不是我想删除哪个就删除哪个。
 请高手给我点思路。非常感谢!
 

问题补充:
我是第二种思路,还烦您多解释一下,不是特别清楚你的意思
 你意思是不是我添加的时候 一次性添加4个 移动到BOX2 删除的时候再清空BOX2 同时添加3个?

最佳答案

1、如果你的多条曲线同时只显示一条,根本就不必去关心添加删除问题,趋势控件只需要预先设置一条曲线,通过脚本控制其TagName就可以达到目的。

  2、如果添加ABC三条曲线,且三条曲线都要显示,而且还要实现动态删除,这样稍微麻烦一点,思路如下:
  2.1   删除曲线只用来更新ListBox1的内容
  2.2  曲线的内容根据ListBox1的内容来更新,需要编写一个遍历程序
      trend.NumItems= lstListBox1.ListCount  '#重新设置曲线的数量
      For i=0 To (lstListBox1.ListCount-1)
   trend.Index=i
   trend.TagName = lstListBox1.List(i)  '#将Listbox的内容添加为曲线名称
          Next
 --------------------------------------------------------
 比方原有A、B、C三条曲线,,现在要删除B:
 你原来的思路是想办法获取B曲线,然后删除它。
 我的思路是直接重新设置趋势控件的内容,NumItems=2,第一条为A,第二条为C,也就相当于把B删除了。
 不知道我表达清楚了没有,呵呵。

提问者对于答案的评价:
非常感谢大师的解答,您对我的恩情,我永远不会忘啊!
 我把正确答案附下:
 增加笔:
 Dim lstListBox,lstListBox1
 Dim trend
 Set trend= ScreenItems("控件2")
 Set lstListBox = ScreenItems("listbox")
 Set lstListBox1 = ScreenItems("listbox1")

 If lstListBox.text<>"" Then
  lstListBox1.AddItem lstListBox.Text
  lstListBox.RemoveItem lstListBox.ListIndex
 End If 

 Dim  i,TrendColor(3)
 TrendColor(0) = vbRed
 TrendColor(1) = vbBlue
 TrendColor(2) = vbYellow
 TrendColor(3) = vbCyan
 trend.NumItems = lstListBox1.ListCount
 For i=0 To (lstListBox1.ListCount-1)
  trend.Index=i
  trend.Color=TrendColor(i)
  trend.TagName = lstListBox1.List(i) 
 Next
 trend.Command="Reload"
 减少笔:
 Dim lstListBox
 Dim lstListBox1
 Dim trend
 Dim listtext
 Set trend= ScreenItems("控件2")
 Set lstListBox = ScreenItems("listbox")
 Set lstListBox1 = ScreenItems("listbox1")
 If lstListBox1.text<>"" Then
  lstListBox.AddItem lstListBox1.Text
  lstListBox1.RemoveItem lstListBox1.ListIndex
 End If

 Dim  i,TrendColor(3)
 TrendColor(0) = vbRed
 TrendColor(1) = vbBlue
 TrendColor(2) = vbYellow
 TrendColor(3) = vbCyan
 trend.NumItems = lstListBox1.ListCount
 For i=0 To (lstListBox1.ListCount-1)
  trend.Index=i
  trend.Color=TrendColor(i)
  trend.TagName = lstListBox1.List(i)
 Next
 trend.Command="Reload"

 

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc271238.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日
下一篇 2019年6月11日

相关推荐

  • 局域网中主机访问虚拟机中WEB服务器

    我在虚拟机(WIN10 企业版LTSC)安装了WINCC 7.5SP1版,一并安装了WEB发布服务器,虚拟机网络是桥接模式,与局域网中主机是同一网段,并PING…

    SIMATIC WinCC 2021年7月5日
  • wincc中实现线性拟合、假设检验等数学问题

    用wincc编个系统,接收一组数据,需要分析这组数据的拟合直线的斜率(就是看它们的增长速度),再进行假设检验等功能。目前想到的是调用matlab。查到几种方法,DDE、OPC以及做…

    SIMATIC WinCC 2019年6月11日
  • wincc 7.0 完整的下载安装

    还有安装步骤啊  跪求 最佳答案 3. 支持的操作系统和软件需求WinCC 单站系统和客户端: Microsoft Wi…

    SIMATIC WinCC 2018年12月7日
  • CPU224和触摸屏TP177B通讯

    CPU224和触摸屏TP177B的通讯线是怎么做的,脚位怎么连的?我用的DP头但是连不上。一直显示#### 最佳答案 用 DP 头加 DP …

    SIMATIC WinCC 2019年6月11日
  • 关于博图HMI画面组态的几个问题

    最近项目用到博图软件,我安装另外V14版,PLC是315-2PN/DP,使用过程中遇到以下几个问题:1、HMI组态,能不能像WinCC Flexible那样自由定义结构变…

    SIMATIC WinCC 2017年6月10日
  • WINNC中怎么插入三维动画

    各位高手,我做了个三维动画WMV格式,在WINCC中实现入下功能:     做一个按,点击按钮就能把动画显示出来 问题补充:窗口中…

    SIMATIC WinCC 2019年6月11日
  • WinCC 无法创建新项目

    我把之前的7.0卸了然后安装完WinCC 7.2,运行没问题,可是要创建新项目他就提示我,“没有注册类 无法创建项目”,整半天我也没弄明白。 问题补充:必须重做…

    2017年8月26日
  • 谁用过 wincc v6.0 sp3 +step 7 v5.4

    问题补充:wincc 文档写的… 现在就是通讯不正常啊.找不出别的问题了. 最佳答案 我用过,据西门子热线回复,Step7 V5.4是和WinCC…

    SIMATIC WinCC 2019年6月11日
  • 变量记录问题

    通过变量记录跟踪一个变量并以总和的形式显示在报表中,为何显示始终是其实际值而不是总和值? 最佳答案 如果采集周期和归档周期一致,记录的就是实际采集的数据。 如果归档周期比…

    SIMATIC WinCC 2019年6月11日
  • 在面板上创建时间框

    我想在TP277上做一个画面,上面能显示当前时间,同时想在该面板上建一按钮,连接到另一画面,需要输入密码,输入之后在里面能够修改当前的时间。 问题补充:还是不太明白,望再细讲一点 …

    SIMATIC WinCC 2019年6月11日