广东省阳江市西门子代理商-伺服电机驱动变频器代理
11、如何组态带返回值和参数的脚本?脚本类型必须是 “ Function ” 才可以有返回值。所以,请在TIA Portal 中添加新 VB 函数的 "Properties > General > Settings" 类型的下拉列表框中选择 “Function” 。在 “ Parameter ” 表格中您以创建脚本变量用来将内部变量或控制器变量传入在脚本需要的时候。组态函数返回值,在脚本中为脚本的名称分配表达式。例如组态函数类型,。按下面所示,在TIA Portal 组态名称为 “ VBFunction_1 ” 脚本函数的参数和返回值:图. 01例如,脚本在按钮的 “ Click ” 的事件中被使用。图. 02在脚本中使用 "HMI_Tag_1" 的值赋给"Parameter_1" ,"HMI_Tag_2" 的值赋给"Parameter_2" ,必须有一行脚本定义了返回值。例如下面的例子的返回值是两个传入参数的乘积:VB_Function_1= Parameter_1 * Parameter_2"VB_Function_1" 是这个函数的名字,在执行这个脚本后,"HMI_Tag_3" 获得这个函数的返回值是 "HMI_Tag_1" * "HMI_Tag_2" 。注意定义一个 "by reference" 的参数 ,这意味着作为 "By_Ref " 参数,仅对脚本中定义的和引用的变量产生影响,对 HMI 内部变量或者控制器变量不起作用。 12、什么能导致“最大嵌套深度到达”消息被触发?如果太多的脚本在结束前调用自己或者调用其他脚本,会引起到达最大嵌套深度消息。解决方法检查脚本过程的处理,如有必要,减少脚本的嵌套。13、如何确定当前画面的编号和画面名称?通过预定义 VB 函数 “HmiRuntime.BaseScreenName ” 的返回值提供了当前画面的名字。注意不能使用脚本通过相关画面的“属性”直接读取画面名称/编号。也可以使用“画面编号”区域指针。14、如何在脚本中使用多路复用变量?多路复用变量不能用在脚本中。 15、如何在脚本里使用 HMI UDT 变量?可以使用“SmartTags” 访问数据类型是HMI UDT的变量元素(用户定义的数据类型)。例如 访问 UDT 变量 " Recipe " 的元素 "x"SmartTags("Recipe.x")注意这适用于在项目中已创建库类型 HMI UDT的实例。不能直接访问库类型。16、如何在脚本中保存变量值当他们在两个脚本之间调用?在两个脚本间相互传递数据需要使用全局变量。全局变量可以是 HMI 或者 PLC 变量。脚本中定义的变量总是在脚本结束时删除。 17、如何通过脚本修改文本域的内容?文本域的文本在运行时可以通过修改相应的对象属性而改变。例如 在画面 "MachineData" 中,将文本 "NewText" 分配给 文本域 "Text_Field_01" :Dim objSet obj = HmiRuntime.Screens("MachineData").ScreenItems("Text_Field_01")obj.Text = "NewText"注意文本的变化只是“暂时”的。当屏幕更改后这个被修改后的文本将被组态的文本覆盖。 18、如何在脚本中从密码列表或用户视图中读取用户密码?由于安全原因这个功能在 WinCC (TIA Portal) 中不能实现。19、如何通过脚本关闭 WinCC 运行系统和关闭PC和面板?通过系统函数 “StopRuntime” 可以关闭 WinCC 运行系统和操作系统 。可以通过修改 "StopRuntime" 函数的参数方式选择仅关闭运行系统或者将运行系统和操作系统都关闭。ParameterMeaning0 = hmiStopRuntimeEnds on the Runtime1 = hmiStopRuntimeAndOperationSystemEnds both the Runtime and the OS例如StopRuntime hmiStopRuntimeStopRuntime 1注意 Windows-based 面板的操作系统不能通过这种方式关闭。 20、如何在脚本中访问一个画面或者模板的对象?组态 “Runtime” 对象的属性 “ ActiveScreen ”,可以找到画面上组态对象的名字和修改相关的属性。例如 把激活屏幕中的对象 "Circle_01" 设置为不显示 HmiRuntime.ActiveScreen.ScreenItems("Circle_01").Visible=False注意在画面中被组态对象必须有唯一的名字。对象的属性修改仅是暂时的,当屏幕更改后视图使用组态时的配置。21、如何在运行时选择一个画面对象(例如输入输出域)?获得一个对象的焦点通过 "Activate" 功能,文本输入会直接自动指向那个对象。例如 获得屏幕 "Screen_1" 的 输入/输出域 "IOField_1" 的焦点 HMIRuntime.Screens("Screen_1").ScreenItems("IOField_1").Activate
展开全文
相关产品