一种上位机数据写出方法及装置与流程

文档序号:28210295发布日期:2021-12-28 20:21阅读:126来源:国知局
一种上位机数据写出方法及装置与流程

1.本技术涉及工业控制技术领域,特别的,尤其涉及一种上位机数据写出方法及装置。


背景技术:

2.数据库与数据通信技术是现代社会各领域的基本技术,各数据源之间通过数据交互实现信息传递,提升数据交互速率一直是技术研发的重点方向。
3.在工业领域,dcs(distributed control systems,集散控制系统)、plc(programmable logic controller,可编程逻辑控制器)等控制系统是常见的数据源,因硬件性能制约或安全策略限制,这类数据源每控制周期(秒级)只允许对有限的数据进行写入更新。如果上位机平台软件要对这类数据源进行大量数据写出,则数据源允许的写入速度及上位机对写出数据的管理策略将制约最短写出控制周期的选择,即需设定较长的控制周期,无法实现高速实时控制。


技术实现要素:

4.鉴于上述内容中存在的问题,本技术提供了一种上位机数据写出方法及装置,提升数据写出效率,从而可以设定较短的控制周期,以确保在一个控制周期内数据能够全部写出,实现高速实时控制。
5.为了实现上述目的,本技术提供了以下技术方案:
6.一种上位机数据写出方法,其特征在于,预先构建各数据源对应的数据表,该方法包括:
7.在平台启动或数据源数据点修改情况时,对对应数据源的数据表进行更新,并根据所述数据表的数据总数确定对应的偏移步长;
8.当满足预设条件时,设定偏移量,根据所述偏移量对所述数据表队列进行数据读写轮巡,以使所述数据表中的数据得到均等的读写机率,所述预设条件为平台允许运行数据读写逻辑。
9.进一步的,所述根据所述数据表的数据总数确定对应的偏移步长,包括:
10.判断所述数据表的数据总量是否大于或等于预设阈值;
11.若是,则设定偏移步长为第一预设值,若否,则设定所述偏移步长为第二预设值;
12.将所述数据表和所述偏移步长进行存储,供周期性读写逻辑调用。
13.进一步的,所述当满足预设条件时,设定偏移量,根据所述偏移量对所述数据表队列进行数据读写轮巡,以使所述数据表中的数据得到均等的读写机率,所述预设条件为平台允许运行数据读写逻辑,包括:
14.设定所述数据表的数据总量递减量初值等于所述数据表的数据总量;
15.判断所述数据表的数据总量递减量是否大于零;
16.若所述数据表的数据总量递减量大于零,则对所述数据表的数据总量递减量进行
递减操作;
17.根据预设计算公式计算轮巡点,所述预设计算公式为:轮巡点=数据表数据总量递减量

偏移量设定值;
18.若判断所述轮巡点不小于零,则根据预设的编程工具按所述轮巡点从所述数据表中取出数值;
19.对所述取出的数据进行读值操作,读取所述数据源中的最新值;
20.判断当前状态是否满足预设写出条件,若是,则将所述数据加入写出队列,执行数据写操作,所述预设写出条件包括:该数据写出标志为有效和数据最新值与数据计划写出值的偏差绝对值大于设定的写出精度。
21.进一步的,还包括:
22.在所述数据表的数据总量递减量不大于零,或者所述当前状态不满足预设写出条件时,则将对应的数据从写出队列中清除。
23.进一步的,还包括:
24.若所述轮巡点小于零,则为所述轮巡点增加数据表数据总量,以使所述轮巡点不为负值。
25.一种上位机数据写出装置,预先构建各数据源对应的数据表,该装置包括:
26.第一处理单元,用于在平台启动或数据源数据点修改情况时,对对应数据源的数据表进行更新,并根据所述数据表的数据总数确定对应的偏移步长;
27.第二处理单元,用于当满足预设条件时,设定偏移量,根据所述偏移量对所述数据表队列进行数据读写轮巡,以使所述数据表中的数据得到均等的读写机率,所述预设条件为平台允许运行数据读写逻辑。
28.进一步的,所述第一处理单元具体用于:
29.判断所述数据表的数据总量是否大于或等于预设阈值;
30.若是,则设定偏移步长为第一预设值,若否,则设定所述偏移步长为第二预设值;
31.将所述数据表和所述偏移步长进行存储,供周期性读写逻辑调用。
32.进一步的,所述第二处理单元具体用于:
33.设定所述数据表的数据总量递减量初值等于所述数据表的数据总量;
34.判断所述数据表的数据总量递减量是否大于零;
35.若所述数据表的数据总量递减量大于零,则对所述数据表的数据总量递减量进行递减操作;
36.根据预设计算公式计算轮巡点,所述预设计算公式为:轮巡点=数据表数据总量递减量

偏移量设定值;
37.若判断所述轮巡点不小于零,则根据预设的编程工具按所述轮巡点从所述数据表中取出数值;
38.对所述取出的数据进行读值操作,读取所述数据源中的最新值;
39.判断当前状态是否满足预设写出条件,若是,则将所述数据加入写出队列,执行数据写操作,所述预设写出条件包括:该数据写出标志为有效和数据最新值与数据计划写出值的偏差绝对值大于设定的写出精度。
40.一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述
存储介质所在的设备执行如上述所述的上位机数据写出方法。
41.一种电子设备,所述电子设备包括至少一个处理器、以及与所述处理器连接的至少一个存储器、总线;其中,所述处理器、所述存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序指令,以执行如上述所述的上位机数据写出方法。
42.本技术所述的上位机数据写出方法及装置,该方法预先构建各数据源对应的数据表,在平台启动或数据源数据点修改情况时,对对应数据源的数据表进行更新,并根据所述数据表的数据总数确定对应的偏移步长;当满足预设条件时,设定偏移量,根据所述偏移量对所述数据表队列进行数据读写轮巡,以使所述数据表中的数据得到均等的读写机率,所述预设条件为平台允许运行数据读写逻辑。本技术通过动态构建写出序列,优化上位机写出策略,可以提升数据写出效率,从而可以设定较短的控制周期,以确保在一个控制周期内数据能够全部写出,实现高速实时控制。
附图说明
43.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
44.图1为本技术实施例公开的一种上位机数据写出方法流程示意图;
45.图2为本技术实施例公开的数据表的偏移步长条件触发更新流程示意图;
46.图3为本技术实施例公开的数据读写周期性调用逻辑流程示意图;
47.图4为本技术实施例公开的另一种数据读写周期性调用逻辑流程示意图;
48.图5为本技术实施例公开的一种上位机数据写出装置的结构示意图;
49.图6为本技术实施例公开的一种电子设备的结构示意图。
具体实施方式
50.申请人在研究中发现,在工业控制领域,上位机软件发起写出申请最多的有pid控制器、顺序控制、联锁等控制算法、以及操作人员在界面的操作等,从数量上看,大部分写出申请都具有偶发性特点,即不是每个扫描周期都需要写出,但是一旦发起写出申请,又希望尽快完成写出流程。因此,在设计写出算法时,应充分利用写出申请在统计学上的特点,通过动态构建写出序列,充分、高效的利用dcs、plc等控制器所能提供的有限的数据写入带宽。
51.根据开发实践,对于100~300个写出点规模,现有技术需要5~10秒的控制周期才能完成写出任务,而采用本技术提供的上位机数据写出方法,可以在0.5~1秒的控制周期内实现同样的效果,从而使上位机平台可以应用于高速控制领域。
52.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
53.请参见附图1,为本技术实施例提供的一种上位机数据写出方法流程示意图。如图
1所示,本技术实施例提供了一种上位机数据写出方法,预先构建各数据源对应的数据表,该方法包括如下步骤:
54.s101:在平台启动或数据源数据点修改情况时,对对应数据源的数据表进行更新,并根据所述数据表的数据总数确定对应的偏移步长。
55.本步骤中,上述所述根据所述数据表的数据总数确定对应的偏移步长,包括:判断所述数据表的数据总量是否大于或等于预设阈值;若是,则设定偏移步长为第一预设值,若否,则设定所述偏移步长为第二预设值;将所述数据表和所述偏移步长进行存储,供周期性读写逻辑调用。
56.需要说明的是,数据源是在数据网络上,提供或接收数据的信息源。偏移步长:参照数据源接收写入数据带宽而设定的参数,可以使待写出数据周期性排列到写出队列前部。
57.需要说明的是,如图2所示,本技术实施例中,以各数据源独立建立一张数据表为例,在平台启动、数据源数据点修改等情况时,对对应数据源的数据表进行更新。根据数据表数据总数是否大于等于某阈值(例图中定为20),设定偏移步长为某值(例图中设定为10,可根据需要修改)。
58.具体如下,以各数据源独立建立一张数据表为例:
59.a1:开始,在平台启动、数据源数据点修改等情况时,开始调用本段逻辑。
60.a2:对对应数据源的数据表进行更新。
61.a3:判断数据表数据总数是否大于等于阈值(例图中定为20,可根据需要修改)。
62.a4:如果数据表数据总数大于等于阈值时,设定偏移步长为某值(例图中设定为10,可根据需要修改)。
63.a5:如果数据表数据总数不大于阈值时,设定偏移步长为某值(例图中设定为0,可根据需要修改)。
64.a6:保存上述数据表和偏移步长,供周期性读写逻辑调用。
65.s102:当满足预设条件时,设定偏移量,根据所述偏移量对所述数据表队列进行数据读写轮巡,以使所述数据表中的数据得到均等的读写机率,所述预设条件为平台允许运行数据读写逻辑。
66.本步骤中,上述所述当满足预设条件时,设定偏移量,根据所述偏移量对所述数据表队列进行数据读写轮巡,以使所述数据表中的数据得到均等的读写机率,所述预设条件为平台允许运行数据读写逻辑,包括:
67.设定所述数据表的数据总量递减量初值等于所述数据表的数据总量;
68.判断所述数据表的数据总量递减量是否大于零;
69.若所述数据表的数据总量递减量大于零,则对所述数据表的数据总量递减量进行递减操作;
70.根据预设计算公式计算轮巡点,所述预设计算公式为:轮巡点=数据表数据总量递减量

