如何能快速或者自动 使大量iofield等组件与变量关联

变量与iofield等组件多了 工作量很大 如何能快速或者自动 使大量iofield等组件与变量关联

最佳答案

我一般用以下两种方法:

1、新建一个对象,组态好变量连接、脚本等,复制大量相同对象,使用对象的 Linking -> Tag Connections -> Find and Replace 来替换掉对象变量连接、脚本中的变量。
该方法比较简单,当变量名有规律时组态时间短,具体可参考:
《WINCC中的C动作可以复制吗?》
http://www.ad.siemens.com.cn/service/answer/solution.asp?Q_id=66056&cid=1032

2、对于编程工程师提给的变量 Excel 文件,变量较多时使用上一种方法组态费时,可以使用 Graphics Designer 的 VBA 即 Macro 功能。
在 Graphics Designer 中选择 Tools -> Macros -> Visual Basic Editor,或者 Alt+F11 打开宏编辑环境,该环境与 Excel 的宏环境类似。需要有一定的 VBA 基础,下面贴出一个简单的例程。在 D:\test1.xls 工作簿的 sheet2 工作表中,第一列为 I/O 区域含义文本,第二列为 I/O 区域直连变量。
Sub CreateIOField()
Dim objStaticText As HMIStaticText
Dim objIOField As HMIIOField
Dim objVariableTrigger As HMIVariableTrigger
Set Excel_1 = CreateObject("excel.application")
Excel_1.Workbooks.Open "D:\test1.xls"
Set wksheet = Excel_1.Sheets("sheet2")
j = 30
K = 5
For i = 1 To 41
If wksheet.cells(i, 2).value <> "" Then
    Set objStaticText = ActiveDocument.HMIObjects.AddHMIObject("0_MyText" & i, "HMIStaticText")
    With objStaticText
    .Text = wksheet.cells(i, 1).value
    .Left = j
    .Top = K
    .Layer = 19
    .AdaptBorder = True
    End With
    Set objIOField = ActiveDocument.HMIObjects.AddHMIObject("0_MyIOField" & i, "HMIIOField")
    With objIOField
    .Left = j + 200
    .Top = K
    .Width = 45
    .Height = 21
    .OutputFormat = 999.9
    End With
Set objVariableTrigger = objIOField.OutputValue.CreateDynamic(hmiDynamicCreationTypeVariableDirect, wksheet.cells(i, 2))
    With objVariableTrigger
    .CycleType = hmiVariableCycleTypeOnChange
    End With
K = K + 22
End If
Next
Excel_1.Workbooks.Close
Excel_1.Quit
Set wksheet = Nothing
Set Excel_1 = Nothing
End Sub

3、WinCC Add-On 也提供类似工具。
《在何处能够找到 WinCC 的附加软件和其他有用工具的信息?》
http://support.automation.siemens.com/CN/view/zh/17544346

提问者对于答案的评价:
谢谢 我试试

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

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

相关推荐

  • 请问触摸屏PDZ文件和PACK&GO是什么?

    请问各位前辈触摸屏PDZ文件和PACK&GO是什么?是不是所有的触摸屏都是只有勾了回传和安装SD卡才能回传源组态吗?谢谢了! 最佳答案 那些操作面板支持上载,链接:http://w…

    SIMATIC WinCC 2017年6月29日
  • wincc smart v3.

    wincc flexible smart v3.sp2安装到最后一步提示最后的那个软件包错误,,怎么回事?软件也能用 最佳答案 1、操作系统兼容性,不…

    SIMATIC WinCC 2021年7月5日
  • WinCC使用NTP方式时间同步

    WinCC使用NTP方式进行时间同步怎么弄的?WinCC如果长时间和PLC时间没有同步会影响他们之间的通讯吗 最佳答案 WinCC如果长时间和PLC时间没有同步会影响他们之间的通讯…

    SIMATIC WinCC 2019年6月11日
  • wincc 用户归档问题

    我要用用户归档记录一批数据,用C语言做好了触发按钮,PLC程序控制按钮,都做好了,但是画面需翻到那一个页面才会记录,有谁知道如果不在这个画面,也能记录啊,这个问题怎么解决? 最佳答…

    SIMATIC WinCC 2018年12月14日
  • 博图软件中西门子触摸屏画面如何实现输入数字自动跳转到对应的画面

    比如我输入1对应的是M1电机画面,输入20对应的是M20画面,是不是使用通过脚本,对应到画面ID,可以实现呢?有哪位师傅可以帮忙实现这个功能呢? 最佳答案 西门子官方有此视频教程,…

    SIMATIC WinCC 2017年6月3日
  • 在wincc里做画面

    想在wincc里做个画面,就是类似于历史趋势曲线那样的画面,但是画面显示的是自己定义的函数,如函数Y=X^2,X和Y都是从现场采集过来的量,从函数Y=X^2可看出不同的X点对应不同…

    SIMATIC WinCC 2019年6月11日
  • 打开wincc项目时的出错

    打开wincc时跳出对话框“用户没有执行该操作的权限,请检查当前用户在windows用户组中的分配”,还有“HResult    0x800…

    SIMATIC WinCC 2019年6月11日
  • wincc报警限定值运行修改

    我设了一个模拟量,配置了报警记录,我想通过一个输入/输出域在系统运行的时候通过写进一个数值在线修改这个模拟量的上限值,我要是直接在报警记录设定这个模拟量的上限值就能在报警控件里看到…

    SIMATIC WinCC 2019年6月11日
  • Wincc现在还分完全版和运行版吗?

    我现在打算做数据采集系统,有的厂家说Wincc分为完全版和运行版,有的说现在不分,我想确定一下现在两者是否有差别呢?报价是多少? 最佳答案 WINCC是分为完全版和运行版。运行版:…

    SIMATIC WinCC 2019年6月11日
  • VBS脚本获取另一画面中两个TextBox值

    A画面中的按钮,想要读取B画面中两个Textbox中的值。知道读取本画面的语句是:Dim UserName ‘用户名、密码,操作备注Dim TextU…

    SIMATIC WinCC 2019年6月11日