Visu:使用用户管理的事件(登录/注销)
- 创建标准项目并选择 CODESYS Control Win V3 作为设备。
- 通过网络扫描连接目标系统。

- 在设备树中插入可视化。 然后 Visualization Manager 会自动插入可视化 TargetVisu和 WebVisu。此外,还会自动创建一个VISU_TASK。

- 使用默认组和用户在可视化管理器中创建用户管理 。

然后修改用户的密码:

- 创建一个名为 FB_UserMgmtEventHandler 的新 FB ,并实现 VisuElems.IUserMgmtEventHandler 接口。

FB 会自动创建以下方法: HandleLogin HandleLoginFailed HandleLogout HandlePasswordChange

- 修改 FB_UserMgmtEventHandler 功能块如下:
声明
FUNCTION_BLOCK FB_UserMgmtEventHandler IMPLEMENTS VisuElems.IUserMgmtEventHandler
VAR_INPUT
END_VAR
VAR_OUTPUT
END_VAR
VAR
udiHandleLogin : UDINT;
udiHandleLogout : UDINT;
END_VAR
- 按如下方式修改 HandleLogin 方法:
声明
(* This method will be called when a login to the visu user management is performed
:return:
TRUE - When the handler has handled this event and it should not be handled by someone else
FALSE - When the event is not handled by this handler*)
METHOD HandleLogin : BOOL
VAR_INPUT
(* A pointer to the client structure were the event occurred.
The name of the user, that logged in, is stored in pClient^.GlobalData.CurrentUserName*)
pClient : POINTER TO VisuElems.VisuStructClientData;
END_VAR
实现
udiHandleLogin := udiHandleLogin + 1;
- 以相同的方式处理 HandleLogout 方法。
- 确保 HandleLoginFailed 和 HandlePasswordChange 方法中也使用了 VisuElems 前缀;并且删除了“{warning 'add method implementation '}”行。
- 修改 PLC_PRG如下:
声明
VAR
fbUserMgmtEventHandler : FB_UserMgmtEventHandler;
END_VAR
- 如下所示将 EventHandler 分配给可视化。
版本 < V3.5.SP10
在旧版本中,以下方法是不可能的,因为无法从可视化管理器分配程序。 对于这些版本,必须在程序代码中进行初始化。
- 创建类型为 PROGRAM 的新 POU。命名为VisuInit,将程序代码修改如下:
声明
PROGRAM VisuInit
VAR
END_VAR
实现
VisuElems.Visu_Globals.g_VisuEventManager.SetUserMgmtEventHandler(PLC_PRG.fbUserMgmtEventHandler);
将 VisuInit 程序分配给您的项目作为可视化管理器中的启动程序:

- 打开 Visualization,添加一个 Frame,并为其分配以下属性:

- 对注销按钮重复上述步骤。
- 将项目加载到控制器并启动它。
- 每次成功登录和注销时,变量都会增加。
