一种监控和管理数据的方法及系统的制作方法

文档序号:6321791阅读:175来源:国知局
专利名称:一种监控和管理数据的方法及系统的制作方法
技术领域
本发明涉及数据管理技术领域,更具体地说,涉及一种监控和管理数据的方法及 系统。
背景技术
对于工业控制系统中较复杂的或系统性的控制方案,人们一般运用结构化建模思 想,通过设计多层次结构的控制程序模型来实现。不同的层次代表不同的控制范畴,上下层 次间的关联关系可以是控制范围的大小关系,也可以是控制时间、空间上的先后顺序等。在 应用程序运行过程中,下一层程序通过被上一层程序调用以执行相应的程序逻辑,通过程 序层之间的层层调用即可实现整个应用程序的完整运行,并通过操纵程序中的数据实现对 工业过程现场的控制。在多层次结构的程序中,人们一般运用模块化设计的思想,建立模块化的程序结 构,即将每一层程序设计成一个或多个相对独立的程序模块,从而使整个应用程序分解成 不同层次的程序模块的组合。通过程序模块对程序逻辑的封装,一方面可以降低上下层或 者同一层的程序模块之间的耦合关系,提高程序结构的合理性、程序逻辑的可测试性以及 可维护性,从而保证程序运行的可靠性和稳定性;另一方面,有利于实现程序逻辑的复用, 在不同的应用工程或同一个应用工程的不同程序中,一般都有不少逻辑类似甚至完全相同 的程序段,在模块化设计的前提下,人们可以将这些程序段封装成模块,并在不同的应用程 序中反复引用这些模块,这不仅可以有效地减少编程人员的工作量,提高编程效率,而且可 以有效地减少应用程序占用的程序空间,对于资源有限的工业控制器十分有用。在程序多层次结构设计和模块化设计的思想指导下,应用程序被设计成若干程序 模块的组合,在每个程序模块中直接定义数据或引用外部的数据,并在程序模块的逻辑代 码中直接访问这些数据。通过运行应用程序,进行一系列的执行命令、调用数据等操作,实 现对工业过程现场的实时控制。在工业控制系统中,需要对反映现场控制过程的数据能够集中地监视和操作,即 要对一副程序所操纵的数据具有较好的可观可控性。然而,由于数据分散地定义在各个程 序模块中,为此,系统程序或其它监控应用程序需要以特定的方法解析一副程序中程序模 块的数据结构,并搜集所有需要监控的数据,才能实现数据的集中监控,这种实现方法技术 复杂,效果不佳,不能方便有效地对应用程序的数据进行集中管理和监控。除此之外,由于应用程序的数据比较分散,因此难以被系统程序或其它应用程序 所访问,必须通过其他手段比如通过全局数据的数据传递或者公开程序模块的数据结构 等才能实现数据被外部访问,这也影响了程序内部的数据传递效率和应用性能。而且,如果 通过全局数据进行数据传递,又会破坏应用程序数据的封装和管理,降低程序模块被不同 应用程序所重复引用的可能性。

