SEPHMI-SEP系统状态监控界面模板

SEPHMI管理员
发布于 2025-11-27 / 41 阅读
0
0

SEPHMI-SEP系统状态监控界面模板

项目中往往需要运行多个SEP软件,包含采集、计算、业务流转、界面等一系列的软件集合,这时候就需要一个画面,来对这些软件进行集中的状态监控,以便在出现故障时及时掌握信息并进行快速定位和处理,确保整套系统长期稳定运行。

ScreenShot_2025-11-27_081346_255.png

1、HMI模板工程下载

导出工程-SOFT-MONITOR20251219111546.project

2、版本要求

SEPHMI v5.0.068及以上版本。

3、功能介绍

3.1、使用流程图

3.2、软件注册

3.2.1、使用权限

软件注册界面需要用户登录Studio才能进行操作,否则会提示登录超时,且无法进行注册和生成操作:

3.2.2、注册内容解析

输入项

说明

Group

分组,默认代表一个物理服务器或电脑,即监控画面会以服务器为一个单元,服务器上的所有SEP软件都在这个单元中显示

Application

应用名称

Description

应用说明

AppType

软件类型:SEPSIM、SEPOPT、SEPCON、DGPL、SEPHMI

Address

监控地址,至被监控软件的http接口地址,支持redis(即软件将监控位号值实时推送至Redis,则SEPHMI连接Redis来读取状态),如:

sepsim地址示例:http://192.168.1.6:2289

redis(通过redis中转)地址示例:redis://192.168.1.110:7389:Septecabc

rdi地址示例:http://127.0.0.1:9071/rdi/hb

StatusTagName

这里填写状态位号名,但虽然叫状态位号名,实际上它的值是一个时间,即被控软件

的心跳时间,支持时间戳1756445621199或年月日时分秒格式2025-11-09 09:28:13

LogTagName

这里填写日志位号名称,SEPHMI在去请求这个位号值的时候,响应的信息是这个被

控软件当前的运行日志,主要是指异常日志,每条日志以\n结束。如:

2025-11-12 08:48:21[info][HomeServiceImpl]Feedback|septec|Feedback Http|Explorer_hmi240603155457,1201_PV_109A.ByVMV,95,http://127.0.0.1:2289|

Failed|Timeout;\n

1)如果是SEPHMI的日志,即被监控端的SEPHMI直接推送日志,则此处填写被监控端SEPHMI在BUILD TASK中配置的sendLogs2HmiSvr方法中的位号名称:

2)如果接入的是Sepsim的日志,则此处的LogTagName配置为Sepsim里对应算法模块的位号名称:

IconType

主要选择这台服务器类型:server、station、client,分别指服务器、工作站、客户端电脑,不同类型会显示不同的图标。

3.3、生成HMI监控画面

在完成所有软件信息注册后,点击Build Monitor HMI按钮,会弹出一个选项:

1、Append:是指在旧的监控画面上追加(或更新)刚才编辑的内容,这种情况下,旧画面的区域、图标、原有内容的位置都不会发生变化,仅对新增的软件进行追加,并对修改的参数更新到画面中;

2、Overwrite:是指根据编辑的内容完全重新创建监控画面,这种情况下,会彻底删除旧画面并重新自动生成一个新的监控画面,自动生成的画面往往最终需要人工进行一些细微的调整,比如监控服务器区域的位置调整等。

在点击Append或Overwirte之后,SEPHMI进行自动创建或更新监控画面,并在完成之后自动打开最新监控画面的组态界面,用户在这里可以对刚刚生成的画面进行微调,主要就是调整画面的位置,以及可以根据项目中实际网络情况,将各服务器的位置按照上下网络层级进行相应的调整,以便更贴合实际的网络层级,更容易理解。

3.4、运行监控

在注册界面点击“Monitor View”或者点击左侧菜单的“MONITORING”,即可进入最终的监控画面。

4、不同网络解决方案

4.1、上层SEPHMI可向下连接到被监控软件

这种情况因为可以直接进行通信,所以在SEPHMI上注册软件的时候,直接配置被监控软件的http接口地址即可。

4.2、上层SEPHMI无法向下连接到被监控软件

前提条件:下层网络可以向上连接到SEPHMI。

4.2.1、上层部署Redis

在上层网络部署Redis,各被监控软件心跳状态信息到Redis中,上层SEPHMI通过Redis来获取状态,即在SEPHMI上注册软件的时候,需要配置Redis的地址。这个时候需要注意的是各被监控软件在Redis中的位号名称不能重复。

Redis中存储位号的格式为:

格式

说明

key

tag:XXXX-STATUS

实际位号名为“XXXX-STATUS”,在保存key的时候需要加上tag:前缀

value

1757557755713;0;192

值分三部分,英文分号隔开,第一部分为时间戳,第二部分为数值或文本内容,第三部分为数据质量,默认192

4.2.2、下层部署SEPHMI客户端