偏移量设定值;
71.若判断所述轮巡点不小于零,则根据预设的编程工具按所述轮巡点从所述数据表中取出数值;
72.对所述取出的数据进行读值操作,读取所述数据源中的最新值;
73.判断当前状态是否满足预设写出条件,若是,则将所述数据加入写出队列,执行数据写操作,所述预设写出条件包括:该数据写出标志为有效和数据最新值与数据计划写出值的偏差绝对值大于设定的写出精度。
74.进一步的,在上述步骤基础,还包括:
75.在所述数据表的数据总量递减量不大于零,或者所述当前状态不满足预设写出条件时,则将对应的数据从写出队列中清除;
76.若所述轮巡点小于零,则为所述轮巡点增加数据表数据总量,以使所述轮巡点不为负值。
77.本技术实施例中,写出精度是为降低写出负荷而设定,当读入值与写出值偏差绝对值低于此数值就不再执行写出动作。写出队列是对计划写出的数据进行排序。数据表数据总量递减量是通过每个逻辑循环周期递减1位。实现对数据表各数据的检索访问。偏移量设定值是完成一次轮巡后,通过设定偏移量设定值,重新定位下一次轮巡的数据起点位置。具体的,轮巡点是当前数据检索位置,会在数据表所有位置周期性循环。
78.需要说明的是,如图3所示,本技术实施例中,通过周期性扫描,实现数据读写逻辑,主要包括设定偏移量,根据偏移量实现数据表队列起始点偏移,完成一次数据读写轮巡后,按照上文设定的偏移步长修改偏移量,并反复循环。
79.具体如下:
80.(1)开始。在平台允许运行数据读写逻辑时,根据设定的控制周期,反复调用下列逻辑。
81.(2)设定数据表数据总量递减量初值等于数据表数据总量。
82.(3)判断数据表数据总量递减量是否大于0,如果大于0,则进入第(4)步。如果不大于0,则进入第(12)步。
83.(4)对数据表数据总量递减量进行递减操作(减一)。
84.(5)计算轮巡点,轮巡点=数据表数据总量递减量

