您可以为要引用的可视化声明参数接口。在runtime调用可视化时,实际参数将传递到接口(类似于功能块的情况)。
首先,在可视化接口编辑器中声明接口变量。然后,通过为每个接口变量分配一个符合数据类型的应用程序变量,配置要传输到该接口的参数。对于框架或选项卡,该赋值在引用属性中配置。
根据显示变量的不同,局部变量(具有VAR范围)的参数传递受到限制。如果将可视化作为集成的可视化执行,则只能将具有基本数据类型的局部变量作为参数进行传输。如果将可视化称为CODESYS TargetVisu或CODESYS WebVisu,则还可以使用用户定义的数据类型传输参数。
如果您配置了可视化引用,然后在接口编辑器中保存对其中一种可视化的变量声明的更改,则会自动出现更新框架参数对话框。该对话框提示您编辑引用。受影响的所有可视化的列表都显示在此处,以便可以在更改后的界面上重新分配参数传输。
关闭对话框后,将接受更改并且受影响的元素将显示在引用属性中。
使用接口(
VAR_IN_OUT)调用可视化
要求:该工程包含一个可视化和一个主可视化。主可视化包含一个可视化引用的元素。
1. | 打开可视化。 |
2. | 点击。 |
3. | 在接口编辑器中声明变量。 |
4. | 通过在值中输入应用程序变量,为所有调用中的接口变量分配符合类型的传输参数。关闭对话框。 ⇒ | 在要引用可视化的点上分配传递参数。这些显示在引用属性的主可视化中。 |
|
.示例
visPie可视化包含一个动画的彩色饼图。visMain主可视化使用不同的传输参数在 选项卡控件中调用visPie三次。颜色信息,角度信息和标签都是通过pieToDisplay接口传递的变量。饼图在runtime是变化的。
可视化visPie:
.饼图元素的属性:
开始的变量 | pieToDisplay.iStart |
结束的变量 | pieToDisplay.iEnd |
| %s |
| pieToDisplay.sLabel |
| pieToDisplay.dwColor |
.可视化visPie的接口:
VAR_IN_OUT
pieToDisplay : DATAPIE;
END_VAR
主可视化visMain:
.选项卡元素属性:
引用 | |
visPie | |
标题 | A |
pieToDisplay | PLC_PRG.pieA |
visPie | |
标题 | B |
pieToDisplay | PLC_PRG.pieB |
visPie | |
标题 | C |
pieToDisplay | PLC_PRG.pieC |
.DATAPIE (STRUCT)
TYPE DATAPIE : // visPie中使用的参数类型
STRUCT
dwColor : DWORD; // 颜色数据
iStart : INT; // 角度数据
iEnd : INT;
sLabel : STRING;
END_STRUCT
END_TYPE
.GVL
{attribute 'qualified_only'}
VAR_GLOBAL CONSTANT
c_dwBLUE : DWORD := 16#FF0000FF; // Highly opaque
c_dwGREEN : DWORD := 16#FF00FF00; // Highly opaque
c_dwYELLOW : DWORD := 16#FFFFFF00; // Highly opaque
c_dwGREY : DWORD :=16#88888888; // Semitransparent
c_dwBLACK : DWORD := 16#88000000; // Semitransparent
c_dwRED: DWORD := 16#FFFF0000; // Highly opaque
END_VAR
.PLC_PRG
PROGRAM PLC_PRG
VAR
iInit: BOOL := TRUE;
pieA : DATAPIE; //调用visPie时用作参数
pieB : DATAPIE;
pieC : DATAPIE;
iDegree : INT; // 用于动画的饼图元素的可变中心角
END_VAR
IF iInit = TRUE THEN
pieA.dwColor := GVL.c_dwBLUE;
pieA.iStart := 0;
pieA.sLabel := 'Blue';
pieB.dwColor := GVL.c_dwGREEN;
pieB.iStart := 22;
pieB.sLabel := 'Green';
pieC.dwColor := GVL.c_dwYELLOW;
pieC.iStart := 45;
pieC.sLabel := 'Yellow';
iInit := FALSE;
END_IF
iDegree := (iDegree + 1) MOD 360;
pieA.iEnd := iDegree;
pieB.iEnd := iDegree;
pieC.iEnd := iDegree;
主可视化visMain在runtime:
登载传输参数的实例名称
为了获取和输出传输参数的实例名,可以在VAR_INPUT范围内实现带有编译附注{attribute 'parameterstringof'}的接口变量(数据类型STRING)。
该工程包含一个可视化和一个主可视化。主可视化包含可视化引用的元素。
1. | 打开可视化。 |
2. | 点击。 |
3. | 声明一个接口变量(VAR_IN_OUT)。 ⇒ | pieToDisplay : DATAPIE; |
|
4. | 在接口编辑器中,声明一个带有属性{attribute 'parameterstringof'}的变量(VAR_INPUT)。 ⇒ | {attribute 'parameterstringof' := 'pieToDisplay'} | | sNameToDisplay : STRING; |
|
5. | 保存更改。 |
6. | 插入一个文本字段元素。 |
7. | 在文本, 文本属性中, 将输出文本指定给文本字段。 |
8. | 在文本变量文本变量属性中, 将接口变量指定给文本字段。 ⇒ | sNameToDisplay | | visPie有一个标题。 |
|
.示例
到目前为止,visPie可视化仅由一个饼图组成。The visMain主可视化使用不同的传输参数在选项卡控件中调用visPie三次。
visPie扩展了一个文本字段,该文本字段输出实际传递给可视化的参数的名称。为此,使用字符串变量扩展了visPie的接口,该字符串变量包含指定的传输参数的实例名称。在runtime,每个饼图都会被覆盖。
.文本字段元素的属性:
文本, 文本 | Visualization of %s |
文本变量, 文本变量 | sNameToDisplay |
.'visPie' 可视化接口:
VAR_INPUT
{attribute 'parameterstringof' := 'pieToDisplay'}
sNameToDisplay : STRING;
END_VAR
VAR_IN_OUT
pieToDisplay : DATAPIE;
END_VAR
主可视化visMain在runtime: