Skip to main content

使用接口调用对话框

您可以为称为对话框的可视化定义一个界面。

使用可视化类型为此创建可视化 对话 并为对话框声明一个接口。通过用户输入在初级可视化中引用可视化并将参数传输到界面。

如果您将可视化称为集成可视化,则传输的参数必须是基本数据类型的变量。如果可视化被称为 CODESYS TargetVisu 要么 CODESYS WebVisu,那么参数也可以具有用户定义的数据类型。

主要程序

  1. 将可视化的可视化类型设置为对话框。

  2. 在对话框的界面编辑器中声明变量。

    该对话框有一个界面。您可以在调用对话框时传递参数。

  3. 配置对话框的元素并使用接口变量。

  4. 在另一个可视化(通常是主可视化)中选择一个元素来配置对话框的打开方式。

  5. 在里面 输入配置 → OnMouseDown 属性,点击 配置.

    输入配置 对话框打开。

  6. 选择 打开对话框 在选定的输入操作列表中。

  7. 从中选择一个 对话 列表框。

    如果所选对话框具有接口,则接口变量在下面列出。

  8. 将传递参数分配给接口变量 价值 柱子。

  9. 选择参数更新的结果 更新 _cds_icon_output_channel.png _cds_icon_varinout.png 结果中的参数 列表。

  10. 激活选项 打开对话框模式.点击 好的 退出对话框。

    对话框打开已配置。

提示

同时执行多次对话需要对话的多个实例。在下载应用程序时,这些必须已经下载到可视化设备。为此,请在可视化管理器中设置要下载的实例数 (可视化 标签)。

26. 对话: visChangeUserLevel
27. 主要可视化: visMain
_visu_img_vismain.png
6. visMain 可视化的元素列表:

类型

姓名

元素属性

描述

#5 Text field

Button for change user level

文本 → 文本%s

带占位符的输出

文本变量 → 文本变量PLC_PRG.iLevel

的分配 PLC_PRG.iLevel 变量到占位符。包括级别编号。

#6 Button

Title

文本 → 文本Change user level

输入配置 → OnMouseDown → 打开对话框Open Dialog: visChangeUserLevel

当用户点击 Change User Level 纽扣 visChangeUserLevel 对话框打开,参数列表存储在此处。

提示:点击 配置 查看存储的配置 输入配置 对话框(输入动作 打开对话框)。



7. 对话框 visChangeUserLevel 调用的配置

范围

类型

价值

描述

参数列表存储在 输入配置 对话框(输入动作 打开对话框)。

sItfTitle

STRING

'ChangeUse user level'

传输标题的字符串。

sItfLevel0

STRING

'pwd0'

传输一个字符串作为 Level0 的密码。

sItfLevel1

STRING

'pwd1'

传输一个字符串作为 Level1 的密码。

sItfLevel2

STRING

'pwd2'

传输一个字符串作为 Level2 的密码。

sItfLevel3

STRING

'pwd3'

传输字符串作为 Level3 的密码。

sItfLevel4

STRING

'pwd4'

传输字符串作为 Level4 的密码。

sItfLevel5

STRING

'pwd5'

传输一个字符串作为 Level5 的密码。

sItfLevel6

STRING

'pwd6'

传输字符串作为 Level6 的密码。

sItfLevel7

STRING

'pwd7'

传输一个字符串作为 Level7 的密码。

iItfLevel

INT

PLC_PRG.iLevel

为用户指定的级别传输变量。

sItfPwd

STRING

PLC_PRG.sPwd

为用户指定的密码传输变量。



8. 在结果的情况下列出更新和参数

价值

描述

好的

启用



打开对话框模式

启用对话框之外的输入是不可能的。



以下应用程序调用 更改用户级别 对话框并提示用户选择级别并指定密码。如果密码一致,则 好的 按钮已启用。然后用户可以关闭对话框。电平的输入也被应用。

_visu_img_dialog_change_user_level.png

对话框接口声明 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                        
9. visChangeUserLevel 对话框的元素列表:

类型

姓名

元素属性

描述

#0 Image

Background

静态 IDVisuDialogs.ImagePoolDialogs.Login

该属性将具有灰色背景和空白蓝色标题栏的空白对话框的图像分配给元素。该图像包含在 VisuDialogs 图书馆。

#1 Rectangle

Title

文本 → 文本%s

带有文本变量占位符的输出

文本变量 → 文本变量sItfTitle

接口变量的赋值 sItfTitle 在调用时传输参数。