偏移量设定值。
85.(6)判断上述计算的轮巡点是否小于0,若小于0,进入第(7)步,若大于0,进入第(8)步。
86.(7)上述计算的轮巡点增加数据表数据总量,使轮巡点不为负值。
87.(8)按轮巡点从数据表中取出数值,根据采用的编程工具,一般为指向数据本体的地址。
88.(9)对上述取出的数据进行读值操作,即从数据源中读取本数据的最新值。
89.(10)写出条件判断,条件1:本数据写出标志为有效,条件2:数据最新值与数据计划写出值的偏差绝对值,大于设定的写出精度。写出精度可以根据应用场合需要设定,如设定为百万分之一等数值。同时满足这二个条件,进入第(11)步,否则,进入第(12)步。
90.(11)将本数据加入写出队列,执行数据写操作。
91.(12)将本数据从写出队列中清除。有些写出方法,如果不加入写出队列则会自动清除,则本步骤不需要运行。
92.(13)经过上述(3)~(12)步,已经按照当前的偏移量设定值完成了一次读写轮巡,第(13)按预设的偏移步长,对偏移量设定值进行递增计算。
93.(14)判断上述递增的偏移量设定值是否已经超出数据表数据总量,若是,则进入
第(15)步,若否,则进入第(16)步。
94.(15)偏移量设定值回0。
95.(16)再次循环。
96.经过上述(1)~(16)步,整个数据表按照设定的偏移步长进行了全面轮巡,数据表中各数据得到了均等的读写机率。
97.另外,本技术实施例中用了对数据总量递减操作实现了对数据表的轮巡检索,若改为递增量也可实现相同的效果。对应的流程图请参见附图4所示:其中与图3相比,发生变化的地方包括:
98.(2)“数据表数据总量递减量”改为“数据表数据总量递增量”,初值由“等于数据表数据总量”调整为“等于0”;
99.(3)逻辑判断由“数据表数据总量递减量是否大于0”调整为“数据表数据总量递增量是否小于数据表数据总量”;
100.(4)由“数据表数据总量递减量递减”改为“数据表数据总量递增量递增”;
101.(5)轮巡点计算式中的“数据表数据总量递减量”改为“数据表数据总量递增量”。
102.需要说明的是,本技术实施例推荐使用减一递减操作,若改为每次对数据表轮巡二次,则采用减二操作也可实现对数据表的全体轮巡,依此类推。
103.本技术实施例提供一种上位机数据写出方法,该方法预先构建各数据源对应的数据表,在平台启动或数据源数据点修改情况时,对对应数据源的数据表进行更新,并根据所述数据表的数据总数确定对应的偏移步长;当满足预设条件时,设定偏移量,根据所述偏移量对所述数据表队列进行数据读写轮巡,以使所述数据表中的数据得到均等的读写机率,所述预设条件为平台允许运行数据读写逻辑。本技术实施例通过动态构建写出序列,优化上位机写出策略,可以提升数据写出效率,从而可以设定较短的控制周期,以确保在一个控制周期内数据能够全部写出,实现高速实时控制。
104.请参阅图5,基于上述实施例公开的一种上位机数据写出方法,本实施例对应公开了一种上位机数据写出装置,预先构建各数据源对应的数据表,该装置包括:
105.第一处理单元51,用于在平台启动或数据源数据点修改情况时,对对应数据源的数据表进行更新,并根据所述数据表的数据总数确定对应的偏移步长;
106.第二处理单元52,用于当满足预设条件时,设定偏移量,根据所述偏移量对所述数据表队列进行数据读写轮巡,以使所述数据表中的数据得到均等的读写机率,所述预设条件为平台允许运行数据读写逻辑。
107.进一步的,所述第一处理单元51具体用于:
108.判断所述数据表的数据总量是否大于或等于预设阈值;
109.若是,则设定偏移步长为第一预设值,若否,则设定所述偏移步长为第二预设值;
110.将所述数据表和所述偏移步长进行存储,供周期性读写逻辑调用。
111.进一步的,所述第二处理单元52具体用于:
112.设定所述数据表的数据总量递减量初值等于所述数据表的数据总量;
113.判断所述数据表的数据总量递减量是否大于零;
114.若所述数据表的数据总量递减量大于零,则对所述数据表的数据总量递减量进行递减操作;
115.根据预设计算公式计算轮巡点,所述预设计算公式为:轮巡点=数据表数据总量递减量

