概念

区域(Region):以多级结构组织设备和用户,与文件夹目录结构概念类似。

设备(Device):具有通信能力的通信装置,在以太网中以网络接点(IP:PORT)进行区分并连接通信。 在实际应用中,工厂的单个大型装备(Equipment)可能集成有多个通信装置,例如自动产线的控制主机和多个PLC; 还会存在多合一的电能表,虽然只有一个通信装置但是可同时计量十户的用电量。

属性(Attribute):表示一个具体的数据项,可对应传感器获取的值, 例如温度传感器的温度值、开关量控制器的IO值、PLC的某个寄存器值。 每个设备(Device)拥有的属性从几个到几千个不等。

定时器(Timer):定时执行触发器的软件虚拟定时器。

触发器(Trigger):对某属性设定的一个条件或动作。

报警(Alarm):由触发器满足条件时产生的报警。

故障(Fault):由通信驱动报告的通信故障。

组织(Region,Servo)

可创建多层级的区域(Region)对设备进行合理组织, 例如工厂可能按厂区和车间建立多级区域,学校可按校区、楼栋、单元和楼层建立多级区域。 通过与实际相对应的方式建立区域组织各种设备,有助于提高应用效率,方便快速定位设备以及分区治理。

区域同时也是数据范围划分的依据,例如A厂区的用户是无法看见B厂区的设备和数据的。 学校的每个宿舍楼都有特定的管理人员,那么位于A栋宿舍的管理员将不能看见B栋的设备,也不能对其执行远程控制。 区域属于典型的树形结构组织,其数据范围向下辐射,既位于当前区域的用户具有当前区域和其中所有子区域的数据范围。

提示

数据范围和功能权限是两种同时存在但效果不同的系统权限, 数据范围决定用户可接触那些数据, 功能权限决定用户可使用那些操作。

伺服端(Servo)可组织多个具体的通信设备,其中的设备数据必须通过伺服端转发给服务端, 因此伺服端中的设备必须与实际网络结构相匹配。 在区域组织中,伺服端可视为多个设备的通信网关;伺服端不是必须的部分,在特定通信场景才会使用。 当需要采用伺服端时,应当把伺服端置于正确的区域中,实际应用中不建议伺服端为跨越多个区域的设备提供数据转发, 这将给日后的网络维护带来困扰。

设备(Device,Attribute,Fault)

可在区域(Region)中创建任意数量的设备,每个设备对应一个网络接点(IP:PORT), 为了确保正确通信需要为每个设备指定通信协议(通信驱动 Driver)和附加参数, 例如最常见的 MODBUS TCP、DL/T 645。

每一种系统中已经集成的通信协议(通信驱动 Driver)均已配置默认属性, 将在设备创建后自动创建对应的默认属性。 默认属性中有些是已确认可用的,有些是参考性的您需要稍后检查这些属性,并将其调整正确。

由于各种设备的网络连接方式不同,有些是由设备主动请求,有些是设备等待请求(被动), 因此可能会出现不同格式的网络接点。对于设备主动请求连接的情形,网络接点应为端口号,例如"8800", 您可以将多个相同的设备配置为相同的被动接点,系统会自动识别这些接点并监听指定的端口, 注意配置防火墙规则以允许访问端口。 对于被动请求的设备,网络接点设置为设备的地址端口(IP:PORT),通信驱动会主动发起连接。 关于更多具体设备的通信支持,请查阅 设备集成 获取更多信息。

配置正确的设备和属性,服务端将自动开始连接并采集属性值,请确保服务器与设备的网络连通性。 通信配置客户端在远程配置的设备和属性位于服务端中,由服务端执行通信和数据采集。 通信配置客户端的本地部分仅用于本地调试,不会置于服务端中。

通信驱动在通信过程中可能会检测到通信故障,通信驱动将报告这些故障; 您可以通过客户端查阅这些故障,有助于发现并解决通信问题。 通信故障不会记录到数据库而持久化,将在服务端重启后丢失, 如果故障依旧存在将在被通信驱动发现时重新报告。