发明内容
有鉴于此,本发明的目的在于提供一种监控和管理数据的方法及系统,以能够方 便有效地对程序的数据进行集中监控和管理。本发明提供的一种监控和管理数据的方法,具体步骤为确定程序运行时所需调 用数据,并将所述所需调用数据集中存储于预设地址;建立程序运行时所需调用数据与被 存储于所述预设地址的被调用数据之间的数据映射关系,并将所述数据映射关系存储于程 序中;运行程序,对存储于预设地址的所需调用数据进行监控和管理。优选的,所述方法还可以包括,当运行程序所需调用数据不同于之前与所述程序 之间具有映射关系的数据时,更新运行程序中的数据映射关系。本发明还提供了一种监控和管理数据的系统,所述系统具体包括至少一个程序模块、 数据模块、控制模块及监控和管理模块。其中,所述程序模块包括程序逻辑和数据结构,所述程 序模块通过执行程序逻辑来运行程序;所述数据模块用于集中存储执行程序逻辑时所需调用 的数据;所述控制模块用于建立执行程序逻辑时所需调用数据和被存储于所述数据模块中的 被调用数据之间的数据映射关系,并将所述数据映射关系以映射表的形式存储于对应的数据 结构中;所述监控和管理模块用于当执行程序逻辑时对数据模块中的数据进行监控和管理。优选的,所述系统还可以包括判断模块和更新模块。其中,所述判断模块用于判断 是否需要修改程序模块和数据模块中数据的映射关系;所述更新模块用于当所述判断模块 的判断结果为是时,更新数据结构中的数据映射关系。优选的,所述程序逻辑由一组实现程序模块逻辑功能的函数组成。优选的,所述函数包括在程序模块内部定义的函数和在程序模块外部定义的可被 当前程序模块调用的函数。优选的,所述数据结构包括一张数据映射表和一组属于程序模块的数据。其中,所 述数据映射表是保存程序模块和数据模块之间数据映射关系的载体;所述一组属于程序模 块的数据包括系统数据和用户数据。由此可见,本发明的有益效果为将程序运行时所需调用数据集中存储于预设地 址,并建立程序运行时所需调用数据和被存储于所述预设地址的被调用数据之间的数据映 射关系,运行程序时,程序模块通过数据映射关系即可调用预设地址中的数据,通过对预设 地址中的数据进行集中监控或访问即可实现对一副程序的监控或访问,从而简单有效地实 现对数据的集中监控和管理。


