Visu:使用用户管理的事件(登录/注销)


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

图1

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

图2

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

图3

然后修改用户的密码:

图4

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

图5

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

图6

  • 修改 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 程序分配给您的项目作为可视化管理器中的启动程序:

图7

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

图8

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

图9