下层网络部署客户端SEPHMI,用来给上层SEPHMI进行数据转发,即实现由下向上的单向传输。此时在上层SEPHMI中进行软件注册的时候,被监控软件的Address配置的地址为相对于下层SEPHMI的地址。

5、SEPHMI作为被监控端的配置方法

以下统一简称SEPHMI监控端为sephmiA,SEPHMI被监控端为sephmiB:

5.1、sephmiA与sephmiB被监控端直接建立连接

1、这种情况是在sephmiA可以直接向sephmiB请求状态的情况;

2、在sephmiA的注册界面中配置sephmiB的Address的时候,sephmiB的运行地址以http://192.168.1.6:9999为例,则Address填写的地址为:http://192.168.1.6:9999/status

3、在注册界面中配置sephmiB的StatusTagName,即sephmiB的状态位号名称,在当前直接建立连接的模式下,此处StatusTagName随便填写一个名字;

4、保存更新或者重新生成HMI监控画面即可。

5.2、SEPHMI被监控端通过Redis中转状态

5.2.1、原理

1、这种情况,一般是在sephmiA无法直接向sephmiB请求状态的情况下所采取的方式;

2、需要sephmiB定期更新自己的状态给Redis,这样sephmiA变可以通过Redis来确定sephmiB的状态;

5.2.2、sephmiB推送状态给Redis的方法

1、在产品官网中下载“SEPHMI-定时任务管理-在线状态推送配置模板”,将下载好的工程导入到sephmiB中并访问;

2、进入“STATUS TAGNAME”菜单,并添加一个状态位号,以下将以名称“HMI-STATUS”为例;

3、进入“STATUS TASK”菜单,新建一个任务,执行周期可设置为10s(可根据实际情况进行调整,为了不影响sephmiB的整体性能,建议不要设置过小),执行代码“updateMyStatusTime("redis://192.168.1.6:9379:SeptecRedis");”,其中updateMyStatusTime为系统函数,代表更新一个状态时间到一个接口地址上,括号中用双引号包起来的内容,就是目标接口地址,当前填写的就是一个Redis地址。

说明:系统所支持的函数,可在帮助中查询,即在任务编辑界面中,点击黄色问号图标,可打开系统函数的帮助说明。

4、在创建好这个任务之后,系统便会根据设置的周期“10s”进行循环执行;

5、Redis验证:可用一个Redis客户端连接到服务器redis之后,找到tag:HMI-STATUS这个key,看其值是否会根据周期时间进行变动。

5.2.3、sephmiA的注册界面中的配置

1、在注册界面中配置sephmiB的StatusTagName,即sephmiB的状态位号名称,填写在sephmiB中配置好的位号名称,即5.2.2中配置的名字:HMI-STATUS;

2、在注册界面中配置sephmiB的Address,即sephmiB的状态位号连接地址,在当前通过Redis中转的模式下,此地址则填写Redis的连接地址即可,如:redis://192.168.1.6:9379:SeptecRedis,与5.2.2中配置的任务中的redis一致;

2、保存更新或者重新生成HMI监控画面即可。

6、SEPHMI监控RDI的配置方法

6.1、关于RDI的端口配置

RDI在启动的时候便启动了状态接口的端口,但是默认是限制仅本机内可访问,外部无法访问,即如果SEPHMI(不管是监控端还是用于中转的Client端)与RDI不在同一台服务器,那么需要进行一下配置的修改:

在RDI的config目录,有个SeptecSrvConfig.ini配置文件,用记事本打开:

这里有个HttpIp=127.0.0.1,即默认限制仅本机内部可访问,如要允许外部访问,可进行如下两种方式的修改

方式示例

说明

HttpIp=0.0.0.0

允许所有能够连接到本服务器的外部服务器进行连接访问

HttpIp=192.168.0.7

运行所有能够访问到192.168.0.7这个网络的外部服务器进行连接访问

所以0.0.0.0是全部放开访问,192.168.0.7是局部网络放开访问。

另外如果已经设置放开了范围,外部还是无法访问到,可以检查一下防火墙设置,需要将9071端口放开。

6.2、直接连接

即从网络层面监控端SEPHMI可以直接连接到被监控端的RDI。注册软件时的配置示例如下:

Address地址说明:RDI的状态接口是httpGet方式的接口,默认的http://开头的接口地址采用的是httpPost方式,为了进行区分,httpGet方式的接口以get://开头进行配置

运行效果:

6.3、中转连接

是指监控端SEPHMI(以下用SEPHMI-Monitor代替)无法直接向被监控端的RDI请求数据,这个时候需要中转数据。这种情况有两个方案:一是按上面4.2.2的CS模式来实现;二是如果实际情况不能使用CS模式(CS模式的局限性是导致server端的所有数据请求会整体都需要client端的SEPHMI来提供,可能不适用于所有场景),则可以改成上层网络部署Redis,下层SEPHMI来中转数据给Redis的方式来实现,即在RDI服务器上或相同网络环境下的其他服务器上部署一个SEPHMI(以下用SEPHMI-Client代替),让它去读取RDI的状态,然后转发给上层Redis(监控端SEPHMI-Monitor能够连接到的Redis),SEPHMI-Monitor上注册这个RDI软件的时候,Address则配置为Redis的连接地址即可。

