分布式控制系统
内置于 Lacerta 平台的监控级 DCS
核心理念
Lacerta DCS 的基本理念
DCS 基础
- 容错集群与集群服务
- 高效互联
- 统一数据模型与对象结构
- 响应式架构与订阅机制
- 内置场景与计算风格
DCS 功能
- 运行复杂的分散式逻辑
- 设备远程控制
- 功能组控制
- 提高自动化程度
- 减少操作员介入
监控级 DCS 能做什么
协调主机。 监控级 DCS 处理上层分布式控制任务——首先是协调主机,即集群客户端。
并非调节器的替代品。 它不执行诸如调节器之类的经典自动控制任务,但可以控制允许一定延迟的次要过程。
PLC 兼容性。 它与远程 I/O 模块无缝协作,并可协调集群客户端的设备节点(如 PLC),前提是具备所需的接口和 API。
监控级 DCS 拓扑
监控级 DCS 集群节点(R)通过(相对于集群的)客户端互联对接主机(C)。
DCS 组件对接示意图
核心
8
主机
16
集群互连
2
主机互连
2
分段
物理实现方式
Lacerta DCS 如何对接 PLC 与远程 I/O 设备
集散控制系统层级
两级 DCS
监控级 DCS 的主机(客户端)本身可以是经典 DCS。
监控级 DCS(上层)
- 协调下层 DCS 设备
- 协调对接的子系统
- 服务器上的复杂逻辑
- 允许显著延迟
下层 DCS(下层)
- 设备控制
- 协调对接的 PLC
- DCS 节点上的适度逻辑
- 保证低延迟
统一的端到端 DCS
- 协调所有设备
- 统一命名空间
- 统一编程语言
- 端到端诊断
两级 DCS 的端到端逻辑
算法分布在端到端 DCS 的所有节点上,并在需要时提供并行化。
算法在节点间的流转
分布式算法
-------------------------------------------- @node C01
src = {AI01_0, AI01_1, AI03_2, AI03_3} -- LIO ×2, LIO C02 ×2
dst = {AO01_0, AO01_1} -- LIO
x = read(src) -- OP01 R
y = {f01(x), f02(x)} -- OP02 C
write(dst, y) -- OP03 W
-------------------------------------------- @node C02
src = {AI03_0, AI03_1, AI01_2, AI01_3} -- LIO ×2, LIO C01 ×2
dst = {AO03_0, AO03_1} -- LIO
x = read(src) -- OP04 R
y = {f03(x), f04(x)} -- OP05 C
write(dst, y) -- OP06 W
-------------------------------------------- @node R01
src = {AI02_0, AI02_1, AI04_2, AI04_3} -- RIO ×2, RIO R02 ×2
dst = {AO02_0, AO02_1, AO04_2, AO04_3} -- RIO
x = read(src) -- OP07 R
y = {f05(x), f06(x), f07(x), f08(x)} -- OP08 C
write(dst, y) -- OP09 W
-------------------------------------------- @node R02
src = {AI04_0, AI04_1, AI02_2, AI02_3} -- RIO ×2, RIO R01 ×2
dst = {AO04_0, AO04_1, AO02_2, AO02_3} -- RIO
x = read(src) -- OP10 R
y = {f09(x), f10(x), f11(x), f12(x)} -- OP11 C
write(dst, y) -- OP12 W
-------------------------------------------- @node C01
src = {AI01_2, AI01_3} -- LIO ×2
dst = {AO01_2, AO01_3} -- LIO
x = read(src) -- OP13 R
z = {R02.ai04_0, R02.ai04_1} -- OP13 R 缓存 R02
y = {f13(x, z), f14(x, z)} -- OP14 C
write(dst, y) -- OP15 W
-------------------------------------------- @node C02
src = {AI03_2, AI03_3} -- LIO ×2
dst = {AO03_2, AO03_3} -- LIO
x = read(src) -- OP16 R
z = {R01.ai02_0, R01.ai02_1} -- OP16 R 缓存 R01
y = {f15(x, z), f16(x, z)} -- OP17 C
write(dst, y) -- OP18 W
时序控制
如果控制逻辑允许无锁并行算法,完全可以实现。
各节点时序
两级 DCS 能做什么
多级算法
- 算法由单一描述定义
- 其各部分在不同节点上运行
- 算法在集群之间拆分
- 不同层级逻辑的分配
- 端到端诊断
任意深度的 I/O
- 在任意层级访问 I/O
- 支持远程 I/O
- 统一的访问与处理风格
- 多重读取访问
- 输出保护与锁定
两个运行环境,一种语言
- 服务器上的 Lacerta DCS
- 控制器上的 Multicontrol DCS
- 端到端开发环境,统一语言
- 一种语言,通用语法
- 在节点之间迁移逻辑
Lacerta 监控级 DCS 与 Multicontrol 下层 DCS 实现端到端对接。俄罗斯软件登记册第 33304 号。