监控(Timer,Trigger,Alarm)

设备和属性配置完成后通信将开始工作,数据也将自动读取,但此时并不会有任何其它额外的行为。 从设备获取的数据仅在程序内存中存在既不会存储到数据库也不会有报警触发。 如果要监测某些属性是否触发报警,应配置触发器设定报警条件; 如果要定时执行属性动作,应配置触发器并绑定到定时器。

触发器支持以下条件:

  • NONE(0, "无");
  • GREATER(1, "大于");
  • EQUAL(2, "等于");
  • LESS(3, "小于");
  • SET(4, "设定");
  • GREATER_EQUAL(5, "大于等于");
  • LESS_EQUAL(6, "小于等于");
  • RESET(7, "重置");
  • UNEQUAL(8, "不等于")。

触发器满足条件时属性值将记录到数据库,因此无条件触发器(NONE)将无条件记录属性值到数据库。 设定行为会将指定值发送到设备,因此将会触发设备行为,应在确保安全的情况下使用。 重置行为是重置属性的内存中的当前值,设备的信号是不能重置地;

危险

SCADA对设备发起的控制属于远程控制,与现场控制不同, 由于无法获知到潜在的危险这将有可能导致严重的事故, 因此当配置自动控制时应确保任何情况不会导致事故发生。

工厂车间的设备,不建议使用远程控制功能。而公共建筑的照明或通风设备,可以采用远程控制功能, 在安全情况下这些设备即便控制失败也不会导致严重后果。

触发器支持以下报警等级:

  • RECORD(0, "记录"):报警等级 0 ,记录,无提示;
  • NOTICE(1, "一级报警"):报警等级 1 ,一般,须关注;
  • WARNING(2, "二级报警"):报警等级 2 ,重要,须响应;
  • DANGER(3, "三级报警"):报警等级 3 ,严重,须应急。

定时器设计为可重复执行或一次性执行,定时器中可绑定多个触发器, 这些定时器中的触发器将仅在定时器计时到达时执行。 未绑定定时器的触发器将在属性值变化时执行,这将提高触发器的执行效率; 但并不是所有情况都适用,如果希望定时监测执行触发器,定时器将提供灵活性。 绑定定时器的触发器将由定时器执行,则不会在属性值变化时执行。

定时器依据服务器的时钟计算时间,因此要确保定时器的准确性,应保证服务器的时钟准确。 通常情况下为服务器启用互联网时钟同步即可满足日常需求, 如果需要更加准确的计时可考虑部署时间服务器(NTP Server)。

设备故障监测

设备故障监测也属于触发器的范畴,如果设备具有故障自检功能, 那么这些信息也应绑定到具体属性,并配置触发器监测这些属性,从而触发设备故障报警。 如果设备出现故障导致通信模块失效,那么触发器也将失效,此时将仅报告设备离线的通信故障。

注意区分

通信故障不同于设备故障, 通信故障由通信驱动报告,用于检查排除通信问题。 设备故障由设备自行监测(如果有)并通过属性反映出来,必须由属性配置的触发器激发(报警)。

权限(User,Role,Employee)

用户(User)可以在系统中具有多个职员(Employee)身份, 职员(Employee)可拥有多个系统角色(Role), 角色(Role)拥有指定功能。 这是常见的用户权限设计模式,可灵活的分配用户功能权限, 在大规模实施时,通常需要多用户分别管理指定的区域,这将使工作更加容易开展。

角色可分配的权限由系统定义,所有将影响数据的操作均需要授权才能使用,否则操作将被拒绝。 所有获取数据的操作均不需要授权即可使用,仅需要验证用户身份,但可接触的数据范围受到区域限制。 因此角色决定职员可使用的功能,而职员所在的区域决定职员可接触的数据范围。