我正在开发一个 OPC(DA) 服务器,该服务器创建一组服务器项并将它们发送到 OPC 客户端。每个项目都有一个“名称”值,用于确定项目的显示顺序。每个项目的名称结构如下:
Sites.<SiteID>.CurrentValue
所以数据可能看起来像:
Sites.0001.CurrentValue
Sites.0002.CurrentValue
Sites.0003.CurrentValue
Etc.
或以树格式:
Sites:
0001:
CurrentValue
0002:
CurrentValue
0003:
CurrentValue
Etc.
由于项目是按名称排序的,并且项目名称的唯一可变部分是站点 ID,因此项目实际上是按站点 ID 排序的。当 OPC 客户端显示项目时会出现问题。它们的显示顺序完全不同:
Sites:
6219
13501
13502
4000
4001
626262
4002
4003
4004
4005
4006
4007
4008
0030
4009
0200
79791
Etc.
我一直在尝试推断出某种逻辑排序系统来给出这个结果,但我什么也没看到。我已经用几个 OPC 客户端(Matrikon、dOPC、KEP)进行了尝试,它们都始终按上述顺序呈现项目,这让我相信存在某种通用 OPC 订购系统,但我无法做到找到任何东西。
我的希望是,如果我能找出 OPC 是如何订购这些项目的,我可以在 OPC 服务器中订购这些项目,以便它们在 OPC 客户端中以逻辑顺序显示。
我的服务器是基于 Advosol 的(我没有足够的声誉来创建新标签)。