您可以为作为对话框调用的可视化定义一个界面。
为此创建可视化,可视化类型为“Dialog” ,并为对话框声明一个界面。通过用户输入在主可视化中引用可视化,并将参数传输到界面。
如果将可视化作为集成可视化调用,则传输的参数必须是基本数据类型的变量。如果以CODESYS TargetVisu 或CODESYS WebVisu 的形式调用可视化,那么参数也可以是用户定义的数据类型。
主要程序
-
将可视化的可视化类型设置为对话框。
-
在对话框的界面编辑器中声明变量。
对话框有一个界面。调用对话框时可以传输参数。
-
配置对话框元素并使用界面变量。
-
在另一个可视化(通常是主可视化)中选择一个元素,用于配置对话框的打开方式。
-
单击“配置” 在属性“输入配置 OnMouseDown” 。
“输入配置” 对话框将打开。
-
在所选输入操作列表中选择“打开对话框” 。
-
从“Dialog” 下拉列表中选择一个。
如果所选对话框有接口,则接口变量如下所示。
-
为“Value” 列中的接口变量分配传输参数。
-
在列表“中选择更新参数的结果 更新”
“和”
“结果的参数” 。
-
激活“打开对话框模式” 选项。单击“OK” 关闭对话框。
对话框打开已配置。
同时多次执行一个对话框需要多个对话框实例。下载应用程序时,这些内容必须已下载到可视化设备中。为此,请在可视化管理器(“Visualizations” 标签)中设置要下载的实例数。
示例
下面的应用程序将调用“Change User Level” 对话框,并提示用户选择级别和指定密码。如果密码同意,则“OK” 按钮将启用。然后用户就可以关闭对话框了。电平输入也适用。
对话框visChangeUserLevel
:

对话框界面声明visChangeUserLevel
:
VAR_INPUT sTitle: STRING; // titel of the dialog box sItfLevel0: STRING; //password level 0 sItfLevel1: STRING; //password level 1 sItfLevel2: STRING; //password level 2 sItfLevel3: STRING; //password level 3 sItfLevel4: STRING; //password level 4 sItfLevel5: STRING; //password level 5 sItfLevel6: STRING; //password level 6 sItfLevel7: STRING; //password level 7 END_VAR VAR_IN_OUT iItfLevel: INT; // user input: level sItfPwd: STRING; //user input: password END_VAR
类型 |
名称 |
元素属性 |
说明 |
---|---|---|---|
|
|
“静态 ID” : |
该属性为元素指定了一个灰色背景、蓝色空白标题栏的空白对话框图像。该图像包含在“VisuDialogs” 库中。 |
|
|
“文本 文本” : |
带文本变量占位符的输出 |
“文本变量 文本变量” : |
分配接口变量 |
||
|
|
“可变” : |
分配接口变量 |
“列数” : |
|||
“单选按钮订购” :“从左至右” |
显示屏 |
||
“单选按钮设置 单选按钮 区域” :[0] bis [7] “[<n>] 文本”: <n> |
八个单选按钮的标签,数字从 0 到 7 |
||
|
|
“文本 文本” : |
带文本变量占位符的输出 |
“文本变量 文本变量” : |
分配接口变量 |
||
“输入配置 OnMouseDown 写入变量” : |
在“输入配置” 对话框中,在“输入类型” 下拉列表中选择“文本输入” ,并激活“使用文本输出变量” 选项。 |
||
|
|
“文本 文本” : |
标签 |
|
|
“文本 文本” : |
标签 |
|
|
“文本 文本” : |
标签 |
“颜色 颜色” : “颜色 警报颜色” : |
根据状态配置显示颜色。您可以在不同颜色之间切换。 |
||
“颜色变量 切换颜色” : |
如果密码和用户输入不一致,则表达式为 |
||
“状态变量 停用输入” : |
如果密码和用户输入不一致,则表达式为 如果密码正确,则启用按钮。 |
||
“输入配置 OnMouseDown 关闭对话框” : |
如果用户单击“OK” 按钮,则 |
||
|
|
“文本 文本” : |
标签 |
“颜色 颜色” : |
显示屏 |
||
“输入配置 OnMouseDown 关闭对话框” : |
如果用户单击“取消” 按钮,则 |
主要可视化visMain
:

类型 |
名称 |
元素属性 |
说明 |
---|---|---|---|
|
|
“文本 文本” : |
带占位符的输出 |
“文本变量 文本变量” : |
将 |
||
|
|
“文本 文本” : |
|
“输入配置 OnMouseDown 打开对话框” : |
如果用户单击 小贴士单击“配置” 可在“输入配置” 对话框中查看存储的配置(输入操作“打开对话框” )。 |
参数 |
类型 |
数值 |
说明 |
---|---|---|---|
参数列表保存在“输入配置” 对话框中(输入操作“打开对话框” )。 |
|||
|
|
|
转移标题字符串。 |
|
|
|
传输字符串作为 Level0 的密码。 |
|
|
|
传输字符串作为 Level1 的密码。 |
|
|
|
传输字符串作为 Level2 的密码。 |
|
|
|
传输字符串作为 Level3 的密码。 |
|
|
|
传输字符串作为 Level4 的密码。 |
|
|
|
传输一个字符串作为 Level5 的密码。 |
|
|
|
传输字符串作为 Level6 的密码。 |
|
|
|
传输字符串作为 Level7 的密码。 |
|
|
|
为用户指定的级别转移变量。 |
|
|
|
为用户指定的密码传输变量。 |
“Value” |
说明 |
---|---|
“OK” |
激活 |
“以对话模式打开” |
已激活 无法在对话框外输入。 |
应用代码PLC_PRG
:
PROGRAM PLC_PRG VAR iLevel: INT; sPwd : STRING; END_VAR
运行时的可视化

点击按钮后,对话框打开并允许输入。如果指定文本与存储文本一致,则启用“OK” :

点击“OK” 后,选择将被应用。

示例显示了多返回值的程序。不过,使用对话框中的本地变量可以更方便地返回密码。
以编程方式访问参数
可视化界面中声明的变量可自动作为结构变量使用。它们通过<Name of visualization>_VISU_STRUCT
标识。因此,您可以访问以对话框形式显示的可视化界面变量。通常情况下,您可以在用户输入调用的函数的应用代码中使用该结构。
将指针作为参数传递
要传递复杂的数据结构,可以使用 pragma 属性VAR_IN_OUT_AS_POINTER
标记VAR_IN_OUT
类型的接口变量,并将指针或引用作为参数传递。
使用参考资料的程序
-
声明用户数据对象 (
DUT
)。 -
在对话框的界面编辑器中,声明一个界面变量 (
VAR_IN_OUT
) 作为数据对象的引用,将属性'VAR_IN_OUT_AS_POINTER'
指定给该变量。 -
对用户界面进行编程:在可视化中使用对话框,或在可视化元素的输入配置中指定对话框。这样就可以访问引用的数据。
示例:使用带有pragma "VAR_IN_OUT_AS_POINTER "的接口
FUNCTION_BLOCK ControlFB VAR bOk : BOOL := TRUE; nCounter : INT; nValue : INT; END_VAR nCounter := nCounter + 1;
用 VAR_IN_OUT_AS_POINTER

用户界面:打开对话框:
