WinCC flexible 创建脚本的技巧与窍门
WinCC Flexible创建脚本的技巧与窍门
为什么通过一个内部变量的“数值变化”事件所触发的脚本不执行,、 由于软件的限制(循环断路器)在内部变量中是不能实现的。循环断路器是一个安全措施以防止在组态中可能发生的循环。
例外:脚本可以通过 IO 域在变量的数值变化事件中执行。
补救:使用连接控制器的外部变量。
为什么通过一个内部变量的“数值变化”事件所触发的系统函数不执行, 通过一个内部变量的“数值变化”事件所触发的系统函数,在脚本中的数值变化不能被执行(循环断路器)。
例外:系统函数可以通过 IO 域在变量的数值变化事件中执行。 补救:直接在脚本中执行系统函数并且使用连接控制器的外部变量(Power Tag)。
在脚本中如何访问数组中的单个元素,
数组中的单个元素可以通过数组名并指明数组位置的方法进行访问。 实例:nTag = nArray(10)
nTag = SmartTags("nArray")(10)
局部脚本数组采用相同的规则。在多维局部数组的情况下,数组的维数可以通过逗号分隔。
实例:Dim Field(10,10) 'local tag
nTag = Field(0, 5)
在 WinCC flexible 中如何访问动态链接库,
在 WinCC flexible 中无法使用动态链接库。
如何确定当前鼠标的位置,
为了读取当前鼠标的位置,必须访问操作系统的 API (application programming
interface)。VB 脚本不支持通过动态链接库访问操作系统的API 。作为选择,当前鼠标的位置可以通过自行编写的能够访问操作系统API的ActiveX控件读取。 注意:在 WinCC flexible 中使用的 ActiveX 控件必须在“开放程序接口平台”
(OPP)上创建。更多信息可在条目号 15247601 中获得。
如何读取或保存Unicode文本文件,
PC 运行系统:如果文件曾经以 Unicode 格式打开或保存,那么这些文件可以使用 WinCC flexible 以 Unicode 格式读取或保存。
注意:在 WinCC flexible 中“IO 域” 对象不支持所有的 Unicode 字符。 面板:基于 Windows 的操作员面板不能通过 Windows CE 字符串函数读取或保存 Unicode 格式的文本文件。
为什么通过 WinCC flexible “MsgBox” 命令不能在脚本中使用, 由于安全因素 “MsgBox” 命令在 WinCC flexible 中被禁用。
在脚本中如何将十六进制数赋给变量,
十六进制数的数值在 WinCC flexible 脚本编辑器中用前缀 “&h” 进行转换。 实例:nTag = &h0F ' = 15 dec
如何在脚本中显示或隐藏单个图层,
使用图层工作是 WinCC flexible 工程软件开发系统的一项功能。这些图层在 WinCC flexible 工程软件中作为组态帮助能够被显示或隐藏。这项功能在 WinCC flexible 运行系统中是不可用的。
补救:设置变量符合相应对象的“可见性”属性。
在脚本中如何连结字符串,
连接符 "&" 能够用于将字符串连接起来。
实例:szText_1 = szText_2 & "add String" & szText_1(翻译到此)
一个具有返回值的函数调用是如何工作的,
通过在调用脚本中将函数指派给相应的变量而产生具有返回值的函数调用。 实例:Sub Script_1( )
'Call script function
nValue = Script_2( Param_1, Param_2 )
End Sub
注意:同时参考要点 11.
在函数内部返回值是如何指派的,
返回值在相同名称的函数 “Script_2” 中通过分配返回参数到脚本名称的方式进行赋值。
实例:Function Script_2( Param_1, Param_2 )
'Declaration of local tags
Dim Sum
Sum = Param_1 + Param_2
'Return value
Script_2 = Sum
End Function
如何通过脚本改变线性对象的长度,
在线性对象中“高度”和“宽度”参数是只读的。通过水平和垂直位置,可以使用矩形替代线性对象并通过在脚本中的属性动态更新。
注意:关于此项的更多信息可在条目号 24249449 中获得。
什么原因可导致系统达到它的最大嵌套层数?
例如,如一个脚本在另一个脚本中通过数值变化被二次调用,根据这个原则由于调用的产生会达到最大的嵌套层数。当一个脚本被调用时,所有相关的变量都被加载到面板的主内存中。当另一个脚本被调用时面板的内存使用率会更高。一个反复调用自身的脚本,在被一个递归脚本调用时这样现象同样可很快的达到。 补救:检查脚本的处理,如果必要,减少脚本的嵌套。
如何确定当前画面号,
为了确定一个画面的编号,这个编号一定包含在画面的名称中。根据下列例程中显示的代码,画面的编号能够从画面的名称中确定。
画面标识符:001_StartScreen
002_Section_1
003_Section_2
等等。
实例:Function ScreenNo( )
Dim Obj, StrNumber
Set Obj = HmiRuntime
StrNumber = Split(Obj.BaseScreenName, "_")
'Return value
ScreenNo = CInt(StrNo(0) )
End Function
注意:另外也可使用“画面编号”区域指针。通过组态一个具有相同地址区域的变量作为区域指针,那么画面编号能够通过控制器读出。在这个选项中,记住总线波特率和变量的采集周期。
如何在脚本中使用多重变量, 如何在脚本中使用结构变量, 多重变量在脚本中不能使用。 结构变量不能在脚本中使用。
如何在字符串中分割单个字符并将其分配到数组中,
“Mid” 函数可以用于从一个字符串中返回单个字符。
实例:Sub script( )
'Declaration of local tags
Dim strSymbol(10), i
For i = 1 To Len( szText )
strSymbol( i-1 ) = Mid( szText, i, 1)
Next
End Sub
如何在静态变量中保存信息当下一次脚本被调用时能够再次可用, 在脚本结束后被保留的信息必须保存在全局变量中。全局“脚本变量”是在 WinCC flexible 的变量编辑器中声明的内部和外部变量。
有效性 声明 在脚本中
脚本 WinCC flexible 项目 控制器
外部变量 X X X
全局
内部变量 X X -
脚本变量 X - - 局部
如何改变文本域中的文本,
文本域中的文本能够通过脚本改变。
实例:Sub script( )
'Declaration of local tags
Dim obj
Set obj = HmiRuntime.Screens("Screen_1")._
ScreenItems("Text Field_1")
obj.Text = "NewText"
End Sub
可供选择:使用一个带变量连接的 I/O 域替换使用文本域。
在发行多种语言的文本时也可以使用文本列表。
如何通过脚本从口令列表或用户视图中读取用户密码,
为了安全起见在 WinCC flexible 中不能实现。
如何终止 WinCC flexible 运行系统并关闭 PC 或面板,
WinCC flexible 运行系统和操作系统通过使用命令 “StopRuntime mode”被终止。 注意:基于 Windows 面板的操作系统不能被关闭。
模式
参数 含义
0 = hmiStopRuntime 终止运行系统
1 = hmiStopRuntimeAndOperationSystem 终止运行系统和操作系统
本文档为【WinCC flexible 创建脚本的技巧与窍门】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。