redis驱动icv的后台服务以及驱动记录了一些状态,比如服务和的启动时刻、当前状态,驱动的最近一次配置修改时间、各个设备的当前状态等,通过redis驱动,可以利用icv的变量监控scada系统的各项状态。目前支持icv所有的后台服务,以及新驱动框架实现的所有驱动,包括:modbus、cvrdadriver、dbdriver、icgdrvier、s7api、s7fwdriver、104、codesys、melsec、rdadriver、snmp2、SiemensS7Drv以及IEEE1888Drv。另外也支持查询老版本的IOMBTCP驱动状态。
主要包含以下步骤:
1.首先,需要配置好相应的SCADA节点。
2.双击SCADA节点下的驱动配置,进入驱动配置页面,在页面的左上方,可以看到“添加驱动”的按钮,点击添加驱动,弹出可用驱动的选择对话框,在可用驱动列表中,选择redis驱动所对应的“redis”,然后单击确定。
驱动配置类似midvar,只需在scadaq驱动配置中添加redis驱动后,即可进行变量配置。
新建TXT变量,驱动名配置为“redis”,无须设备名,只需配置设备地址即可。
设备地址的可取值范围可使用icv安装自带的工具cvsysmonitor查询(iCertroView/executable下可找到)。如下图:
❖SCADA
可利用redis获取到的SCADA状态项包括:
每个property的值可通过将设备地址配置为scada#propertyname获得,比如scada#connectedhmi。
⟡connectedhmi:与该scada关联的hmi名字,多个hmi以分号分隔。
⟡connectedhmicnt:关联的hmi个数;expiretime为许可证过期时间。
⟡lic_clientnum:许可证规定的用户数上限;lic_tagnum为许可证规定的I/O点数上限。
⟡licstatus:许可证状态。
⟡rmstatus:冗余状态,1活动节点,0非活动节点。
⟡tagnum:当前I/O数目。
⟡version:iCV软件版本。
❖服务
可利用redis获取到的后台服务状态项包括:
每个property的值可通过将设备地址配置为scada#servicename#propertyname获得。比如,amservice的启动时间,可通过将设备地址配置为scada#amservice#starttime获得。
⟡starttime:服务启动时刻。
⟡status:服务状态,格式为‘状态值;时间戳’,状态值表示的是服务初始化的结果,0代表success,非零值为iCV定义的错误码,详细可见错误码列表。
❖驱动
可利用redis获取到的驱动状态项包括:
每个property的值可通过将设备地址配置为driver#drivername#propertyname获得。比如,modbus驱动配置的最近一次修改时间,可通过将设备地址配置为driver#modbus#lastcfgmodifiedtime获得。
⟡starttime:驱动启动时刻。
⟡lastcfgmodifiedtime:驱动配置上次修改时间。
⟡status:驱动状态,格式为‘状态值;时间戳’,0代表success,非零正值为iCV定义的错误码,详细可见错误码列表,-1代表驱动未启动。其中非零正值会在驱动加载配置文件、加载dll发生错误时产生。
❖驱动下的设备状态
可利用redis获得的驱动下设备状态项包括:
每个property的值可通过将设备地址配置为driver#drivername#devicename#propertyname获得。
例如下图:modbus驱动的一个名为modbus_Device0设备的status值,可通过将设备地址配置为driver#modbus#modbus_Device0#status获得。
⟡status:驱动设备状态,格式为‘状态值;时间戳’,0代表success,非零正值为iCV定义的错误码,详细可见错误码列表,-1代表驱动未启动。其中非零正值会在设备连接、发送数据发生错误时产生。