使用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-Tree

3.1 准备用户和角色

先管理员登录,在管理主界面 http://localhost:9090/admin/ 的右上角点击打开用户角色管理对话框。我们在里面添加如下用户和角色。用户op1,op2,op3;并且op1分配角色oper,op2和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._pv=1;

但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分钟(包含数据库表的建立)即可完成操作员操作记录到关系数据库中的配置。关系数据库的使用请参考其他文档和相关文章。

相关推荐
传感器与混合集成电路1 小时前
模态识别离不开三向同步:火箭振动测点选择与三轴压电加速度计配置方法
物联网
代码方舟4 小时前
数据科学风控实战:基于天远全能消金报告构建自动化信用评估网关
运维·人工智能·自动化
科力锐品牌君4 小时前
应用级灾备 | 海量非结构化数据如何实现高效数据保护
linux·运维·网络·安全·系统安全·数据安全·灾备
KaiwuDB4 小时前
KaiwuDB 运维实战04:DRBD + KaiwuDB——物联网场景下的低成本数据库高可用方案
运维·数据库·物联网·时序数据库·kaiwudb·aiot·多模数据库
盛世宏博北京5 小时前
档案库房防护能力升级:从八防到十二防的物联网全维度感知防护体系建设方案
网络·物联网
杨福宇5 小时前
100BASE T1以太网实时控制的危机V3.21 ——辅助自动驾驶难达标
网络·网络协议·安全·自动驾驶·汽车
duanshu_5 小时前
官网表单与下载异常怎么排查?五个环节定位故障
前端·自动化·flyweight
福建佰胜张工5 小时前
A5E00839230西门子工业核心配件详解:参数、安装调试与故障运维全攻略
运维·网络·安全·自动化
谢亮_vipxieliang5 小时前
镜像安全:扫描、签名与软件供应链
安全·docker
ii_best5 小时前
按键精灵手机端开发安卓版实战:手写一个可最小化、可拖动的「运行日志悬浮窗」(附完整 源码 + 踩坑记录)
android·ios·智能手机·自动化·ai编程·按键精灵