为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的 介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人 员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例所提供的一种监控和管理数据的方法流程图;图2为本发明实施例所提供的另一种监控和管理数据的方法流程图;图3为本发明实施例所提供的程序模块和数据模块中数据映射关系的结构示意 图;图4为对图3中的数据映射关系进行修改后的结构示意图5为本发明实施例所提供的一种监控和管理数据的系统示意图;图6为本发明实施例所提供的程序模块编写期的结构示意图;图7为本发明实施例所提供的程序模块编译后的结构示意图;图8为本发明实施例所提供的应用程序的程序结构模块示意图; 图9为本发明实施例所提供的程序模块间调用关系的结构示意图;图10为本发明实施例所提供的另一种监控和管理数据的系统示意图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本 发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他 实施例,都属于本发明保护范围。参考图1,为本发明实施例公开的一种监控和管理数据的方法实施例1,具体步骤 如下步骤101 确定程序运行时所需调用数据,并将所述所需调用数据集中存储于预 设地址。对于工业控制的应用程序,一般运用结构化建模思想设计多层次结构的程序模 型,使得整个应用程序被分解成不同层次的程序模块的组合。每个程序模块均包括了程序 逻辑和数据结构。其中,程序逻辑由一组实现模块应用功能的相关联的函数组成,这些函数 既可以在程序模块中直接定义,也可以是引用的模块外部函数。一些可重复使用的函数被 封装为函数模版或加入到函数库中,供相关程序模块调用。数据结构由一张数据映射表和 一组代表模块属性或其他应用属性的数据组成。所述数据映射表是数据映射关系的载体, 程序逻辑通过数据映射表能够调用所需数据。数据结构中的数据包括属于程序模块的系统 数据和用户数据,所述系统数据和用户数据为在建立程序模块期间所定义的数据,具体情 况可视应用程序而定。在构造程序结构模型、创建程序模块的时候,根据程序的具体应用需求,确定程序 运行时所需调用数据,并将所述所需调用数据集中存储于预设地址。本实施例中在程序模 块外创建一个独立于各程序模块的数据模块,将各程序模块所需调用的数据集中存储于所 述数据模块中。数据模块独立于各程序模块,但其可以被创建于应用程序内部,称之为内部数据 模块,也可以被创建于应用程序外部,称之为全局数据模块。一副应用程序内部可以创建一 个或多个内部数据模块,也可以使该应用程序关联一个或多个全局数据模块。该应用程序 下属所有的程序模块都可以引用这些数据模块中定义的数据。步骤102 建立程序运行时所需调用数据与被存储于所述预设地址的被调用数据 之间的数据映射关系,并将所述数据映射关系存储于程序中。根据程序运行时所需调用数据和被存储于所述数据模块中的被调用数据之间的 关系建立程序模块和数据模块间数据的映射关系,并将所述数据映射关系一一保存在程序 模块的数据映射表中。步骤103 运行程序,对存储于预设地址的所需调用数据进行监控和管理。
运行应用程序时,只需将整个应用程序置于可运行的环境,启动该程序。在工业控 制系统中,可以将应用程序的程序逻辑和数据结构下载到工业控制器中,并通过工业控制 器内部的程序调度方法运行该应用程序。在运行应用程序时,程序模块通过数据映射表中的数据映射关系访问数据模块中 定义的数据。程序模块执行程序逻辑并调用数据,实际上是对数据模块中的数据进行操作, 因此对一副应用程序进行监控和管理,只需对存储于数据模块中的数据进行监控和管理即可。
从本实施例可以看出,通过将应用程序所需调用的数据集中存储于独立于程序模 块的数据模块中,建立应用程序所需调用数据和数据模块中被调用数据之间的数据映射关 系,在运行应用程序时,对程序模块中的数据进行操作实际上是对数据模块中的数据进行 操作,因此,对数据模块中的数据进行集中监控和管理即可实现对整个应用程序中的数据 进行集中监控和管理。而且,由于程序模块和数据模块相互独立,如果要在不同程序层或相同程序层的 不同程序模块间传递数据,只需在数据模块中定义该数据,然后在需要引用该数据的程序 模块中直接引用该数据即可,方便地实现了模块间的数据传递。除此之外,通过创建数据模块,并在所述数据模块中集中定义用户数据,这就将一 副应用程序的数据与其他应用程序相隔离,同时也将用户数据和系统数据隔离,这既可以 保证当前应用程序数据访问的有效性,又可以避免其他应用程序对当前应用程序数据的非 法访问,保证了程序的安全运行。参考图2,为本发明实施例所提供的一种监控和管理数据的方法实施例2,本实施 例在实施例1中的步骤103之后,还可以进一步包括如下步骤步骤201 判断是否需要修改数据映射关系,如果是,则执行步骤202 ;如果否,则 执行步骤103。在程序运行过程中,根据应用程序的需求判断是否需要修改数据映射关系,如果 是,即程序模块所需调用数据和之前与所述程序模块之间具有数据映射关系的数据不相 同,则执行步骤202 ;如果否,即程序模块所需调用数据和之前与所述程序模块之间具有数 据映射关系的数据相同,则继续执行步骤103。步骤202 动态修改程序模块中的数据映射关系。当步骤201的判断结果为是,即当程序模块所需调用数据和之前与所述程序模块 之间具有数据映射关系的数据不同时,根据应用需求动态修改程序模块中的数据映射关 系,对数据映射关系进行动态修改后,仍然执行步骤103。在修改过程中,既可以修改程序模块和数据模块的对应关系,也可以单点修改程 序模块和数据模块之间的数据映射关系。所述单点修改数据映射关系,即可以对程序模块 和数据模块之间以单个数据映射关系为单位进行修改。通过单点动态修改数据映射表中的 映射关系,改变程序模块中所能访问的数据,达到数据动态映射的目的。参考图3,为本发明实施例所提供的程序模块和数据模块中数据映射关系的结构 示意图。程序区定义数据nVarA,数据模块中存储数据nVarl,数据映射表中保存了由数据 nVarA指向数据nVarl的数据映射关系,则对数据nVarA操作,实际上是对数据nVarl进行 操作。
参考图4,为对图3中的数据映射关系进行修改后的结构示意图。从图中可以看 出,程序模块中的数据nVarA从图3中的指向数据nVarl更改为图4中的指向数据nVarf, 在动态修改数据nVarA的映射关系时,不会影响程序区其他数据的映射关系。具体的修改操作可以由程序模块本身发起,也可以由当前应用程序、系统程序或 者外部应用程序发起,甚至可以由软件使用者通过一定的方式发起。只要应用程序处于一 个安全运行的状态,就可以根据应用需求动态修改数据映射关系,且修改数据映射关系不 会对程序运行和现场控制产生扰动。所述应用程序处于一个安全运行状态,即在修改数据 映射关系的过程中,程序模块不通过数据映射表访问外部的用户数据。上述实施例除了能够实现方便有效地对应用程序中的数据进行集中管理和监控 的目的,还能够在程序运行过程中,实现在线无扰动地修改数据映射关系。这是由于其一, 数据映射关系的修改总是在程序处于安全运行的状态进行。这点在工业控制器中很容易实 现,因为控制程序总是周期性地运行,只需在每次调用应用程序前将数据映射关系更新,就 可以保证在应用程序运行时总是访问有效数据。其二,修改数据映射关系只是修改程序模 块的数据映射表,既不影响程序模块的程序逻辑,也不影响数据模块中的数据属性。因此, 动态修改数据映射关系,既能满足应用程序的需求,也不影响程序运行的安全性。除此之外,由于所有的函数逻辑都是封装在程序模块中,并且都通过数据映射表 访问外部的数据,这可以有效减少程序模块与其他模块的耦合性,提高模块的可测性和可 维护性,从而保证程序逻辑的安全性。另外,这些程序模块可以在任何应用程序中创建并关 联相应的数据模块,从而实现程序模块的复用,这可以有效减少编程人员的工作量和程序 代码的占用空间。相应于上面的方法实施例,本发明实施例还提供了一种监控和管理数据的系统, 参见图5所示,所述系统包括至少一个程序模块301、数据模块302、控制模块303及监控 和管理模块304。其中,所述程序模块301包括程序逻辑和数据结构,所述程序模块301通过执行程 序逻辑来运行程序。所述程序逻辑由一组实现模块应用功能的相关联的函数组成,这些函数既可以在 程序模块中直接定义,也可以是引用的模块外部函数。一些可重复使用的函数被封装为函 数模版或加入到函数库中,供相关程序模块调用。所述数据结构由一张数据映射表和一组代表模块属性或其他应用属性的数据组 成。所述数据映射表是数据映射关系的载体,运行应用程序时程序逻辑通过数据映射关系 即可调用模块外部数据。数据结构中的数据包括属于程序模块的系统数据和用户数据,具 体情况可视应用程序而定。参考图6,为本发明实施例所提供的程序模块编写期的结构示意图。如图所示, 在例举的程序模块中需引用数据nVarA、nVarB,则首先需要在程序模块中定义数据nVarA、 nVarB,然后在模块的程序逻辑中直接使用数据nVarA、nVarB.参考图7,为本发明实施例所提供的程序模块编译后的结构示意图。当程序模块编 写完成后,程序模块根据所定义的数据生成一张数据映射表,程序逻辑即图中所示的程序 区通过数据映射表可直接访问模块外部的数据。数据映射表由很多不同的映射元组成,每 一个映射元中存放指向一个数据的指针,所述映射元的大小由变量的属性和映射关系的属性决定,数据映射表的大小由程序模块所定义用户数据的数量决定。在程序模块301未与 数据模块302相关联时,该数据映射表是一张空表,并未指定任何数据映射关系。所述数据模块302用于集中存储执行程序逻辑时所需调用的数据。在程序模块301外部创建独立于程序模块301的数据模块302,并根据各程序模块 301所需访问的 数据,在所述数据模块301内部定义若干用户数据。所述数据模块301既 可以是在应用程序内部创建的内部数据模块,也可以是在应用程序外部创建的全局数据模 块。在一副应用程序内部可以创建一个或多个内部数据模块,也可以使一副应用程序关联 一个或多个全局数据模块。该应用程序下属的所有程序模块301都可以引用在这些数据模 块302中定义的数据。在多层次结构的应用程序中,根据程序的应用功能,将程序模块进行组合。每一层 程序可以拥有一个或多个相对独立的程序模块,整个程序形成具有不同层次的程序模块的 组合。上下层间的关联关系可以通过上下层中程序模块间的调用关系来实现。参考图8,为本发明实施例提供的应用程序的程序结构模块示意图。所述程序结构 模块包含一组不同层次的具有不同程序逻辑和数据结构的程序模块,以及一组集中定义用 户数据的数据模块。本实施例所提供的程序结构模型包含3个层次及其中的8个程序模块, 以及2个数据模块。所述2个数据模块中一个是内部数据模块,另一个是全局数据模块。参考图9,为本发明实施例所提供的程序模块间调用关系的结构示意图。如图所 示,程序模块区中层次一的程序模块11,可以调用层次二中的2个程序模块21和22,层次 二中的程序模块21可以调用层次三中的程序模块31、32和33,层次二中的程序模块22可 以调用层次三中的程序模块34和35。数据模块区中的数据模块1(内部数据模块)是指在 当前应用程序的数据结构中定义的用户数据组合,这些数据主要是被内部的程序模块所访 问,也可以通过一定的途径被外部的应用程序所访问。数据模块2(全局数据模块)是指在 当前系统中定义的全局用户数据,这些数据可以被当前系统的多副应用程序所访问。程序 模块区中的各个程序模块中所需调用数据如果是内部数据模块,则存储于数据模块1中, 所需调用数据如果属于全局数据,则存储于数据模块2中。所述控制模块303用于建立执行程序逻辑时所需调用数据和被存储于所述数据 模块302中的被调用数据之间的数据映射关系,并将所述数据映射关系以映射表的形式存 储于对应的数据结构中。在应用程序中创建内部数据模块或关联全局数据模块时,实际上已将下属所有的 程序模块与这些数据模块之间建立了关联关系。控制模块303即是用于建立程序模块301 和数据模块302之间的数据映射关系,并将所述数据映射关系以映射表的形式保存到相应 的程序模块301的数据结构中。所述监控和管理模块304用于当执行程序逻辑时对数据模块302中的数据进行监
控和管理。在运行应用程序时,程序模块301的程序逻辑通过数据映射表中的数据映射关系 直接访问数据模块302中定义的数据,对应用程序的程序模块301中的数据进行操作,实际 上是对数据模块302中的数据进行操作,因此监控和管理模块304通过对数据模块302的 数据进行监控和管理,即可实现对整个应用程序中的数据进行集中监控和管理。参考图10,本发明实施例所提供的一种监控和管理数据的系统还可以进一步包括判断模块305和更新模块306 ;其中所述判断模块305用于判断是否需要修改程序模块301和数据模块302之间的数 据映射关系。在程序运行过程中,根据应用程序的需求,判断模块305判断是否需要修改程序模块 和数据模块之间的数据映射关系,如果是,即运行程序逻辑时所需调用数据和之前与所述程序 逻辑之间具有映射关系的数据不相同,则需要更新模块306对其执行进一步的操作;当判断模 块305的判断结果为否时,仍然执行原先的操作步骤,或运行程序,或监控和管理数据。 所述更新模块306用于当所述判断模块305的判断结果为是时,更新数据结构中 的数据映射关系。当判断模块305的判断结果为是,即当程序模块301所需调用数据和之前与所述 程序模块301之间具有数据映射关系的数据不同时,根据应用需求动态修改程序模块301 中的数据映射关系。在修改过程中,既可以修改程序模块301和数据模块302的对应关系,也可以单点 修改程序模块301和数据模块302之间的数据映射关系。所述单点修改数据映射关系,即 可以对程序模块301和数据模块302之间以单个数据映射关系为单位进行修改。通过单点 动态修改数据映射表中的映射关系,改变程序模块301中所能访问的数据,达到数据动态 映射的目的。具体的修改操作可以由程序模块301本身发起,也可以由当前应用程序、系统程 序或者外部应用程序发起,甚至可以由软件使用者通过一定的方式发起。只要应用程序处于一个安全运行的状态,就可以根据应用需求动态修改数据映射 关系,且修改数据映射关系不会对程序运行和现场控制产生扰动。所述应用程序处于一个 安全运行状态,即在修改数据映射关系的过程中,程序模块301不通过数据映射表访问外 部的用户数据。需要说明的是,本文中诸如术语“包括”、“包含”或者其任何其他变体意在涵盖非 排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素, 而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固 有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包 括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。对于系统实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实 施例的部分说明即可。以上所描述的系统实施例仅仅是示意性的,其中所述作为分离部件 说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以 不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的 需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不 付出创造性劳动的情况下,即可以理解并实施。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。 对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的 一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明 将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一 致的最宽的范围。
权利要求
一种监控和管理数据的方法,其特征在于,包括确定程序运行时所需调用数据,并将所述所需调用数据集中存储于预设地址;建立程序运行时所需调用数据与被存储于所述预设地址的被调用数据之间的数据映射关系,并将所述数据映射关系存储于程序中;运行程序,对存储于预设地址的所需调用数据进行监控和管理。
2.根据权利要求1所述的方法,其特征在于,还包括,当运行程序所需调用数据不同于 之前与所述程序之间具有映射关系的数据时,更新运行程序中的数据映射关系。
3.—种监控和管理数据的系统,其特征在于,包括至少一个程序模块、数据模块、控 制模块及监控和管理模块;其中所述程序模块包括程序逻辑和数据结构,所述程序模块通过执行程序逻辑来运行程序;所述数据模块用于集中存储执行程序逻辑时所需调用的数据; 所述控制模块用于建立执行程序逻辑时所需调用数据和被存储于所述数据模块中的 被调用数据之间的数据映射关系,并将所述数据映射关系以映射表的形式存储于对应的数 据结构中;所述监控和管理模块用于当执行程序逻辑时对数据模块中的数据进行监控和管理。
4.根据权利要求3所述的系统,其特征在于,还包括判断模块和更新模块; 其中所述判断模块用于判断是否需要修改程序模块和数据模块中数据的映射关系; 所述更新模块用于当所述判断模块的判断结果为是时,更新数据结构中的数据映射关系。
5.根据权利要求3所述的系统,其特征在于,所述程序逻辑由一组实现程序模块逻辑 功能的函数组成。
6.根据权利要求5所述的系统,其特征在于,所述函数包括在程序模块内部定义的函 数和在程序模块外部定义的可被当前程序模块调用的函数。
7.根据权利要求3所述的系统,其特征在于,所述数据结构包括一张数据映射表和一 组属于程序模块的数据;其中所述数据映射表是保存程序模块和数据模块之间数据映射关系的载体; 所述一组属于程序模块的数据包括系统数据和用户数据。
全文摘要
本发明公开了一种监控和管理数据的方法及系统。所述方法包括如下步骤确定程序运行时所需调用数据,并将所述所需调用数据集中存储于预设地址;建立程序运行时所需调用数据与被存储于所述预设地址的被调用数据之间的数据映射关系,并将所述数据映射关系存储于程序中;运行程序,对存储于预设地址的数据进行监控和管理。在程序运行过程中,根据应用需求可以动态修改数据映射关系,而且,修改数据映射关系不会对程序运行和现场控制产生扰动。所述系统包括若干程序模块、数据模块、控制模块、判断模块、更新模块及监控和管理模块。通过本发明所提供的方法和系统,能够方便有效地实现对程序中的数据进行集中监控和管理。
文档编号G05B19/418GK101840230SQ201010198919
公开日2010年9月22日 申请日期2010年6月4日 优先权日2010年6月4日
发明者吴欣, 平志明, 章凌, 裘坤 申请人:浙江中控技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1