偏移量设定值;
116.若判断所述轮巡点不小于零,则根据预设的编程工具按所述轮巡点从所述数据表中取出数值;
117.对所述取出的数据进行读值操作,读取所述数据源中的最新值;
118.判断当前状态是否满足预设写出条件,若是,则将所述数据加入写出队列,执行数据写操作,所述预设写出条件包括:该数据写出标志为有效和数据最新值与数据计划写出值的偏差绝对值大于设定的写出精度。
119.所述上位机数据写出装置包括处理器和存储器,上述第一处理单元和第二处理单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
120.处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来达到提升数据写出效率,从而可以设定较短的控制周期,以确保在一个控制周期内数据能够全部写出,实现高速实时控制的目的。
121.本技术实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现所述上位机数据写出方法。
122.本技术实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述上位机数据写出方法。
123.本技术实施例提供了一种电子设备,如图6所示,该电子设备60包括至少一个处理器601、以及与所述处理器连接的至少一个存储器602、总线603;其中,所述处理器601、所述存储器602通过所述总线603完成相互间的通信;处理器601用于调用所述存储器602中的程序指令,以执行上述的所述上位机数据写出方法。
124.本文中的电子设备可以是服务器、pc、pad、手机等。
125.本技术还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:
126.在平台启动或数据源数据点修改情况时,对对应数据源的数据表进行更新,并根据所述数据表的数据总数确定对应的偏移步长;
127.当满足预设条件时,设定偏移量,根据所述偏移量对所述数据表队列进行数据读写轮巡,以使所述数据表中的数据得到均等的读写机率,所述预设条件为平台允许运行数据读写逻辑。
128.进一步的,所述根据所述数据表的数据总数确定对应的偏移步长,包括:
129.判断所述数据表的数据总量是否大于或等于预设阈值;
130.若是,则设定偏移步长为第一预设值,若否,则设定所述偏移步长为第二预设值;
131.将所述数据表和所述偏移步长进行存储,供周期性读写逻辑调用。
132.进一步的,所述当满足预设条件时,设定偏移量,根据所述偏移量对所述数据表队列进行数据读写轮巡,以使所述数据表中的数据得到均等的读写机率,所述预设条件为平台允许运行数据读写逻辑,包括:
133.设定所述数据表的数据总量递减量初值等于所述数据表的数据总量;
134.判断所述数据表的数据总量递减量是否大于零;
135.若所述数据表的数据总量递减量大于零,则对所述数据表的数据总量递减量进行递减操作;
136.根据预设计算公式计算轮巡点,所述预设计算公式为:轮巡点=数据表数据总量递减量

偏移量设定值;
137.若判断所述轮巡点不小于零,则根据预设的编程工具按所述轮巡点从所述数据表中取出数值;
138.对所述取出的数据进行读值操作,读取所述数据源中的最新值;
139.判断当前状态是否满足预设写出条件,若是,则将所述数据加入写出队列,执行数据写操作,所述预设写出条件包括:该数据写出标志为有效和数据最新值与数据计划写出值的偏差绝对值大于设定的写出精度。
140.进一步的,还包括:
141.在所述数据表的数据总量递减量不大于零,或者所述当前状态不满足预设写出条件时,则将对应的数据从写出队列中清除。
142.进一步的,还包括:
143.若所述轮巡点小于零,则为所述轮巡点增加数据表数据总量,以使所述轮巡点不为负值。
144.本技术是根据本技术实施例的方法、设备(系统)、计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
145.在一个典型的配置中,设备包括一个或多个处理器(cpu)、存储器和总线。设备还可以包括输入/输出接口、网络接口等。
146.存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram),存储器包括至少一个存储芯片。存储器是计算机可读介质的示例。
147.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd

rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
148.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的
过程、方法、商品或者设备中还存在另外的相同要素。
149.本领域技术人员应明白,本技术的实施例可提供为方法、系统或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
150.以上仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1