RemoteTargetVisu:读取客户端名称


  • 创建标准项目并选择 CODESYS Control Win V3 作为设备。
  • 通过网络扫描连接目标系统。

图1

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

图2

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

图3

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

图4

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

图5

  • 按如下修改 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

  • 将项目加载到控制器并启动它。

图6

  • 打开 targetvisuremote.cfg 文件并将以下条目添加到 CmpVisuHandlerRemote 部分:

[CmpVisuHandlerRemote] VisuClient.Name=CodesysRemoteClient1

  • 远程目标visu启动后,项目中显示指定名称:

图7