使用IOT-Tree的用户和角色控制监控画面指令下达授权

使用IOT-Tree的用户和角色控制监控画面指令下达授权 在工业现场监控中心值班人员通过图示化的监控画面对现场设备设施运行情况进行监控并且在必要的时候下达一些控制或参数调整指令。为了支持操作员操作的身份验证、安全防护防止误操作和非当前工作人员操作同时兼顾使用的流畅本文以IOT-Tree用户角色管理为基础详细举例说明了HMI画面的相关配置说明。如果你对IOT-Tree Server不了解可以看如下内容IOT-Tree Server是个开源物联网软件可以作为组态软件成为自动化系统的上位软件。她提供了各种设备接入、数据组织管理、数据分享使用、消息流控制逻辑和人机交互多个方面的功能。当然你也可以仅仅使用这个软件作为数据采集终端或边缘计算的软件。这是IOT-Tree Server相关的系列文章你可以参考其他文章更多了解IOT-Tree能给你带来的好处使用IOT-Tree Server通过MC协议连接三菱Q系列PLC使用IOT-Tree Server通过FINS协议连接欧姆龙CP2E-N系列PLC使用IOT-Tree Server通过S7 Eth协议连接西门子PLC S7-1200系列文章还包含IOT-Tree完成一个具体项目的过程非常详细如下机房自动化监控手把手分享给你 - 10 项目完成总结从版本2.0开始IOT-Tree完善了用户和角色管理。管理员可以在用户和角色管理界面中维护用户的添加、删除、修改含登录密码。对角色进行添加修改和删除等操作。对选中用户进行角色分配。1 用户角色管理管理员登录管理主界面右上角点击图标即可进入​​左边是用户列表右边是角色列表。可以对用户/角色分别进行添加、修改或删除。具体的分配用户角色过程为点击某个用户在右边角色选择框进行勾选然后点击上方的“保存角色到用户”按钮即可​用户admin和角色admin是系统自带的并且是超级管理员不允许被删除。当然你也可以设置其他用户为admin角色2 HMI写操作(下达指令)授权在IOT-Tree项目组织树节点中新增了属性“授权”-“写入限制角色用户组”。点击之后可以在弹出对话框中选择设置需要的角色。​当一个节点设置了此限制角色之后其子孙节点会自动继承此内容除非子孙节点自己设置了限制角色——此时继承的祖先配置内容被屏蔽。因此你可以在靠近根部的节点设置角色之后下面的所有HMI节点都会使用此权限验证要求。注如果没有设置任何角色说明相关节点不需要验证。3 举例说明HMI写操作验证全过程以系统自带的demo项目进行相关权限设置说明此项目导入运行请参考下面的文章也就几分钟的事:快速开始IOT-Tree3.1 准备用户和角色先管理员登录在管理主界面 http://localhost:9090/admin/ 的右上角点击打开用户角色管理对话框。我们在里面添加如下用户和角色。用户op1op2op3并且op1分配角色operop2和op3分配角色oper1。如下op1|oper op2|oper1 op3|oper1​3.2 设置节点角色我们进入demo项目点击hmi节点u1。然后在主内容区选项“属性”。点击“写入限制角色用户组”对应的编辑框在弹出的角色选择对话框中选择角色oper:​完成之后不要忘记点击属性上方“应用”按钮进行保存设置。这样我们就完成了hmi u1节点的写操作限制。3.3 在HMI画面中设置指令下达事件绑定我们鼠标右键u1节点选择“编辑UI在主内容区选择启动图元点击右边Events列表如下图​在事件on_mouse_clk对应的内容区点击打开对话框进行客户端事件触发和服务端事件处理JS脚本如下​Client JS运行在UI画面端只需要如下一行代码此代码是的前端向IOT-Tree Server端触发一个鼠标click事件。$server.fire_to_server()Server JS运行在IOT-Tree Server内部在接收到客户端触发的事件之后这个JS代码会被运行。此代码对应水泵启动的标签点写入值1这最终会通过设备驱动向控制器发出写指令。ch1.dio.pstart._pv1;但Server JS在运行前会进行上面配置的用户权限验证如果验证失败则Server JS不会被运行并且返回错误提示。对于Run Name,如果你希望IOT-Tree能够自动对操作员的操作做记录,请填写能够区分此操作的运行名称这样在操作日志中就可以直观的区分是何种操作了。3.4 HMI画面操作效果确保demo项目启动且正常运行。建议打开一个新的浏览器无用户登录信息。访问下面的url你可以发现画面右下角有个人员图标——这说明当前画面有指令下达时有用户验证要求http://localhost:9090/watertank/u1​此时我们直接点击“Start”对应的图元会自动弹出操作员用户名和密码验证对话框。如图​我们填写op1这个用户密码这个用户对于oper角色——于此UI设定匹配。点击确定。可以看到指令下达成功提示并且当前用户也有了显示​此时在一定的时间之内ui画面不需要你重新进行用户密码验证。但超过一定时间长度之后此时间可以在项目根节点设置如果要做写操作系统还会提示需要用户密码验证——这样做的好处是既可以防止误操作又可以保证操作方便流畅。3.5 切换用户测试无权限用户效果点击右下角的用户图标则可以强制弹出用户验证对话框。你可以在此输入其他用户的验证信息。我们此时可以填写op2这个用户此用户就算登录能成功但与此UI的限制角色不匹配下达指令时会提示无权限。​4 总结以上过程非常简单只需要注意掌握组织树结构的角色分配和继承关系即可。如果要实现操作员操作日志记录你可以使用IOT-Tree中的消息流节点“接入与设备-HMI事件触发器”,2分钟包含数据库表的建立即可完成操作员操作记录到关系数据库中的配置。关系数据库的使用请参考其他文档和相关文章。