用WINCC7.0制作下拉菜单例程

嗨,本人最近用wincc7.0制作下拉菜单,运行后没有反应,设置字体也没有变化,用VBS写的脚本也没有运行,点击下拉菜单内容也没有反应,请教高手例程,万分感谢!!

问题补充:
各位的回答都相近,我希望有做好的例程邮发给我,chengangming2005@163.com,

最佳答案

下拉菜单制作参考:
1、请参考Wincc控件中下拉式列表框Combo怎么组态——

http://www.ad.siemens.com.cn/service/answer/solution.asp?Q_ID=39247&cid=1032 


2、请参考如何在 OS 上组态一个组合框 (combo box),并且能够自动根据不同语言自动填充相应的文本?

描述:
例子 1:
您可以象本例中描述的那样,使用控件 "Siemens STEP 7 S7 ComboBox" 在OS 运行期间动态得填充。请不要使用控件 "Microsoft Forms 2.0 ComboBox",因为使用这个控件会导致 "pdlrt.exe" 内存需求的不断增长。 

警告:
为了在没有 "SIMATIC Manager" 的 "OS" 上使用 "Siemens STEP 7 S7 ComboBox" 控件,必须在相应的计算机上安装注册该控件。您可以在 ES 的路径 "…\SIEMENS\Common\S7ACTLDX\s7actldx.dll" 上找到相关的 DLL 文件。拷贝该文件到每个 OS 上合适的文件夹下。
如何注册这些控件的指导可以在帮助 "WinCC Information System > Working with WinCC > Creating process pictures > Working with controls > How to change the registration of a control" 下找到。   

例子 2:
该例子展示了如何将在 SIMATIC Manager 中组态的枚举 (enumeration) 依据语言显示在组合框中。 

例1: 动态填充combo box :
例如,在运行时,您可以将 "Text Library" 中的文本传送到 combo box 来作为选择项。
  No. 描述 
1 在 WinCC 的文本库中 ("Text Library") 中组态值 :
按如下图组态文本: 

Fig. 01 

注意:
按照条目 23416727 中介绍的内容来定义您自己的 "Text ID",以便不会被 WinCC 占用。
 
2 在变量管理中组态文本参考:
为每个在 "文本库" 中的文本创建一个文本参考并定义相应的文本 ID 作为变量的起始值 (在标签 "Limits/Reporting" 中)。   
名字:"ComboTextRef2000"  类型: "Text reference" 起始值:"2000" 
… 
名字:"ComboTextRef2006"  类型: "Text reference" 起始值:"2006"
 
3 在 WinCC 画面中组态 combo box 和脚本   
创建一个类型为:"Siemens STEP 7 S7 ComboBox" 的控件,控件名字是:"Combo1"。 
在控件的属性中,设置 "LinesInList" 的值为 "10"。   
在WinCC 画面中,事件 "Picture Object > Miscellaneous > Open Picture" 中创建如下的 VB 脚本,当画面被调用的时候填充combo box 。


Fig. 02
Sub OnOpen()

  Const LINECOUNT = 7
  Dim objComboBox
  Dim strComboList
  Dim count

  Set objComboBox = ScreenItems("Combo1")
  objComboBox.Clear()

  For count = 0 To LINECOUNT-1
    strComboList = HMIRuntime.Tags("ComboTextRef"&count+2000).Read
    objComboBox.AddItem (strComboList)
  Next

End Sub
 
4 评估 combo box 的值:
当一个画面被选择后,相应的文本会从文本参考中读出并写到组合框中作为选则项。为了将组合框中所选择的值写到另外一个变量,你可以使用组合框的事件 "S7FlatComboBox > Object Events > Click" 并使用如下的 VB 脚本:  
Sub Click(Byval Item)
  Dim objVal
  Set objVal = HMIRuntime.Tags("SelectedValue")
  objVal.Write Item.Text
End Sub
 
5 结果: 

Fig. 03 

现在您可以依据当前所选择的语言来得到 combo box 中不同的选项列表。
 


例 2: 将SIMATIC Manager 中组态的枚举 (enumeration) 传送到组合框: 

要求:
该例子建立在条目 27147567 的基础之上:首先,依照这个条目的指导第 4 步。
  No. 描述: 
1 在全局脚本中创建 VBS 工程模块:
在 "Global Script VBS" 编辑器中您创建一个新的项目块,例如 "Enumerations.bmo" 并输入如下的脚本。 
您可以简单地将该脚本下载下来。
 VBS_Fill_combobox.zip ( 689 bytes ) 

 ( 18 KB ) 
Fig. 04
 
2 在 WinCC 画面组态combo boxes 和脚本   
创建两个 "Siemens STEP 7 S7 ComboBox" 类型的对象,名字为:"Combo1" 和 "Combo2"。   
在您放入 Combo boxes 的 WinCC 画面事件 "Picture Object > Miscellaneous > Open Picture" 中,创建如下的 VB脚本:
Sub OnOpen()
  Call Fill_combobox ("Combo1", "CFC(1)/TESTENUM.SOURCE")
  Call Fill_combobox ("Combo2", "CFC(1)/TESTENUM.DEST")
