王常力 (中国浙江省杭州市下沙经济技术开发区19号路北1号, Zhejiang 8, 310018, CN)
SHI, Bo (North No.1, No.19 Road Xiasha Economic and Technological Development Zon, Hangzhou Zhejiang 8, 310018, CN)
施波 (中国浙江省杭州市下沙经济技术开发区19号路北1号, Zhejiang 8, 310018, CN)
ZHAO, Yanling (North No.1, No.19 Road Xiasha Economic and Technological Development Zon, Hangzhou Zhejiang 8, 310018, CN)
赵艳领 (中国浙江省杭州市下沙经济技术开发区19号路北1号, Zhejiang 8, 310018, CN)
杭州和利时自动化有限公司 (中国浙江省杭州市下沙经济技术开发区19号路北1号, Zhejiang 8, 310018, CN)
WANG, Changli (North No.1, No.19 Road Xiasha Economic and Technological Development Zon, Hangzhou Zhejiang 8, 310018, CN)
王常力 (中国浙江省杭州市下沙经济技术开发区19号路北1号, Zhejiang 8, 310018, CN)
SHI, Bo (North No.1, No.19 Road Xiasha Economic and Technological Development Zon, Hangzhou Zhejiang 8, 310018, CN)
施波 (中国浙江省杭州市下沙经济技术开发区19号路北1号, Zhejiang 8, 310018, CN)
ZHAO, Yanling (North No.1, No.19 Road Xiasha Economic and Technological Development Zon, Hangzhou Zhejiang 8, 310018, CN)
| 权 利 要 求 1、 一种分布式控制系统的数据共享实现方法, 其特征在于, 所述方法包 括: 应答控制站接收请求控制站发起的数据共享请求,所述数据共享请求中携 带有共享数据的标识信息; 所述应答控制站根据所述共享数据的标识信息, 生成应答反馈, 所述应答 反馈包括共享数据包以及应答信息; 所述应答控制站向所述请求控制站发送所述应答反馈,实现所述请求控制 站和应答控制站之间的数据共享。 2、 根据权利要求 1所述的分布式控制系统的数据共享实现方法, 其特征 在于, 所述应答控制站根据所述共享数据的标识信息, 生成应答反馈, 包括: 所述应答控制站根据所述共享数据的标识信息,判断是否包含所述请求控 制站请求共享的所有数据; 如果是, 则生成包含所述请求控制站请求共享的所有数据的共享数据包, 并生成第一应答标记信息,所述第一应答标记信息用于标识所述共享数据包包 含所述请求控制站请求共享的所有数据; 如果否, 则生成包含当前存在数据的共享数据包, 并生成第二应答标记信 息,所述第二应答标记信息用于标识所述共享数据包未包含所述请求控制站请 求共享的所有数据。 3、 根据权利要求 2所述的分布式控制系统的数据共享实现方法, 其特征 在于, 所述应答控制站根据所述共享数据的标识信息, 判断是否包含所述请求 控制站请求共享的数据, 包括: 所述应答控制站查找哈希表,判断所述哈希表中是否包含与所述标识信息 相匹配的变量数据, 若是, 则确定包含所述请求控制站请求共享的数据。 4、 根据权利要求 1所述的分布式控制系统的数据共享实现方法, 其特征 在于, 当某控制站需要向多个控制站发送数据共享请求、并需要向另外多个控 制站发送应答反馈时, 所述方法还包括: 所述某控制站确定发送所有数据共享请求和应答信息的发送周期,根据发 送某一共享请求和某一应答信息的控制周期,获得所述发送周期包含的控制周 期数目; 所述某控制站利用一个发送周期中的最后一个控制周期发送所述所有应 答信息以及共享数据包; 所述某控制站根据需要接收所述共享请求的控制站数目、以及一个发送周 期中剩余的控制周期,获得剩余的每个控制周期内发送所述数据共享请求的控 制站数目,并在剩余的每个控制周期中向相应数目的控制站发送所述数据共享 请求。 5、 根据权利要求 1~4中任一项所述的分布式控制系统的数据共享实现方 法, 其特征在于, 所述方法还包括: 所述请求控制站判断在预置时间内是否接收到共享数据包,如果否, 则重 新发起所述数据共享请求。 6、 一种分布式控制系统的数据共享实现装置, 其特征在于, 所述装置包 括: 数据共享请求接收模块,用于控制应答控制站接收请求控制站发起的数据 共享请求, 所述数据共享请求中携带有共享数据的标识信息; 应答反馈生成模块,用于控制所述应答控制站根据所述共享数据的标识信 息, 生成应答反馈, 所述应答反馈包括共享数据包以及应答信息; 应答反馈发送模块,用于控制所述应答控制站向所述请求控制站发送所述 应答反馈, 实现所述请求控制站和应答控制站之间的数据共享。 7、 根据权利要求 6所述的分布式控制系统的数据共享实现装置, 其特征 在于, 所述应答反馈生成模块包括: 判断子模块, 用于控制所述应答控制站根据所述共享数据的标识信息, 判 断是否包含所述请求控制站请求共享的所有数据; 如果是, 则触发第一应答反 馈子模块; 如果否, 则触发第二应答反馈子模块; 所述第一应答反馈子模块,用于生成包含所述请求控制站请求共享的所有 数据的共享数据包, 并生成第一应答标记信息, 所述第一应答标记信息用于标 识所述共享数据包包含所述请求控制站请求共享的所有数据; 所述第二应答反馈子模块, 用于生成包含当前存在数据的共享数据包, 并 生成第二应答标记信息,所述第二应答标记信息用于标识所述共享数据包未包 含所述请求控制站请求共享的所有数据。 8、 根据权利要求 7所述的分布式控制系统的数据共享实现装置, 其特征 在于, 所述判断子模块通过控制所述应答控制站查找哈希表, 判断所述哈希表 中是否包含与所述标识信息相匹配的变量数据, 若是, 则确定包含所述请求控 制站请求共享的数据。 9、 根据权利要求 6所述的分布式控制系统的数据共享实现装置, 其特征 在于, 当某控制站需要向多个控制站发送数据共享请求、并需要向另外多个控 制站发送应答反馈时, 所述装置还包括: 周期获取模块,用于控制所述某控制站确定发送所有数据共享请求和应答 信息的发送周期,根据发送某一共享请求和某一应答信息的控制周期, 获得所 述发送周期包含的控制周期数目; 共享请求发送模块,用于所述某控制站根据需要接收所述共享请求的控制 站数目、以及一个发送周期中剩余的控制周期, 获得剩余的每个控制周期内发 送所述数据共享请求的控制站数目,并在剩余的每个控制周期中向相应数目的 控制站发送所述数据共享请求; 则所述应答反馈发送模块用于控制所述某控制站利用一个发送周期中的 最后一个控制周期发送所述所有应答信息以及共享数据包。 10、根据权利要求 6~9中任一项所述的分布式控制系统的数据共享实现装 置, 其特征在于, 所述装置还包括: 重发请求模块,用于控制所述请求控制站判断在预置时间内是否接收到共 享数据包, 如果否, 则重新发起所述数据共享请求。 |
本申请要求于 2010 年 6 月 1 日提交中国专利局、 申请号为 201010192591.9、 发明名称为 "一种分布式控制系统的数据共享实现方法及 置"的中国专利申请的优先权, 其全部内容通过引用结合在本申请中。 技术领域 本发明涉及工业自动化技术领域, 更具体地说, 涉及一种分布式控制系统 的数据共享实现方法及装置。 背景技术 通常, 分布式控制系统( Distributed Control System, DCS )的架构是网络 拓朴结构, 所有的分布节点, 例如: 现场控制站, 构成一个局域网。 所谓数据 共享是指某个控制站从现场获取的数据(例如 采集的温度、压力、流量等数据) 可以被其它控制站引用。
目前, DCS系统中实现分布节点之间的数据共享处理方 式可以归结为以下 对称组态以及限制被引用总站数、 定时全部输送被引用数据的方式:
工程师利用组态软件进行对称组态时,对于需 要共享的数据,在引用控制 站和被引用控制站都进行标记, 例如: 15号控制站采集的锅炉温度定义为 VAR15_T, 而 16号控制站也需要共享这个锅炉的温度, 此时工程师在组态时 按照约定的格式分别在 15和 16站进行标记,就可以实现锅炉温度在 15和 16站的 共享了。在实现数据共享时,必须保证各控制 站之间共享的数据类型完全相同。 如果需要共享的变量很多,会通过一个数据包 包含这些共享的变量。在引用与 被引用控制站对数据包进行标记时必须保证, 数据包中的变量个数相同且变量 排列次序完全一致。
除此之外, 多数组态软件对共享被引用数据的总控制站数 目进行限制,如 上所述, 15号站采集的锅炉温度只能被有限的(例如低 20个)其它控制站引 用, 而在处理这些被引用的数据时, 采用的通信方式大多是网络通信, 实现方 式是定时周期循环把被引用的数据全部发出至 相应的控制站。
但是, 通过发明人的研究发现, 现有技术中仍然存在着以下缺点: 数据共享的控制站之间具有很高的耦合度,且 共享数据的可扩展性差。这 是由于:
首先,对称组态虽然取得了引用与被引用方的 数据共享的对称(即彼此相 知), 但是也大大提高了控制器之间的耦合度, 例如: 当 16号站不仅需要引用 15号站采集的锅炉温度,还要引用 10号站采集的某个开关阀的状态,根据对称 原则所有与 16号站的关联的控制站都要重新组态程序并下 到控制器之中,这 种 "牵一发而动全身" 的耦合效应在实际控制中是不可取的, 甚至是不能接受 的; 而且, 在组态的时候, 如果数据包包含的数据次序颠倒或者类型不同 , 那 么整包数据包的数据都将做废弃处理;
其次, 目前的 DCS系统是网络拓朴结构, 控制器互为冗余, 理论上一个域 内是可以支持 100以上的分布节点的。 现有 DCS系统中控制站之间的数据共享 在实际引用中具有: 交叉引用的控制站个数多,控制站与控制站之 间的引用的 数据少的特点。 然而, 随着被控对象的增多以及现场情况的复杂, 这种限制被 引用总站数的方案在复杂的控制现场(如核电 控制站 )就显得捉襟见肘;而且, 现有这种不考虑网络负载, 一次全部发送被引用数据的做法在某些情况下 (如 数据量大时 )对 DCS系统核心控制器程序的影响也大为增加。
由此可见, 现有技术在分布式控制系统中无法实现有效的 数据共享。
发明内容
有鉴于此,本发明实施例提供一种分布式控制 系统的数据共享实现方法及 装置, 以在分布式控制系统中实现有效的数据共享。
本发明实施例提供一种分布式控制系统的数据 共享实现方法, 包括: 应答控制站接收请求控制站发起的数据共享请 求,所述数据共享请求中携 带有共享数据的标识信息;
所述应答控制站根据所述共享数据的标识信息 , 生成应答反馈, 所述应答 反馈包括共享数据包以及应答信息;
所述应答控制站向所述请求控制站发送所述应 答反馈,实现所述请求控制 站和应答控制站之间的数据共享。
优选的,所述应答控制站根据所述共享数据的 标识信息,生成共享数据包, 包括: 所述应答控制站根据所述共享数据的标识信息 ,判断是否包含所述请求控 制站请求共享的所有数据;
如果是, 则生成包含所述请求控制站请求共享的所有数 据的共享数据包, 并生成第一应答标记信息,所述第一应答标记 信息用于标识所述共享数据包包 含所述请求控制站请求共享的所有数据;
如果否, 则生成包含当前存在数据的共享数据包, 并生成第二应答标记信 息,所述第二应答标记信息用于标识所述共享 数据包未包含所述请求控制站请 求共享的所有数据。
优选的, 所述应答控制站根据所述共享数据的标识信息 , 判断是否包含所 述请求控制站请求共享的数据, 包括:
所述应答控制站查找哈希表,判断所述哈希表 中是否包含与所述标识信息 相匹配的变量数据, 若是, 则确定包含所述请求控制站请求共享的数据。
优选的, 当某控制站需要向多个控制站发送数据共享请 求、并需要向另外 多个控制站发送应答反馈时, 所述方法还包括:
所述某控制站确定发送所有数据共享请求和应 答信息的发送周期,根据发 送某一共享请求和某一应答信息的控制周期, 获得所述发送周期包含的控制周 期数目;
所述某控制站利用一个发送周期中的最后一个 控制周期发送所述所有应 答信息以及共享数据包;
所述某控制站根据需要接收所述共享请求的控 制站数目、以及一个发送周 期中剩余的控制周期,获得剩余的每个控制周 期内发送所述数据共享请求的控 制站数目,并在剩余的每个控制周期中向相应 数目的控制站发送所述数据共享 请求。
进一步, 所述方法还包括:
所述请求控制站判断在预置时间内是否接收到 共享数据包,如果否, 则重 新发起所述数据共享请求。
一种分布式控制系统的数据共享实现装置, 包括:
数据共享请求接收模块,用于控制应答控制站 接收请求控制站发起的数据 共享请求, 所述数据共享请求中携带有共享数据的标识信 息;
应答反馈生成模块,用于控制所述应答控制站 根据所述共享数据的标识信 息, 生成应答反馈, 所述应答反馈包括共享数据包以及应答信息;
应答反馈发送模块,用于控制所述应答控制站 向所述请求控制站发送所述 应答反馈, 实现所述请求控制站和应答控制站之间的数据 共享。
优选的, 所述应答反馈生成模块包括:
判断子模块, 用于控制所述应答控制站根据所述共享数据的 标识信息, 判 断是否包含所述请求控制站请求共享的所有数 据; 如果是, 则触发第一应答反 馈子模块; 如果否, 则触发第二应答反馈子模块;
所述第一应答反馈子模块,用于生成包含所述 请求控制站请求共享的所有 数据的共享数据包, 并生成第一应答标记信息, 所述第一应答标记信息用于标 识所述共享数据包包含所述请求控制站请求共 享的所有数据;
所述第二应答反馈子模块, 用于生成包含当前存在数据的共享数据包, 并 生成第二应答标记信息,所述第二应答标记信 息用于标识所述共享数据包未包 含所述请求控制站请求共享的所有数据。
优选的, 所述判断子模块通过控制所述应答控制站查找 哈希表, 判断所述 哈希表中是否包含与所述标识信息相匹配的变 量数据, 若是, 则确定包含所述 请求控制站请求共享的数据。
优选的, 当某控制站需要向多个控制站发送数据共享请 求、并需要向另外 多个控制站发送应答反馈时, 所述装置还包括:
周期获取模块,用于控制所述某控制站确定发 送所有数据共享请求和应答 信息的发送周期,根据发送某一共享请求和某 一应答信息的控制周期, 获得所 述发送周期包含的控制周期数目;
共享请求发送模块,用于所述某控制站根据需 要接收所述共享请求的控制 站数目、 以及一个发送周期中剩余的控制周期, 获得剩余的每个控制周期内发 送所述数据共享请求的控制站数目,并在剩余 的每个控制周期中向相应数目的 控制站发送所述数据共享请求;
则,所述应答反馈发送模块用于控制所述某控 制站利用一个发送周期中的 最后一个控制周期发送所述所有应答信息以及 共享数据包。
进一步, 所述装置还包括:
重发请求模块,用于控制所述请求控制站判断 在预置时间内是否接收到共 享数据包, 如果否, 则重新发起所述数据共享请求。
同现有技术相比, 本发明提供的技术方案中, 采用非对称组态方式, 仅由 请求共享数据的控制站在组态时对请求共享的 数据设置标识信息,并将该共享 数据的标识信息携带于请求控制站发起的数据 共享请求中, 这样,应答控制站 可以根据共享数据的标识信息, 生成共享数据包,从而避免某一请求控制站的 数据共享需求发生变化时,与其相关的其它控 制站的组态发生相应变化的耦合 效应,从而可以降低控制站之间的耦合性, 能够在分布式控制系统中实现有效 的数据共享。 附图说明 为了更清楚地说明本发明实施例的技术方案, 下面将对实施例或现有技术 描述中所需要使用的附图作筒单地介绍,显而 易见地, 下面描述中的附图仅仅 是本发明的一些实施例,对于本领域普通技术 人员来讲,在不付出创造性劳动 的前提下, 还可以根据这些附图获得其它的附图。
图 1 为本发明实施例提供的一种分布式控制系统的 数据共享实现方法步 骤流程图;
图 2为本发明实施例应答控制站根据所述共享数 的标识信息,生成应答 反馈的流程示意图;
图 3为本发明实施例数据共享请求和应答反馈的 送过程的流程示意图; 图 4 为本发明实施例提供的一种分布式控制系统的 数据共享实现装置结 构示意图;
图 5 为本发明实施例提供的另一种分布式控制系统 的数据共享实现装置 结构示意图;
图 6 为本发明实施例提供的又一种分布式控制系统 的数据共享实现装置 结构示意图;
图 7 为本发明实施例提供的另外一种分布式控制系 统的数据共享实现装 置结构示意图。 具体实施方式
下面将结合本发明实施例中的附图,对本发明 实施例中的技术方案进行清 楚、 完整地描述, 显然, 所描述的实施例仅仅是本发明一部分实施例, 而不是 全部的实施例。基于本发明中的实施例, 本领域普通技术人员在没有做出创造 性劳动前提下所获得的所有其它实施例, 都属于本发明保护的范围。
下面首先对本发明提供的分布式控制系统的数 据共享实现方法进行说明, 参照图 1所示, 所述方法包括:
步骤 101、 应答控制站接收请求控制站发起的数据共享请 求, 所述数据共 享请求中携带有共享数据的标识信息;
步骤 102、所述应答控制站根据所述共享数据的标识 信息,生成应答反馈, 所述应答反馈包括共享数据包以及应答信息;
步骤 103、 所述应答控制站向所述请求控制站发送所述应 答反馈, 实现所 述请求控制站和应答控制站之间的数据共享。 本发明提供的技术方案中, 采用非对称组态方式,仅由请求共享数据的控 制站在组态时对请求共享的数据设置标识信息 ,并将该共享数据的标识信息携 带于请求控制站发起的数据共享请求中, 这样,应答控制站可以根据共享数据 的标识信息, 生成共享数据包,从而避免某一请求控制站的 数据共享需求发生 变化时, 与其相关的其它控制站的组态发生相应变化的 耦合效应,从而可以降 低控制站之间的耦合性, 能够在分布式控制系统中实现有效的数据共享 。
为了清楚描述非对称组态, 仍以 DCS系统中的 15号控制站和 16号控制 站为例进行说明。 当 16号控制站需要引用 15号控制站采集到的锅炉温度(假 设 15号控制站采集的锅炉温度定义为 VAR15_T ) , 此时 16号控制站只需在 组态的时候对 15号站定义的锅炉温度参数做个引用标记即可 (如标记形式为 15#VAR15_T,通过该标记形式代表要引用 15号控制站的 VAR15_T即锅炉温 度), 15号控制站在组态时不必知道 16号控制站要引用自己的锅炉温度参数, 控制站之间共享信息的身份标识是工程师组态 时对共享信息的变量的命名。 在本发明的一个优选实施例中,所述应答控制 站根据所述共享数据的标识 信息, 生成应答反馈可以通过以下具体流程实现, 如图 2所示, 包括: 步骤 201、 所述应答控制站获取数据共享请求中携带的共 享数据的标识信 息;
步骤 202、 所述应答控制站根据所述共享数据的标识信息 , 判断是否包含 所述请求控制站请求共享的所有数据; 如果是, 则继续步骤 203; 如果否, 则 继续步骤 204;
步骤 203、 生成包含所述应答控制站请求共享的所有数据 的共享数据包, 并生成第一应答标记信息,所述第一应答标记 信息用于标识所述共享数据包包 含所述请求控制站请求共享的所有数据;
步骤 204、 生成包含当前存在数据的共享数据包, 并生成第二应答标记信 息,所述第二应答标记信息用于标识所述共享 数据包未包含所述请求控制站请 求共享的所有数据。 对于请求控制站请求共享的数据,应答控制站 可能不存在。对于应答控制 站不存在的共享数据, 现有技术中的处理方案是将整个请求数据包全 部丟弃。 而本发明技术方案中,应答控制站针对请求控 制站发起的数据共享请求采用了 挑选处理, 所谓挑选处理就是: 如果应答控制站不存在某些请求共享的数据, 则可以根据共享数据的标识信息剔除不存在的 数据,而引用存在的数据生成共 享数据包, 仍以 16号控制站需要引用 15号控制站采集的数据信息为例: 本发明实施例中, 16 号控制站发送的数据共享请求内容包括: 应答控制 站 15号控制站的全部信息、 共享数据的标识信息及应答标记信息, 其中, 所 述应答标记信息用于标识共享数据包中是否包 含 16号控制站所请求共享的所 有数据。
需要说明的是, 所述应答控制站根据所述共享数据的标识信息 , 判断是否 包含所述请求控制站请求共享的数据的实现方 式可以是:
所述应答控制站查找哈希表,判断所述哈希表 中是否包含与所述标识信息 相匹配的变量数据, 若是, 则确定包含所述请求控制站请求共享的数据。 仍然以上述 15号控制站和 16号控制站为例进行说明, 15号控制站接收 到 16号控制站发送的数据共享请求, 根据数据共享请求中携带的共享数据的 标识信息, 对所有 16号控制站的数据共享信息在本地哈希表里进 搜索, 控 制站之间的共享数据的标识是组态定义的变量 名, 因此, 只要变量名和数据类 型匹配就应答此请求信息,如果不匹配则构造 共享数据虚信息通知请求方, 通 过共享数据虚信息表征不存在的数据有哪些。 因此, 15 号控制站在包含所述 应答控制站请求共享的所有数据情形下, 向 16号控制站发送的反馈信息为: 包含全部共享数据的共享数据包以及标识所述 共享数据包包含所述请求控制 站请求共享的所有数据的第一应答标记信息; 而在未包含所述请求控制站请求 共享的所有数据的情形下, 向 16号控制站发送的反馈信息为: 包含当前存在 数据的共享数据包、共享数据虚信息以及标识 所述共享数据包未包含所述请求 控制站请求共享的所有数据的第二应答标记信 息。
16号控制站接收到 15号控制站发送的反馈信息, 根据应答标记信息判断 反馈信息中是否包含所有共享数据; 当反馈信息中包含共享数据虚信息时, 则 可以根据该虚信息获得 15号控制站中不存在的共享数据, 因此, 可以直接对 存在的共享数据加以利用。
实际应用中, 当某控制站需要向多个控制站发送数据共享请 求、并需要向 另外多个控制站发送应答反馈时,如图 3所示,数据共享请求和应答反馈的发 送过程包括:
步骤 301、 所述某控制站确定发送所有数据共享请求和应 答信息的发送周 期,根据发送某一共享请求和某一应答信息的 控制周期, 获得所述发送周期包 含的控制周期数目;
步骤 302、 所述某控制站利用一个发送周期中的最后一个 控制周期发送所 述所有应答信息以及共享数据包;
步骤 303、 所述某控制站根据需要接收所述共享请求的控 制站数目、 以及 一个发送周期中剩余的控制周期,获得剩余的 每个控制周期内发送所述数据共 享请求的控制站数目,并在剩余的每个控制周 期内中向相应数目的控制站发送 所述数据共享请求。
该实施例中,提供了一种控制着自适应发送数 据共享请求和应答反馈的实 施方案。 DCS 系统包含 4艮多现场控制站, 每个现场控制站的数据 (如采集到的温 度、 压力等)都可能被其它控制站共享, 同时自身的数据也有可能共享其它控 制站的数据。 例如: 15号控制站需要共享 20, 21…… 35号每个控制站的 30 个变量, 同时 40, 41…… 55号控制站也需要共享 15号控制站的变量。 因此, 对于 15号控制站而言, 15号控制站需要向 20, 21 ... ...35总共 16个控制站发 出数据共享请求; 15号控制站也需要对 40, 41 ... ...55号控制站做出应答反馈。 可以看出, 15 号控制站发出所有数据共享请求以及应答反馈 将会耗费很长的 时间, 如果超过控制周期将是不允许的, 不允许的原因如下: 控制周期可以理解为在一段时间内对许多任务 的调度周期,而且每个任务 的执行不能超过控制周期。 当控制周期为 1秒时, 则如果所有数据共享请求以 及应答反馈花费 3秒肯定是不允许的。 可以理解的是,发送周期就是发送数据共享请 求与对其它控制站共享信息 的应答反馈的时间间隔, 一般, 发送周期要大于控制周期几倍。 假设控制周期 为 1秒, 发送周期为 10秒, 发出所有数据共享请求与所有应答反馈将花费 5 秒, 在一个控制周期内做完显然是不允许的。 但是发送周期为 10秒, 也就是 执行此任务只要在 10秒之内做完就可以, 而不必要一次做完。 因此, 对于数 据共享请求信息的发送可以采用逐次发送即自 适应发送的形式,具体实现方式
:¾口下: 假设某控制站需要向其它站请求数据共享的总 站数为 M ( 36个) 发送 周期为 SendCycle (假设为 10秒) , 控制周期为 CtrlCycyle ( 1秒) , 则发送 周期内分段个数 Step=SendCycle/CtrlCycyle ( 10 ) , 其中一个控制周期用来发 送应答信息, 其余的用来发送请求信息, 因此一个控制周期平均发送请求信息 的目的站数为 TotalNum=M/ ( Step-1 ) ( 4个) 。 可见, 自适应发送数据共享 请求其实是将大任务分割为一个一个的小任务 并逐步完成。其中,对于应答反 馈的发送, 由于相比较数据共享请求来说, 数据量不大且耗时不长, 则可利用 一个控制周期完成,通常, 利用一个发送周期中的最后一个控制周期发送 所有 应答信息以及共享数据包。 可见, 采用自适应发送策略,数据共享请求可以适应 请求控制站总数的变 化进行发送, 使得多控制站之间的负载更为均衡。 通常, DCS 系统的网络结构采用双网冗余策略, 即根据对双网的诊断结 果选择利用哪个网段进行发送。
除此之外, 由于控制站之间的数据共享是非对称的, 就需要请求控制站主 动发出请求,接收应答控制站的应答反馈,根 据应答反馈的结果而做相应的处 理。 但是, 请求控制站发出的数据共享请求之后, 未必就可以接收到应答控制 站的应答反馈, 或者应答反馈未必正确, 这时为了建立共享信息的完备性(即 彼此相知), 可以采用重发请求机制, 即: 所述请求控制站判断在预置时间内 是否接收到共享数据包, 如果否, 则重新发起所述数据共享请求。 预置时间可 以根据实际应用由本领域技术人员进行设定, 本发明实施例对此不做具体限 定。
需要说明的是,请求控制站与应答控制站之间 建立起 "数据共享请求一一 应答反馈" 的数据传输模式之后, 在一段时间之内, 如果请求控制站请求共享 的数据没有变化时, 则请求控制站不需要再次向应答控制站发送数 据共享请 求, 请求控制站可以根据实际应用, 采用周期传送应答反馈的方式, 将请求控 制站请求共享的数据发送至请求控制站。当请 求控制站请求共享的数据发生变 化时, 则需要请求控制站重新向应答控制站发送请求 信息。 此外, 本发明实施例技术方案中所提到的哈希表(包 含了所有可能成为共 享信息的变量集合)的建立时间为组态程序下 装到控制站以后, 通常, 哈希表 最大有 2万点项, 由于现场控制站是典型的嵌入式设备, 资源有限, 如果在现 场控制站平台下进行哈希表的创建将耗时几百 毫秒,对于实时控制系统, 这是 不可取的。 考虑到 DCS系统的组网特点, 可以把工程师站和现场控制站作为 一个整体, 充分利用工程师站 (PC机)的强大资源, 使用负载转移技术, 把耗 时部分即生成哈希表的过程在工程师站完成保 存成文件,待下装时下载到现场 控制站的程序之中。
相应上述现场总线仪表管理系统的数据管理 方法,本发明实施例还提供了 一种分布式控制系统的数据共享实现装置,如 图 4所示,该装置具体可以包括: 数据共享请求接收模块 401 , 用于控制应答控制站接收请求控制站发起的 数据共享请求, 所述数据共享请求中携带有共享数据的标识信 息;
应答反馈生成模块 402, 用于控制所述应答控制站根据所述共享数据的 标 识信息, 生成应答反馈, 所述应答反馈包括共享数据包以及应答信息;
应答反馈发送模块 403 , 用于控制所述应答控制站向所述请求控制站发 送 所述应答反馈, 实现所述请求控制站和应答控制站之间的数据 共享。
在本发明的另外一个优选实施例中,如图 5所示, 所述应答反馈生成模块 402包括:
判断子模块 4021 , 用于控制所述应答控制站根据所述共享数据的 标识信 息, 判断是否包含所述请求控制站请求共享的所有 数据; 如果是, 则触发第一 应答反馈子模块 4022; 如果否, 则触发第二应答反馈子模块 4023;
所述第一应答反馈子模块 4022, 用于生成包含所述请求控制站请求共享 的所有数据的共享数据包, 并生成第一应答标记信息, 所述第一应答标记信息 用于标识所述共享数据包包含所述请求控制站 请求共享的所有数据;
所述第二应答反馈子模块 4023 , 用于生成包含当前存在数据的共享数据 包, 并生成第二应答标记信息, 所述第二应答标记信息用于标识所述共享数据 包未包含所述请求控制站请求共享的所有数据 。
其中, 所述判断子模块通过控制所述应答控制站查找 哈希表, 判断所述哈 希表中是否包含与所述标识信息相匹配的变量 数据, 若是, 则确定包含所述请 求控制站请求共享的数据。
当某控制站需要向多个控制站发送数据共享请 求、并需要向另外多个控制 站发送应答反馈时, 如图 6所示, 所述装置还包括:
周期获取模块 404, 用于控制所述某控制站确定发送所有数据共享 请求和 应答信息的发送周期,根据发送某一共享请求 和某一应答信息的控制周期, 获 得所述发送周期包含的控制周期数目;
共享请求发送模块 405 , 用于所述某控制站根据需要接收所述共享请求 的 控制站数目、 以及一个发送周期中剩余的控制周期, 获得剩余的每个控制周期 内发送所述数据共享请求的控制站数目,并在 剩余的每个控制周期中向相应数 目的控制站发送所述数据共享请求;
则,所述应答反馈发送模块用于控制所述某控 制站利用一个发送周期中的 最后一个控制周期发送所述所有应答信息以及 共享数据包。
如图 7所示,为本发明实施例提供的另外一种分布 控制系统的数据共享 实现装置, 该装置还可以包括: 重发请求模块 406, 用于控制所述请求控制站 判断在预置时间内是否接收到共享数据包, 如果否, 则重新发起所述数据共享 请求。
对于装置实施例而言, 由于其基本相应于方法实施例, 所以描述得比较筒 单,相关之处参见方法实施例的部分说明即可 。 以上所描述的装置实施例仅仅 是示意性的,其中所述作为分离部件说明的单 元可以是或者也可以不是物理上 分开的,作为单元显示的部件可以是或者也可 以不是物理单元, 即可以位于一 个地方, 或者也可以分布到多个网络单元上。可以根据 实际的需要选择其中的 部分或者全部模块来实现本实施例方案的目的 。本领域普通技术人员在不付出 创造性劳动的情况下, 即可以理解并实施。
本领域普通技术人员可以理解实现上述实施例 方法中的全部或部分流程, 是可以通过计算机程序来指令相关的硬件来完 成,所述的程序可存储于计算机 可读取存储介质中, 该程序在执行时, 可包括如上述各方法的实施例的流程。 其中,所述的存储介质可为磁碟、光盘、只读 存储记忆体(Read-Only Memory, ROM )或随机存储记忆体(Random Access Memory, RAM )等。
对所公开的实施例的上述说明,使本领域专业 技术人员能够实现或使用本 发明。 对这些实施例的多种修改对本领域的专业技术 人员来说将是显而易见 的,本文中所定义的一般原理可以在不脱离本 发明实施例的精神或范围的情况 下, 在其它实施例中实现。 因此, 本发明实施例将不会被限制于本文所示的这 些实施例, 而是要符合与本文所公开的原理和新颖特点相 一致的最宽的范围。