下面以第二个方案来进行说明:

6.3.1、SEPHMI-Client配置软点

1、到《SEPHMI-定时任务管理-(状态推送、日志推送)模板》中下载导出工程-定时任务管理v3-(状态推送、日志推送)20251216111808.project工程,导入到SEPHMI-Client端并运行;

2、进入到OTHER TAGNAME菜单,添加一个新的位号,位号名可以自定义,但是最终需要与SEPHMI-Monitor端注册时的状态位号名一致;

读取地址:配置的是该位号的值来自于哪里;

回写地址:配置的是该位号的值回写到哪里。

6.3.2、SEPHMI-Client配置推送任务

进入STATUS TASK,创建一个新的任务,任务的内容是tagReWrite("RDI2-STATUS","value","");即内容是定期回写RDI2-STATUS这个位号,回写值固定写的是“value”,这个代表回写值不是一个固定的值,而是需要去动态读取,读取的数据源是在上一步中设置的读取地址;第三个参数为空,这个参数是指回写到哪里,即目标接口地址,为空代表该地址,也是在上一步中配置的回写地址,如果不为空,则以此处配置的地址为优先。

6.3.3、SEPHMI-Monitor配置注册信息

运行效果:

7、SEPHMI监控Sepsim的配置方法

7.1、直接连接

即从网络层面监控端SEPHMI可以直接连接到被监控端的Sepsim。

7.1.1、被监控端Sepsim端配置状态位号

1、右键算法图标区域,选择OnLine1

2、点击SysParam算法图标,拖入流程图组态区域,将激活设置为true,然后设置该位号名称,如:SEPSIM1-STATUS,位号名可以自定义,但最终需要与监控端SEPHMI中软件注册信息中的状态位号名称保持一致:提示:在Sepsim中新建的位号,保存之后,需要重启一下Sepsim才能在接口中生效。

7.1.2、监控端SEPHMI配置软件注册

在Address中直接配置Sepsim的接口地址,并且StatusTagName配置为Sepsim里的状态位号名称,但是注意,这个位号是有个特定的后缀SysTimer,如上面的“SEPSIM1-STATUS”,在此配置的时候位号名为“SEPSIM1-STATUS.SysTimer”

7.1.3、运行效果

7.2、中转连接

是指监控端SEPHMI(以下用SEPHMI-Monitor代替)无法直接向被监控端的Sepsim请求数据,这个时候需要中转数据。这种情况有两个方案:一是按上面4.2.2的CS模式来实现;二是如果实际情况不能使用CS模式(CS模式的局限性是导致server端的所有数据请求会整体都需要client端的SEPHMI来提供,可能不适用于所有场景),则可以改成上层网络部署Redis,下层SEPHMI来中转数据给Redis的方式来实现,即在Sepsim服务器上或相同网络环境下的其他服务器上部署一个SEPHMI(以下用SEPHMI-Client代替),让它去读取RDI的状态,然后转发给上层Redis(监控端SEPHMI-Monitor能够连接到的Redis),SEPHMI-Monitor上注册这个Sepsim软件的时候,Address则配置为Redis的连接地址即可。

下面以第二个方案来进行说明:

7.2.1、SEPHMI-Client配置软点

1、到《SEPHMI-定时任务管理-(状态推送、日志推送)模板》中下载导出工程-定时任务管理v3-(状态推送、日志推送)20251216111808.project工程,导入到SEPHMI-Client端并运行;

2、进入到OTHER TAGNAME菜单,添加一个新的位号,位号名可以自定义,但是最终需要与SEPHMI-Monitor端注册时的状态位号名一致;

位号名:注意,这里配置的Sepsim的状态位号名有个特定的后缀SysTimer,如Sepsim里配置的位号名为“SEPSIM1-STATUS”,则在此配置的时候位号名为“SEPSIM1-STATUS.SysTimer”

读取地址:配置的是该位号的值来自于哪里;

回写地址:配置的是该位号的值回写到哪里。

7.2.2、SEPHMI-Client配置推送任务

进入STATUS TASK,创建一个新的任务,任务的内容是tagReWrite("SEPSIM1-STATUS.SysTimer","value","");即内容是定期回写SEPSIM1-STATUS.SysTimer这个位号,回写值固定写的是“value”,这个代表回写值不是一个固定的值,而是需要去动态读取,读取的数据源是在上一步中设置的读取地址;第三个参数为空,这个参数是指回写到哪里,即目标接口地址,为空代表该地址,也是在上一步中配置的回写地址,如果不为空,则以此处配置的地址为优先。

7.2.3、SEPHMI-Monitor配置注册信息

运行效果:


评论