End Sub 

在 combo box 的事件 "S7FlatComboBox > Object Events > Click" 中,您组态如下的 VB 脚本来将 combo box 中的选择项写回到控制器中:
Sub Click(Byval Item)
  Const cfcName = "CFC(1)/TESTENUM.SOURCE"
  Dim tagCFC
  Set tagCFC = HMIRuntime.Tags(cfcName)
  tagCFC.Value = Item.ListIndex + 100
  tagCFC.Write
End Sub
 
3 结果:
现在你可以通过组合框来选择块的参数。 

Fig. 05 


Fig. 06
 


 
 
 条目号:28921535     日期:2008-05-28   
 http://support.automation.siemens.com/CN/llisapi.dll?func=cslib.csinfo&lang=zh&siteid=cseus&objid=28921535

另外,还可以参考——

http://www.ad.siemens.com.cn/service/answer/solution.asp?Q_id=39190&cid=1032

http://www.ad.siemens.com.cn/service/answer/solution.asp?Q_id=45200&cid=1032 

回答者:  俱怀逸兴壮思飞 – 超级顾问  第15级  2010-6-17 21:06

参考:
http://www.ad.siemens.com.cn/service/answer/solution.asp?Q_id=53919&cid=1032

http://www.ad.siemens.com.cn/service/answer/solution.asp?Q_id=65982&cid=1032

http://www.ad.siemens.com.cn/service/answer/solution.asp?Q_id=70435&cid=1032

http://www.ad.siemens.com.cn/service/answer/tobe_solution.asp?Q_id=28121&cid=1032

http://www.ad.siemens.com.cn/service/answer/solution.asp?Q_id=21017&cid=1032

http://www.ad.siemens.com.cn/service/answer/solution.asp?Q_id=5215&cid=1032

提问者对于答案的评价:
虽然没有我想要的例程,却回答得用心。也谢谢其他同志,不容易啊!如果有做好的例子,也希望其他大侠相助,传一个。

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

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

相关推荐

  • 关于WinCC V7.4 SP1图形编辑器

    1、SVG库中IndustryGraphiclibraryV1.0 中筛用图一的哪一个表示?2、要实现通过点击1#按钮弹出画面窗口,在画面窗口属性-显示设置了否后如图三进…

    2021年7月5日
  • 多个CPU连接WINCC

    CPU312 4个加一台工控机,PLC程序完全相同,通过MPI连接如何做到在一个界面(显示器)中同时显示各自界面呢?, 最佳答案 wincc建立多个连接对应多个cpu,每…

    SIMATIC WinCC 2019年6月10日
  • @RENHQ wincc报表不显示

    这几天研究报表,看到了RENHQ论坛里面的分享,然后自己试了试,但是显示不出来数据,不知道哪方面的原因,还得请教老师们啊,脚本都是RENHQ老师的分享的,然后自己对比着抄下来了。w…

    2021年7月5日
  • Wincc如何搭配摄像头实现视频监控

    如何wincc如何通过控件实现视频监控需求? 钻石用户推荐最佳答案 WinCC 如何实现网络摄像头的视频显示https://support.industry.siemen…

    SIMATIC WinCC 2021年7月5日
  • WINCC打开图形编辑器出错

    公司做好的一个WINCC6.0程序,拷到我自己电脑上,打开图形编辑器时提示打开文档出错,图形界面根本就看不了,请大家帮帮忙。还有提示外部变量授权不足,小弟刚开始学习WINCC还请大…

    SIMATIC WinCC 2019年6月11日
  • 如何利用STEP7软件备份“人机界面”用户程序,并保存在指定文件夹中?

    如何利用STEP7软件备份“人机界面”用户程序,并保存在指定文件夹中? 最佳答案 具体的步骤可以参考以下链接:http://support.automation.siemens.c…

    SIMATIC WinCC 2019年6月11日
  • wincc 如何通过多个按钮切换不同画面窗口?

    看了论坛里A025等关于用内部变量来切换画面的介绍,还是不太明白,请各位大侠多指点。按钮给内部变量赋值我已明白,如何将画面窗口跟内部变量INT建立联系?最好能有配图。也可邮箱联系我…

    2017年11月25日
  • HMI怎么能用电脑监控呢?

    HMI怎么能用电脑监控呢?我的触摸屏在一楼.都挂在以太网上,我在二楼,怎么能用电脑监控HMI呢?距离15米以内!MP277的触摸屏. 最佳答案 很简单,在电脑上安装wincc&nb…

    SIMATIC WinCC 2019年6月11日
  • WINCC6.0用户登录口令失效?

    为什么WINCC6.0用户登录口令失效?用户名和密码是在用户管理器中设置的. 最佳答案 用户在三次输入错误的口令后会被归入“未授权”组。只有具有管理员权限的用户才能将该用户重新分配…

    SIMATIC WinCC 2019年6月11日
  • wincc flexible 连接的PLC变量找不到

    wincc flexible 连接的PLC变量找不到,但flexible仿真显示变量有值,但PLC找不到赋值的程序,间接寻址程序也没有,DB块的初值为0,fle…

    SIMATIC WinCC 2020年11月1日