#2 Radio button

Input level

多变的iItfLevel

接口变量的赋值 iItfLevel 在调用时传输参数。包括运行时的用户输入。

列数4

单选按钮顺序左到右

展示

单选按钮设置 → 单选按钮 → 区域: [0] 至 [7]

[<n>] → 文本: <n>

数字从 0 到 7 的八个单选按钮的标签

#3 Text field

Input password

文本 → 文本%s

带有文本变量占位符的输出

文本变量 → 文本变量sItfPwd

接口变量的赋值 sItfPwd 在调用时传输参数。包括运行时的用户输入。

输入配置 → OnMouseDown → 写入变量Variable:,InputType:Edit,Use text output variable: TRUE

在里面 输入配置 对话, 文字输入 被选为 输入类型 列表框和选项 使用文本输出变量 被激活。

#4 Text field

Label for level

文本 → 文本Level:

标签

#5 Text field

Label for password

文本 → 文本Password

标签

#6 Button

OK

文本 → 文本OK

标签

颜色 → 颜色Element base color

颜色 → 报警颜色Alarm filling color

以状态相关颜色配置显示。您可以在颜色之间切换。

颜色变量→切换颜色sItfPwd <> MUX(iItfLevel, sItfLevel0, sItfLevel1, sItfLevel2, sItfLevel3, sItfLevel4, sItfLevel5, sItfLevel6, sItfLevel7);

如果密码和用户输入不一致,则表达式为 TRUE.然后按钮以报警颜色显示。

状态变量 → 停用输入sItfPwd <> MUX(iItfLevel, sItfLevel0, sItfLevel1, sItfLevel2, sItfLevel3, sItfLevel4, sItfLevel5, sItfLevel6, sItfLevel7);

如果密码和用户输入不一致,则表达式为 TRUE.该按钮已停用。

如果密码一致,则启用该按钮。

输入配置 → OnMouseDown → 关闭对话框Close Dialog: visChangeUserLevel, Result: OK

如果用户点击 好的 按钮,然后 visChangeUserLevel 对话框关闭并更新参数。

#7 Button

Cancel

文本 → 文本Cancel

标签

颜色 → 颜色Element base color

展示

输入配置 → OnMouseDown → 关闭对话框Close Dialog: visChangeUserLevel, Result: Cancel

如果用户点击 取消 按钮,然后 visChangeUserLevel 对话框关闭。





28. 应用代码 PLC_PRG
PROGRAM PLC_PRG
VAR
    iLevel: INT;
    sPwd : STRING;
END_VAR                       


29. 运行时可视化
_visu_img_vismain_rt.png

单击按钮后,对话框打开并允许输入。如果指定的文本与存储的文本一致,则 好的 已启用:

_visu_img_vismain_open_dialog_rt.png

点击后 好的,应用选择。

_visu_img_vismain_level4_rt.png


提示

该示例显示了多个返回值的过程。但是,使用对话框中的局部变量可以更轻松地返回密码。

以编程方式访问参数

在可视化界面中声明的变量可自动用作结构变量。它们由 <name of visualization>_VISU_STRUCT.因此,您可以访问显示为对话框的可视化界面变量。通常,您在由用户输入调用的函数的应用程序代码中使用该结构。

将指针作为参数传递

要传递复杂的数据结构,您可以标记类型的接口变量 VAR_IN_OUT 带有 pragma 属性 VAR_IN_OUT_AS_POINTER 并将指针或引用作为参数传递。

过程. 使用参考的程序
  1. 声明用户数据对象 (DUT)。

  2. 在对话框的界面编辑器中,声明一个界面变量(VAR_IN_OUT) 通过分配属性作为对数据对象的引用 'VAR_IN_OUT_AS_POINTER' 到变量。

  3. 对用户界面进行编程:在可视化中使用对话框或在可视化元素的输入配置中分配对话框。然后可以访问引用的数据。

30. 示例:使用带有 'VAR_IN_OUT_AS_POINTER' pragma 的接口。
FUNCTION_BLOCK ControlFB
VAR_INPUT
END_VAR
VAR_OUTPUT
END_VAR
VAR
    bOk : BOOL := TRUE;
    nCounter : INT;
    nValue : INT;
END_VAR
nCounter := nCounter + 1;
                        

接口变量的声明 VAR_IN_OUT_AS_POINTER

_visu_img_varinoutaspointer_example.png

用户界面: 对话框打开:

_visu_img_varinoutaspointer_dialog_example.png