CN108388526B - 一种读取控制器数据的方法和系统 - Google Patents
一种读取控制器数据的方法和系统 Download PDFInfo
- Publication number
- CN108388526B CN108388526B CN201810053981.4A CN201810053981A CN108388526B CN 108388526 B CN108388526 B CN 108388526B CN 201810053981 A CN201810053981 A CN 201810053981A CN 108388526 B CN108388526 B CN 108388526B
- Authority
- CN
- China
- Prior art keywords
- data
- priority
- reading
- value
- content
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/18—Handling requests for interconnection or transfer for access to memory bus based on priority control
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Automation & Control Theory (AREA)
- General Engineering & Computer Science (AREA)
- Control By Computers (AREA)
- Bus Control (AREA)
Abstract
本发明公开了一种读取控制器数据的方法,该方法包括:S1、对所有数据的优先级设置相同的优先级初始值,并令优先级最高值的初值为优先级初始值;S2、在当前轮的读取中,读取优先级为优先级最高值的所有数据,根据当前轮读取的数据相较于上一轮读取时内容是否发生变化的判断执行操作,包括:当至少一个数据的内容发生变化时,将发生变化的数据对应的优先级加1,且将优先级最高值加1;S3、根据预设的触发条件执行下一轮的读取,返回步骤S2。此外,本发明还公开了一种读取控制器数据的系统。上述读取控制器数据的方法和系统可有效提高数据的实时读取效率。
Description
技术领域
本发明涉及自动化控制领域,尤其涉及一种读取控制器数据的方法和系统。
背景技术
自动控制是指在没有人直接参与的情况下,利用外加的设备或装置,使机器、设备或生产过程的某个工作状态或参数自动地按照预定的规律运行,目前随着经济的快速发展,人力成本逐步提高,随着控制、计算机、通信、网络等技术的发展,信息交换沟通的领域正在迅速覆盖从工厂的现场设备层到控制、管理的各个层次,覆盖从工段、车间、工厂、企业乃至世界各地的市场。
目前市面上主流的自动控制器包括可编程控制器(PLC)、变频器、伺服、运动控制器等,对于终端使用者来说,这些控制器都是黑盒子,无法直接进行操作。由此人机界面应运而生,它是用来连接PLC、变频器、直流调速器、仪表等工业控制设备,利用显示屏显示,通过输入单元(如触摸屏、键盘、鼠标等)写入工作参数或输入操作命令,实现人与机器信息交互的数字设备。
对于大多数应用场景来说,终端客户只要求能从控制器定时读到数据就可以,但在某些应用场景,终端客户要求能实时反馈数据的变化,比如300ms进行一次数据刷新。以9600波特率为例,大约100ms 可以进行一次通信,如果界面数据达到10个或以上,每个数据都需要依次从控制器读取,那么意味着要隔10*0.1秒,即1秒以上才能反馈数据的变化,无法达到终端客户的使用要求。
发明内容
为了解决上述技术问题,本发明的目的是提供一种读取速度快的读取控制器数据的方法,包括步骤:
S1、对所有数据的优先级设置相同的优先级初始值,并令优先级最高值的初值为优先级初始值;
S2、在当前轮的读取中,读取优先级为优先级最高值的所有数据,根据当前轮读取的数据相较于上一轮读取时内容是否发生变化的判断执行操作,包括:
当至少一个数据的内容发生变化时,将发生变化的数据对应的优先级加1,且将优先级最高值加1;
S3、根据预设的触发条件执行下一轮的读取,返回步骤S2。
进一步地,在步骤S2中,根据当前轮读取的数据相较于上一轮读取时内容是否发生变化的判断执行操作还包括:
当没有数据的内容发生变化时,判断当前轮读取的数据是否已读取预设次数,若是,则将数据的优先级更新为优先级初始值,且将优先级最高值减1,直到优先级最高值减到优先级初始值。
进一步地,预设次数为优先级最高值与优先级初始值的差值。
进一步地,在步骤S1之前还包括:
获取所有数据的唯一性标识,令数据的唯一性标识的优先级为数据的优先级。
进一步地,数据的唯一性标识为数据地址。
此外,本发明的目的是还提供一种读取控制器数据的系统,包括:
优先级初始化模块,用于对所有数据的优先级设置相同的优先级初始值,并令优先级最高值的初值为优先级初始值;
当前轮数据读取模块,用于在当前轮的读取中,读取优先级为优先级最高值的所有数据,根据当前轮读取的数据相较于上一轮读取时内容是否发生变化的判断执行操作,包括:
当至少一个数据的内容发生变化时,将发生变化的数据对应的优先级加1,且将优先级最高值加1;
下一轮读取触发模块,用于根据预设的触发条件执行下一轮的读取,执行当前轮数据读取模块的内容。
进一步地,在当前轮数据读取模块中,根据当前轮读取的数据相较于上一轮读取时内容是否发生变化的判断执行操作还包括:
当没有数据的内容发生变化时,判断当前轮读取的数据是否已读取预设次数,若是,则将数据的优先级更新为优先级初始值,且将优先级最高值减1,直到优先级最高值减到优先级初始值。
进一步地,预设次数为优先级最高值与优先级初始值的差值。
进一步地,在优先级初始化模块之前还包括获取所有数据的唯一性标识,令数据的唯一性标识的优先级为数据的优先级。
进一步地,数据的唯一性标识为数据地址。
由上述可知,本发明采用的技术方案在每轮的读取过程中只针对上一轮读取过程中内容有变化的数据,对于上一轮读取过程中内容没有变化的数据认为该轮也没有变化,因而本轮并不需要读取。根据数据内容的变化频率对数据读取优先级进行划分,并根据数据读取优先级的不同对数据的读取频率进行划分,从而实现了数据快速读取、用户需求快速响应的技术效果。
附图说明
下面结合附图对本发明的具体实施方式作进一步说明:
图1是一个实施例中一种读取控制器数据的方法流程图;
图2是另一个实施例中一种读取控制器数据的方法流程图;
图3是一个实施例中一种读取控制器数据的系统结构示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
实际应用中,不是所有控制器数据都一直处于变化状态的,有不少数据间隔几分钟才发生变化甚至可能一直不变化,如果按时平均读取每个控制器数据的话,会大大影响读取效率。
鉴于此,本发明提供了一种读取控制器数据的方法,参见图1是一个实施例中一种读取控制器数据的方法流程图,包括:
S110、对所有数据的优先级设置相同的优先级初始值,并令优先级最高值的初值为优先级初始值。
为方便记录各控制器数据的优先级,可通过获取数据的唯一性标识,并将该数据的唯一性标识的优先级与该数据的优先级进行一一对应。优选地,数据的唯一性标识为数据地址。
具体地,可对所有控制器数据的地址进行编号,比如 LocalWord[0]、……、LocalWord[i]、……、LocalWord[N];其中, LocalWord[i]表示第i个控制器数据的地址,N表示控制器数据的总量。
然后,根据数据变化频率对控制器数据对应的地址设置地址优先级。具体地,将上述控制器数据的地址优先级的初值P(i)均设置为优先级初始值P0,并令优先级最高值Pmax的初值也为P0,Num(M)用来记录第M轮读取中相较于第M-1轮读取中内容有变化的数据数目,令 Num(M)的初值为0。
S130、在当前轮的读取中,读取优先级为优先级最高值的所有数据,根据当前轮读取的数据相较于上一轮读取时内容是否发生变化的判断执行操作,包括:
当至少一个数据的内容发生变化时,将发生变化的数据对应的优先级加1,且将优先级最高值加1。
在第M轮的读取中,读取地址优先级为Pmax的所有控制器数据。若第j个控制器数据的优先级为Pmax,判断第j个控制器数据本轮读取时的内容相较于第M-1轮读取时的内容是否发生变化,若是,则将第j 个控制器数据对应的地址优先级更新为P(j)=Pmax+1,且令Num(N)=Num(N)+1;若否,则第j个控制器数据对应的地址优先级不变。
当本轮中地址优先级为优先级最高值Pmax的所有控制器数据读取完成后,判断Num(N)的值是否大于0,若是,说明在第M轮读取中至少有一个控制器数据的内容发生变化,则令Pmax=Pmax+1;若否,说明在第M轮读取中没有控制器数据的内容发生变化,则Pmax的值不变。
S150、根据预设的触发条件执行下一轮的读取,返回步骤S130。
在本发明提出的技术方案中,每轮只读取上一轮内容发生变化的控制器数据,通过步骤S130和步骤S150的循环,不断过滤出内容变化最频繁的数据,直到当前一轮读取的数据内容不再变化为止,此时,认为获取到了当前具有最高优先级的控制器数据。
由于上述技术方案并不会在每轮读取时都对所有的控制器数据进行访问,而只处理内容变化最频繁、具有当前最高优先级的控制器数据,因而可减少每轮数据读取的时间,有效提高数据实时读取效率。
为了防止某些情况下,高优先级的控制器数据一直在变化导致低优先级的控制器数据一直不被读取。因此,在另一个实施例中,上述步骤S130中对当前轮读取的数据相较于上一轮读取时内容是否发生变化的判断处理还包括在高优先级的控制器数据若干轮读取中内容都不发生变化时,对其对应的优先级进行降级的过程。
具体地,本发明还提供了一种读取控制器数据的方法,参见图2 是另一个实施例中一种读取控制器数据的方法流程图,包括:
S210、对所有数据的优先级设置相同的优先级初始值,并令优先级最高值的初值为优先级初始值。
S230、在当前轮的读取中,读取优先级为优先级最高值的所有数据,根据当前轮读取的数据相较于上一轮读取时内容是否发生变化的判断执行操作,包括:
当至少一个数据的内容发生变化时,将发生变化的数据对应的优先级加1,且将优先级最高值加1;
当没有数据的内容发生变化时,判断当前轮读取的数据是否已读取预设次数,若是,则将数据的优先级更新为优先级初始值,且将优先级最高值减1,直到优先级最高值减到优先级初始值。
具体地,预设次数为优先级当前值与优先级初始值之间的差值。
S250、根据预设的触发条件执行下一轮的读取,返回步骤S2。
以优先级最高值Pmax为P0+3为例进行说明。如果在相邻的3轮读取中,都是读取的优先级为P0+3的控制器数据,也就是说,优先级为P0+3的控制器数据的内容在相邻的3轮读取中都没有发生变化,那么,在对优先级为P0+3的控制器数据完成第3轮读取后,则将优先级最高值Pmax的值减1,即令Pmax为P0+2;
然后,在下一轮的读取中,就只读取优先级为优先级最高值P0+2 的控制器数据,如果在相邻的2轮读取中,都是读取的优先级为P0+2 的控制器数据,那么,在对优先级为P0+2的控制器数据完成第2轮读取后,则将优先级最高值Pmax的值再减1,即令Pmax为P0+1;
依次类推,直到优先级最高值Pmax被减到优先级初始值P0为止,这样就保证所有的数据都能全部重新读取到。
本技术方案通过采取动态监控控制器数据的内容变化并实时调整各控制器数据对应的优先级,从而获得一种更为可靠的读取控制器数据的方法。该技术方案不仅保证了内容变化频繁的控制器数据得到高优先级的读取,同时也保证了内容变化相对不那么频繁的控制器数据不会出现长时间的死等,使得具有各种变化特性的控制器数据都能得到及时有效地读取。
本发明提供了一种读取控制器数据的系统,参见图3是一个实施例中一种读取控制器数据的系统结构示意图,包括:
优先级初始化模块310,用于对所有数据的优先级设置相同的优先级初始值,并令优先级最高值的初值为优先级初始值。
为方便记录各控制器数据的优先级,可通过获取数据的唯一性标识,并将该数据的唯一性标识的优先级与该数据的优先级进行一一对应。一个实施例中,数据的唯一性标识为数据地址。
当前轮数据读取模块330,用于在当前轮的读取中,读取优先级为优先级最高值的所有数据,根据当前轮读取的数据相较于上一轮读取时内容是否发生变化的判断执行操作,包括:
当至少一个数据的内容发生变化时,将发生变化的数据对应的优先级加1,且将所述优先级最高值加1。
下一轮读取触发模块350,用于根据预设的触发条件执行下一轮的读取,执行当前轮数据读取模块330的内容。
在另一个实施例中,在当前轮数据读取模块330中,对当前轮读取的数据相较于上一轮读取时内容是否发生变化的判断处理还包括在高优先级的控制器数据若干轮读取中内容都不发生变化时,对其对应的优先级进行降级的过程。
具体地,在当前轮数据读取模块330中,根据当前轮读取的数据相较于上一轮读取时内容是否发生变化的判断执行操作还包括:
当没有数据的内容发生变化时,判断当前轮读取的数据是否已读取预设次数,若是,则将数据的优先级更新为优先级初始值,且将优先级最高值减1,直到优先级最高值减到优先级初始值。
一个实施例中,预设次数为优先级最高值与优先级初始值的差值。
以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。
Claims (8)
1.一种读取控制器数据的方法,其特征在于,包括:
S1、对所有数据的优先级设置相同的优先级初始值,并令优先级最高值的初值为所述优先级初始值;
S2、在当前轮的读取中,读取优先级为所述优先级最高值的所有数据,根据所述当前轮读取的数据相较于上一轮读取时内容是否发生变化的判断执行操作,包括:
当至少一个数据的内容发生变化时,将发生变化的数据对应的优先级加1,且将所述优先级最高值加1;
S3、根据预设的触发条件执行下一轮的读取,返回步骤S2;
在步骤S2中,所述根据所述当前轮读取的数据相较于上一轮读取时内容是否发生变化的判断执行操作还包括:
当没有数据的内容发生变化时,判断所述当前轮读取的数据是否已读取预设次数,若是,则将所述数据的优先级更新为所述优先级初始值,且将所述优先级最高值减1,直到所述优先级最高值减到所述优先级初始值。
2.根据权利要求1所述的读取控制器数据的方法,其特征在于,所述预设次数为所述优先级最高值与所述优先级初始值的差值。
3.根据权利要求1所述的读取控制器数据的方法,其特征在于,在步骤S1之前还包括:
获取所有数据的唯一性标识,令所述数据的唯一性标识的优先级为所述数据的优先级。
4.根据权利要求3所述的读取控制器数据的方法,其特征在于,所述数据的唯一性标识为数据地址。
5.一种读取控制器数据的系统,其特征在于,包括:
优先级初始化模块,用于对所有数据的优先级设置相同的优先级初始值,并令优先级最高值的初值为所述优先级初始值;
当前轮数据读取模块,用于在当前轮的读取中,读取优先级为所述优先级最高值的所有数据,根据所述当前轮读取的数据相较于上一轮读取时内容是否发生变化的判断执行操作,包括:
当至少一个数据的内容发生变化时,将发生变化的数据对应的优先级加1,且将所述优先级最高值加1;
下一轮读取触发模块,用于根据预设的触发条件执行下一轮的读取,执行所述当前轮数据读取模块的内容;
在所述当前轮数据读取模块中,所述根据所述当前轮读取的数据相较于上一轮读取时内容是否发生变化的判断执行操作还包括:
当没有数据的内容发生变化时,判断所述当前轮读取的数据是否已读取预设次数,若是,则将所述数据的优先级更新为所述优先级初始值,且将所述优先级最高值减1,直到所述优先级最高值减到所述优先级初始值。
6.根据权利要求5所述的读取控制器数据的系统,其特征在于,所述预设次数为所述优先级最高值与所述优先级初始值的差值。
7.根据权利要求5所述的读取控制器数据的系统,其特征在于,在所述优先级初始化模块之前还包括:获取所有数据的唯一性标识,令所述数据的唯一性标识的优先级为所述数据的优先级。
8.根据权利要求7所述的读取控制器数据的系统,其特征在于,所述数据的唯一性标识为数据地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810053981.4A CN108388526B (zh) | 2018-01-19 | 2018-01-19 | 一种读取控制器数据的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810053981.4A CN108388526B (zh) | 2018-01-19 | 2018-01-19 | 一种读取控制器数据的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108388526A CN108388526A (zh) | 2018-08-10 |
CN108388526B true CN108388526B (zh) | 2021-01-05 |
Family
ID=63077359
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810053981.4A Active CN108388526B (zh) | 2018-01-19 | 2018-01-19 | 一种读取控制器数据的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108388526B (zh) |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4797815A (en) * | 1985-11-22 | 1989-01-10 | Paradyne Corporation | Interleaved synchronous bus access protocol for a shared memory multi-processor system |
CN1288876C (zh) * | 2002-07-27 | 2006-12-06 | 华为技术有限公司 | 基于动态包传输的动态随机存储器队列调度方法 |
CN1230737C (zh) * | 2002-09-23 | 2005-12-07 | 华为技术有限公司 | 一种设备数据轮询调度方法 |
US8009563B2 (en) * | 2003-12-19 | 2011-08-30 | Broadcom Corporation | Method and system for transmit scheduling for multi-layer network interface controller (NIC) operation |
US7870351B2 (en) * | 2007-11-15 | 2011-01-11 | Micron Technology, Inc. | System, apparatus, and method for modifying the order of memory accesses |
CN102866963B (zh) * | 2012-09-18 | 2015-07-22 | 广西柳工机械股份有限公司 | 控制器数据存储与读取方法 |
CN107347201B (zh) * | 2017-07-07 | 2021-11-05 | 杨志军 | 一种基于优先级的无线传感器网络轮询系统控制方法 |
CN107368263A (zh) * | 2017-07-25 | 2017-11-21 | 郑州云海信息技术有限公司 | 一种固态硬盘中优先权调度的方法和系统 |
-
2018
- 2018-01-19 CN CN201810053981.4A patent/CN108388526B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN108388526A (zh) | 2018-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108153670B (zh) | 一种接口测试方法、装置及电子设备 | |
US10607466B2 (en) | Method to configure control system alarms by associating alarms to tags | |
JP2006164233A (ja) | 分散データ駆動型アーキテクチャ環境におけるディレクトリ構造 | |
CN104408065A (zh) | 一种联机查询交易信息的方法及装置 | |
CN103218284B (zh) | 一种设备使用率信息获取方法 | |
US20190163171A1 (en) | Control device, control method, and non-transitory computer-readable recording medium | |
CN107241385B (zh) | 一种物联网数据采集系统及方法 | |
CN104184601A (zh) | 用户在线时长的获取方法及装置 | |
CN108388526B (zh) | 一种读取控制器数据的方法和系统 | |
CN108089902B (zh) | 分屏显示状态的检测方法、计算设备及计算机存储介质 | |
JP2016522517A (ja) | プロセス変数に関連するトレンドを表示する装置 | |
CN115426287B (zh) | 一种系统监控和优化方法、装置、电子设备及介质 | |
CN114862099B (zh) | 一种基于规则引擎的连铸质量预判模型在线系统 | |
CN115309730A (zh) | 数据审核方法、装置、电子设备及存储介质 | |
CN110007653B (zh) | 一种焊接控制系统的配置方法、装置、设备及存储介质 | |
CN115344187B (zh) | 一种安卓画图软件画笔样式的识别方法和装置 | |
CN116501499B (zh) | 数据跑批方法、装置、电子设备及存储介质 | |
CN117707099B (zh) | 基于界面的单晶炉控制方法、系统、装置、设备及介质 | |
CN113741815B (zh) | 一种存储系统的管控方法、装置、设备及可读存储介质 | |
CN111428101A (zh) | 图像动态显示方法、装置、计算机设备及存储介质 | |
CN116363260B (zh) | 图像生成方法、装置及电子设备 | |
CN113342413B (zh) | 用于处理组件的方法、装置、设备、介质和产品 | |
CN116351064A (zh) | 一种阵容推荐方法及装置 | |
CN115113779A (zh) | 一种清洁机器人的管理方法、装置、设备及介质 | |
CN117934663A (zh) | Dcs画面中图元拖拽生成曲线的方法、系统、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |