RemoteTargetVisu:读取客户端名称
- 创建标准项目并选择 CODESYS Control Win V3 作为设备。
- 通过网络扫描连接目标系统。

- 打开库管理器并添加以下库: VisuUtils

- 在设备树中插入可视化。 然后,会插入带有 TargetVisu 和 WebVisu 的可视化管理器。删除这两个,并添加一个 Remote Targetvisualization。然后将可视化分配给它作为起始页。此外,还会自动创建一个 VISU_TASK。

- 创建一个名为 FB_Iteration 的新 FB 并实现 VU.IVisualizationClientIteration 接口。

FB 会自动创建以下方法: EndIteration HandleClient StartIteration

- 按如下修改 FB_Iteration 功能块:
声明
FUNCTION_BLOCK FB_Iteration IMPLEMENTS VU.IVisualizationClientIteration
VAR_INPUT
END_VAR
VAR_OUTPUT
END_VAR
VAR
sRtvName1 : STRING;
END_VAR
- 按如下修改 HandleClient 方法:
声明
(* This method will be called for each client that is currently within the list
of active visualization clients.
.. note:: Please remark that this method will be called from VISU_TASK*)
METHOD HandleClient
VAR_INPUT
(* The object representing the according client. Will not be 0.*)
itfClient : VU.IVisualizationClient;
END_VAR
实现
IF itfClient.ClientType = VU.VisuClientType.RemoteTargetVisualization THEN
sRtvName1 := itfClient.GetClientName();
END_IF
- 修改 PLC_PRG 如下:
声明
VAR
fbIteration : FB_Iteration;
fbIterateClients : VU.FbIterateClients;
END_VAR
实现
fbIterateClients(xExecute:=TRUE, itfClientFilter:=VU.Globals.AllClients, itfIterationCallback:=fbIteration);
IF fbIterateClients.xDone THEN
fbIterateClients(xExecute:=FALSE, itfClientFilter:=VU.Globals.AllClients, itfIterationCallback:=fbIteration);
END_IF
- 将项目加载到控制器并启动它。

- 打开 targetvisuremote.cfg 文件并将以下条目添加到 CmpVisuHandlerRemote 部分:
[CmpVisuHandlerRemote] VisuClient.Name=CodesysRemoteClient1
- 远程目标visu启动后,项目中显示指定名称:
