现场装置管理设备的制作方法

文档序号:6423687阅读:115来源:国知局
专利名称:现场装置管理设备的制作方法
技术领域
本发明涉及一种现场装置管理设备。具体地说,本发明涉及对利用Microsoft Windows操作系统在个人计算机上管理现场装置的现场装置管理设备的改进。
背景技术
本申请下文所引述或者指出的所有专利、专利申请、专利公开、科学文献等在此都通过引用而整体并入本文,从而更完整地描述本发明所属的现有技术的状态。现场装置管理设备对诸如化工厂之类的过程控制系统所包含的现场装置进行管理。图5是图示出根据现有技术的现场装置管理设备的实例的框图。现场装置管理设备50通过通信通路61与作为管理对象的现场装置60进行通信。 现场装置管理设备50通过使用公知的装置类型管理器(DTM)规范以及装置描述(DD)规范来接收现场装置60的装置数据。装置数据例如是装置标签、诸如序列号之类的各自的数据、以及装置参数。现场装置管理设备50执行参数设置、装置调节、维护操作等。如图5所示,现场装置管理设备50包括输入单元51、显示单元52、用户应用处理单元53、DD应用处理单元M、虚拟通信单元55、DD 56、DTM应用处理单元57、DTM 58、以及通信单元59。通信单元59通过通信通路61连接至现场装置60。DD 56包括描述数据56a。描述数据56a描述了诸如现场装置60的参数以及访问装置数据的方法的定义。当根据现场装置的状态执行诸如对参数的条件分支处理之类的信息处理时,DTM 58包括执行信息处理的算法或程序。现场装置管理设备50通过使用DD 56 和DTM 58来接收与现场装置60相关的装置数据。利用脚本语言来描述DD 56。因此,开发的负担对于制造者来说减轻了。但是,DD 56很难执行诸如条件分支处理之类的复杂处理。这种复杂处理通过利用ActiveX 控制的 DTM 58执行。将描述从现场装置60接收装置数据的现场装置管理设备50的操作。一开始,用户应用处理单元53通过输入单元51接收来自用户的装置数据接收请求信号。输入单元51 例如是键盘和鼠标。当接收DD规范中的装置数据时,DD应用处理单元M从用户应用处理单元53接收装置数据接收请求信号。DD应用处理单元M通过虚拟通信单元55读取DD 56中的描述数据56a。随后,DD应用处理单元M通过DD 56、通信单元59和通信通路61并根据描述数据56a中描述的定义与现场装置60通信,以接收来自现场装置60的装置数据。用户应用处理单元53接收已经被DD应用处理单元M接收的装置数据,从而使显示单元52显示装置数据的显示数据。显示单元52例如是CRT (阴极射线管)或LCD (液晶显不器)O当接收DTM规范中的装置数据时,DTM应用处理单元57从用户应用处理单元53 接收装置数据接收请求信号。DTM应用处理单元57激活DTM 58。DTM 58通过通信单元59 和通信通路61与现场装置60通信,以接收来自现场装置60的装置数据。随后,用户应用处理单元53接收已经被DTM应用处理单元57接收的装置数据,从而使显示单元52显示装置数据的显示数据。在图5的现场装置管理设备50中,使用了在Microsoft Windows操作系统中运行的软件库。例如,现场装置的DD文件格式的兼容性已经保持了超过13年。并且,对DD文件进行电子阅读的软件库DDS (装置描述服务)已经使用了超过13年。通过使用C编程语言来产生前述软件库。因此,与已知作为现代编程语言的C++ 编程语言相比,前述软件库着重利用了全局变量和静态变量。图6是图示出图5的现场装置管理设备50中的传统库(legacy library)的正常使用的示意图。诸如DDS之类的软件库被设置在一个DLL (动态链接库)110中,并且由客户程序服务器1中存储的客户程序独立地激活。在图6中,DLL 110包括示例111,示例111包括传统库12、成员变量13和全局/静态变量14。示例111是可由编程语言的命令所操纵的对象,例如值、变量、函数或数据结构。另一方面,存在被称为COM (Component Object Model,组件对象模型)的编程形式的类型,它是一种主要的形式,并且在Microsoft Windows操作系统中运行。DTM是利用了使得使用数字域技术变得简单的COM的标准。已经进行了新的实验来结合成熟的传统技术(例如DDS)和新技术(例如COM)。 图7是图示出激活图5的现场装置管理设备50中的多个COM示例的传统库中的DLL的使用的示意图。当使用COM时,通常激活多个COM示例。一个COM示例包括一个传统库,并且多个传统库被激活。在图7的实例中,存在两个COM示例以及与两个现场装置或硬件相对应的两个传统库。在图7中,COM处理中服务器210包括COM示例211和COM示例221。COM 示例211包括传统库12和成员变量13。COM示例221包括传统库22和成员变量23。成员变量13、成员变量23和全局/静态变量14是数据域。根据C编程语言或C++ 编程语言的规范,全局/静态变量14在COM处理中服务器210中被当作公共数据域。初始地,假设全局/静态变量14被单个传统库12所使用,如图6所示。全局/静态变量14未被假设为用作如图7所示的公共数据域。但是,即使开发中使用了 C编程语言, 全局/静态变量14被用作如图7所示的公共数据域以便降低开发的人工小时数。在应用COM技术时,如果全局/静态变量在COM处理中服务器中被当作公共数据域,那么传统库不会正常工作。因此,在将COM技术应用至传统库时选择下述(1)或(2)之
ο(1)重写传统库的所有源代码以改变其设计,从而不使用全局/静态变量。(2)通过将图7中的处理中服务器改变为图8的本地服务器来利用EXE,从而不会出现公共数据域。图8是图示出激活图5的现场装置管理设备中的多个COM示例的传统库中的EXE 的使用的示意图。客户程序服务器1可包括客户程序。客户程序被输入至COM本地服务器 1310和COM本地服务器2320。COM本地服务器1310包括COM示例211。COM本地服务器1320包括COM示例221。在COM示例211中,传统库12被输入至成员变量13的数据域和全局/静态变量14的数据域。在COM示例221中,传统库22被输入至成员变量23的数据域和全局/静态变量14的数据域。日本未审查专利申请首次公开No. 2010-026843公开了一种现场装置管理设备、 现场装置管理系统、计算机程序、记录介质以及特别是一种对与现场装置管理相关的应用进行综合的技术。"Isao Hirooka et al., FieldMate Field Device Management Tool for New Era, Yokogawa Technical Report English Edition, No. 44, 2007, pp. 9-12.,,(Isao Hirooka et al. , FieldMate Field Device Management Tool for New Era, Yokogawa Technical Report, Vol. 51,No. 2,2007,pp. 45-48. ” 的英文版)公开了一种利用了装置描述(DD)规范和装置类型管理器(DTM)规范的现场装置管理设备。但是,(1)的方法需要改变来自基本部分的传统库的源代码,这需要大量人工时间。在许多情况下,不可能根据(1)的方法来改变设计。具体地说,诸如DDS之类的先前初始地利用C编程语言制成的传统库往往大量利用全局/静态变量,如上所述。当将COM技术应用至传统库时会出现大量困难。另一方面,在O)的方法中,传统库本身不会改变,但是COM的格式变化,因此,要求少量的人工时间。但是,设备的处理速度会急速下降。

发明内容
一种现场装置管理设备可包括多个COM处理中服务器,每个COM处理中服务器获取并管理与相应的一个现场装置相关的装置数据;以及发动程序COM处理中服务器,其存储发动程序,所述发动程序对所述多个COM处理中服务器中的每一个中的示例进行激活/ 关闭,所述发动程序防止四个不同函数在所述多个COM处理中服务器中直接被0S(操作系统)所执行。可以在Microsoft Windows操作系统中初始化所述多个COM处理中服务器, 以在不同存储器空间中产生COM对象。一种现场装置管理设备可包括客户服务器,其包括客户程序;第一 COM处理中服务器,其获取并管理与第一现场装置相关的装置数据,所述第一 COM处理中服务器包括第一 COM示例;第二 COM处理中服务器,其获取并管理与第二现场装置相关的装置数据,所述第二 COM处理中服务器包括第二 COM示例;以及发动程序COM处理中服务器,其存储发动程序,所述发动程序防止四个不同函数在第一和第二 COM处理中服务器中执行。可以在 Microsoft Windows操作系统中初始化第一 COM处理中服务器以在第一 COM示例中在第一存储器空间中产生第一 COM对象,并且可以在Microsoft Windows操作系统中初始化第二 COM处理中服务器以在第二 COM示例中在第二存储器空间中产生第二 COM对象,所述第一存储器空间不同于所述第二存储器空间。一种现场装置管理方法可包括获取并管理与相应的一个现场装置相关的装置数据;存储发动程序,所述发动程序防止四个不同函数直接被 OS所执行;并且在不同存储器空间中产生COM对象。


结合附图并根据对特定优选实施例的下述描述,本发明的上述特征和优势将变得更明显,其中图1是图示出根据本发明第一优选实施例的现场装置管理设备的操作的框图;图2是图示出图1的伪COM示例的启动时的操作的流程图;图3是图示出图1的伪COM示例的终止时的操作的流程图;图4是图示出图1的现场装置管理设备的主要组件的实施例的框图;图5是图示出根据现有技术的现场装置管理设备的实例的框图;图6是图示出图5的现场装置管理设备中的传统库的正常使用的示意图;图7是图示出激活图5的现场装置管理设备中的多个COM示例的传统库中的DLL 的使用的示意图;以及图8是图示出激活图5的现场装置管理设备中的多个COM示例的传统库中的EXE 的使用的示意图。
具体实施例方式现在将参考示例性实施例来描述本发明。本领域技术人员将认识到,利用本发明的指教可以完成多种替换实施例,并且本发明并不限于用于示例目的而示出的实施例。现场装置管理设备可包括多个COM (组件对象模型)处理中服务器,每个COM处理中服务器获取并管理与相应的一个现场装置相关的装置数据;以及发动程序COM处理中服务器,其存储发动程序,所述发动程序对所述多个COM处理中服务器中的每一个中的示例进行激活/关闭,所述发动程序防止四个不同函数在所述多个COM处理中服务器中直接被 OS (操作系统)所执行。在Microsoft Windows操作系统中初始化所述多个COM处理中服务器,以在不同存储器空间中产生COM对象。所述发动程序可防止产生新示例的函数“GetClassObject”的执行。如果第一次调用函数“GetClassObject”,则可从主体DLL(动态链接库)调用函数“GetClassObject”。如果第二次或者更多次调用函数“GetClassObject”,则主体DLL 可被复制至副本DLL,副本DLL具有与主体DLL不同的名字,并且可从副本DLL调用函数 "GetClassObject,,。副本DLL的数据可被存储在示例阵列中。在示例终止时仅能调用函数“CanUnloadNow”。所述四个不同的函数可以是“GetClassObject”、“CanUnloadNow”、 “RegisterServer“以及"UnregisterServer,,。COM对象可包括全局变量和静态变量中的至少一个。现场装置管理设备可包括客户服务器,其包括客户程序;第一 COM处理中服务器,其获取并管理与第一现场装置相关的装置数据,所述第一 COM处理中服务器包括第一 COM示例;第二 COM处理中服务器,其获取并管理与第二现场装置相关的装置数据,所述第二 COM处理中服务器包括第二 COM示例;以及发动程序COM处理中服务器,其存储发动程序,所述发动程序防止四个不同函数在第一和第二 COM处理中服务器中执行。在Microsoft Windows操作系统中初始化第一 COM处理中服务器以在第一 COM示例中在第一存储器空间中产生第一 COM对象,并且在Microsoft Windows操作系统中初始化第二 COM处理中服务器以在第二 COM示例中在第二存储器空间中产生第二 COM对象,所述第一存储器空间不同
7于所述第二存储器空间。 所述发动程序可防止产生新示例的函数“GetClassObject”的执行。
如果客户程序第一次调用函数“GetClassObject,,,则可从主体DLL调用函数 “GetClassObject”。如果客户程序第二次或者更多次调用函数“GetClassObject”,则主体 DLL可被复制至副本DLL,副本DLL具有与主体DLL不同的名字,并且可从副本DLL调用函数"GetClassObject,,。副本DLL的数据可被存储在第一和第二 COM示例阵列中。在第一和第二示例终止时仅能调用函数“CanUnloadNow”。所述四个不同的函数可能是“GetClassObject”、“CanUnloadNow”、 “RegisterServer“以及"UnregisterServer,,。COM对象可包括全局变量和静态变量中的至少一个。一种现场装置管理方法可包括获取并管理与现场装置相关的装置数据;存储发动程序,所述发动程序防止四个不同函数直接被OS所执行;并且在不同存储器空间中产生 COM对象。所述发动程序可防止产生新示例的函数“GetClassObject”的执行。如果第一次调用函数“GetClassObject”,则可从主体DLL调用函数 “GetClassObject”。如果第二次或者更多次调用函数“GetClassObject”,则主体DLL可被复制至副本DLL,副本DLL具有与主体DLL不同的名字,并且可从副本DLL调用函数 "GetClassObject,,。在示例终止时仅能调用函数“CanUnloadNow”。所述四个不同的函数可以是“GetClassObject”、“CanUnloadNow,,、 “RegisterServer“以及"UnregisterServer,,。COM对象可包括全局变量和静态变量中的至少一个。将描述本发明的第一优选实施例。图1是图示出根据本发明第一优选实施例的现场装置管理设备的操作的框图。在图1中,与图8中的组件相同的组件标有相同的标号。 图1与图8不同之处在于,在图1中,包括发动程序的发动程序C0M(组件对象模型)处理中服务器2被布置在客户程序服务器1和伪COM处理中服务器110/伪COM处理中服务器 220之间。客户程序服务器1包括客户程序。客户程序在启动/终止时之外的时间被输入至伪COM处理中服务器110和伪COM处理中服务器220。客户程序在启动/终止时通过包括发动程序的发动程序COM处理中服务器2输入至伪COM处理中服务器110和伪COM处理中服务器220。伪COM处理中服务器110包括伪COM示例11。伪COM处理中服务器220包括伪COM示例21。示例是可由编程语言的命令操纵的对象,例如值、变量、函数或数据结构。 在伪COM示例11中,传统库12被输入至成员变量13的数据域以及全局/静态变量14的数据域。在伪COM示例21中,传统库22被输入至成员变量23的数据域以及全局/静态变量M的数据域。在多个伪COM示例11和21启动/终止时操作发动程序。发动程序激活/关闭伪 COM示例11和21。在多个伪COM示例11和21启动/终止时之外的时间操作客户程序。在现有技术中,当在Microsoft Windows操作系统中初始化多个COM处理中服务器时,在公共的数据域中产生所有的全局/静态变量,如图7所示。在本发明的第一优选实施例中,进行控制以在彼此不同的存储器空间中产生多个COM对象,即使它们使用处理中服务器。在本发明的第一优选实施例中,Microsoft Windows操作系统的下述规范(1)和 (2)被利用来在完全不会改变传统代码的情况下实现上述结构。(1)需要被COM处理中服务器支持的函数是4个函数KetClassObject、 CanUnloadNow、RegisterServer 以及 UnregisterServer0(2)具有其它名字的DLL(动态链接库)被布置在其它存储器空间中,即使是相同的 DLL。将描述根据本发明的第一优选实施例的现场装置管理设备的操作。初始地,发动禾呈序对 GetClassObject、CanUnloadNow、RegisterServer 以及 UnregisterServer 这四个函数全部进行拦截。换言之,发动程序调用这4个函数,从而防止这4个函数被OS (操作系统)所直接调用和执行。在下文的描述中,省略了对函数Registei^erver以及函数 Unregisterkrver的描述,因为它们与现有技术一样。在本发明的第一优选实施例中,可以与现有技术一样的方式实施函数RegisterServer以及函数UnregisterServer0函数GetClassOb ject产生新示例。如果发动程序拦截了函数GetClassOb ject以使其不会被OS直接执行,并且客户程序调用了函数GetClassObject,那么将执行图2所示的操作。图2是图示出图1的伪COM示例的启动时的操作的流程图。在步骤S20中,操作开始。在步骤S21中,客户程序调用存储在发动程序中的函数GetClassObject。根据所调用的函数GetClassObject产生新示例。在步骤S22中,判断新示例是否是第一示例。如果新示例是第一示例,那么处理进入步骤S23。如果新示例不是第一示例而是更多次的示例, 那么处理进入步骤S24。在步骤S23中,发动程序从主体DLL “body, dll”调用具有相同名字的函数作为目标数据,并且存储在发动程序的预定存储域中。从而,本发明的操作变得与现有技术一样。在步骤S24中,主体DLL "body, dll”被复制至具有唯一名字(例如“tmpx. dll”) 的另一 DLL中。在步骤S25中,复制的DLL被称为目标数据并且被存储在发动程序的预定存储域中。针对第一示例的存储器空间不同于针对更多次示例的存储器空间,它们具有彼此不同的名称。随后,处理进入步骤S26。在步骤S^中,发动程序根据步骤S23或步骤S25中的目标数据从主体DLL “body, dll”或复制的DLL“tmpx. dll”的内部调用函数GetClassObject。在步骤S27中,对于终止操作,复制的DLL "tmpx. dll”的数据被存储在发动程序中的阵列示例[]数据存储单元中。存储在阵列示例[]数据存储单元中的数据包括第一数据和第二数据。第一数据表示直接使用主体DLL还是使用复制的DLL。第二数据表示当主体DLL被复制时所使用的文件名,如果复制的DLL被使用的话。随后,在步骤S28中,处理结束。图3是图示出图1的伪COM示例终止时的操作的流程图。在伪COM示例终止时, 调用处理被汇总为函数CanUnloadNow,并且复制的DLL "tmpx. dll”被删除。在图3的步骤S30中,处理开始。在步骤S31中,客户程序调用存储在发动程序中的函数CanUnloadNow。在步骤S32中,所调用的函数CanUnloadNow在阵列示例[]数据存
9储单元中循环。在步骤S33中,调用示例[χ]的CanUnloadNow函数。此处,χ是示例阵列。在步骤S34中,判断示例[χ]的所调用的函数CanUnloadNow的返回值是否是真 (TRUE)。如果返回值不是真,则处理进入步骤S35,并且返回值被设置为假(FALSE)。如果返回值是真,则在步骤S36中,复制的DLL“tmpx. dll”的传统库被打开,并且在步骤S37中, 删除复制的DLL "tmpx. dll”的文件。在步骤S38中,判断是否结束在步骤S32和步骤S35/S37之间的循环。如果判断不结束循环,而处理进入步骤S32,并且步骤S32和步骤S37之间一系列操作重复直到循环结束。如果判断结束循环,则处理进入步骤S39。在步骤S39中,返回函数CanUnloadNow的返回值TRUE/FALSE。随后在步骤S40中,在示例终止时的一系列操作结束。图4是图示出图1的现场装置管理设备的主要组件的实施例的框图。发动程序2 包括函数存储单元25、DLL文件数据存储单元沈、阵列示例[]数据存储单元27、以及返回值管理单元观。主体DLL3包括函数存储单元31。在启动时,客户程序调用存储在发动程序2的函数存储单元25中的函数 GetClassObject0如果新产生的示例是第一示例,那么发动程序2从主体DLL 3的函数存储单元31 调用函数GetClassObject,并且将其存储在发动程序2的DLL文件数据存储单元沈中。如果新产生的示例不是第一示例,那么发动程序2将主体DLL复制至具有唯一名字的另一 DLL文件,并且将复制的DLL的文件数据作为调用目标数据存储在与主体DLL不同的存储器空间中,即不同于当发动程序2的DLL文件数据存储单元沈的示例是第一示例时的存储器空间。对于终止处理,发动程序2将复制的DLL "tmpx. dll”存储在发动程序2的阵列示例[]数据存储单元27中。发动程序2从主体DLL 3的函数存储单元31调用函数 GetClassObject,并且将其存储在发动程序2的DLL文件数据存储单元沈中。在终止时,客户程序调用存储在发动程序2的函数存储单元25中的函数 CanUnloadNow0所调用的函数CanUnloadNow在阵列示例[]数据存储单元27中循环,并且示例 [χ]的函数CanUnloadNow被调用。返回值管理单元28判断所调用的示例[χ]的函数CanUnloadNow的返回值是否为真。如果返回值不是真,则返回值被设置为假。如果返回值是真,则存储在DLL文件数据存储单元沈中的复制的DLL "tmpx. dll”的传统库被打开,并且删除复制的DLL "tmpx. dll” 的文件。通过上述操作,即使在COM处理中服务器中采用了使用全局/静态变量的传统库, 也可以如现有技术一样保持正常操作。首先,用于传统库的人工时间数为零,这是因为传统库根本未被处理。其次,执行速度没有降低,因为这是由处理中服务器保持的。由于这两点,与现有技术相比提供了有利效果。在本发明的第一优选实施例的上述描述中,现场装置管理设备的示例被描述。本发明可应用至将COM用于模块的情况,该模块包括利用全局/静态变量的软件库。
具体地说,在很难从旧的软件库中删除全局/静态变量时或者在旧的软件库被应用至Microsoft. NET Framework时更有效。在这种情况下,全局/静态变量通常成为问题,但是如果应用了本发明,则旧的软件库可通过少量人工时间而变得对应于Microsoft. NETFramework0并且,用于验证的人工时间数减少,这是因为主体DLL的代码未变。如上所述,本发明提供了一种现场装置管理设备,其在不改变常规的传统库的情况下防止了执行速度的下降。本文所使用的下列方向术语“向前、向后、向上、向下、右、左、垂直、水平、之下、和横向”以及其它类似的方向术语是指配备了本发明的设备的那些方向。因此,用来说明本发明的这些术语将被解释为相对于配备了本发明的设备。术语“配置”用来描述部件、部分或装置的一部分,包括硬件和/或构造和/或编程来执行期望功能的软件。此外,权利要求中以“装置+功能”表述的术语应包括可以用来执行本发明的该部分功能的任何结构。本文使用的诸如“基本上” “大约”、“接近”和“大略”之类的程度术语,表示与所修饰的术语的合理偏离量从而最终结果不会显著改变。例如,如果该偏离没有否定它所修饰的词语的含义,则这些术语可以解释为包括对所修饰术语的至少士5%的偏离。术语“单元”用来描述部件、部分或一部分硬件和/或被构造和/或编程来执行期望功能的软件。硬件的典型示例可以包括但不局限于装置和电路。尽管已经如上描述并说明了本发明的优选实施例,但应当理解本发明的这些示例不应当认为是限制。可以在不脱离本发明范围的情况下做出添加、省略、替代以及其它修改。因此,本发明不应认为由前面的说明来进行限制,而仅由权利要求的范围进行限制。
权利要求
1.一种现场装置管理设备,包括多个COM处理中服务器,每个COM处理中服务器获取并管理与相应的一个现场装置相关的装置数据;以及发动程序COM处理中服务器,其存储发动程序,所述发动程序对所述多个COM处理中服务器中的每一个中的示例进行激活和关闭,所述发动程序防止四个不同函数在所述多个 COM处理中服务器中直接被OS所执行,并且其中在Microsoft Windows操作系统中初始化所述多个COM处理中服务器,以在不同存储器空间中产生COM对象。
2.根据权利要求1所述的现场装置管理设备,其中所述发动程序对产生新示例的函数“GetClassObject”的执行进行防止。
3.根据权利要求2所述的现场装置管理设备,其中如果第一次调用函数“GetClassObject”,则从主体DLL调用函数“GetClassObject”, 如果第二次或者更多次调用函数“GetClassObject”,则主体DLL被复制至副本DLL,副本DLL具有与主体DLL不同的名字,并且从副本DLL调用函数“GetClassObject”。
4.根据权利要求3所述的现场装置管理设备,其中副本DLL的数据被存储在示例阵列中。
5.根据权利要求1所述的现场装置管理设备,其中在示例终止时仅调用函数“CanUnloadNow”。
6.根据权利要求1所述的现场装置管理设备,其中所述四个不同的函数是“GetClassObject,,、“CanUnloadNow,,、“Registei^erver” 以及 “ Unregi sterServer,,。
7.根据权利要求1所述的现场装置管理设备,其中 COM对象包括全局变量和静态变量中的至少一个。
8.一种现场装置管理设备,包括 客户服务器,其包括客户程序;第一 COM处理中服务器,其获取并管理与第一现场装置相关的装置数据,所述第一 COM 处理中服务器包括第一 COM示例;第二 COM处理中服务器,其获取并管理与第二现场装置相关的装置数据,所述第二 COM 处理中服务器包括第二 COM示例;以及发动程序COM处理中服务器,其存储发动程序,所述发动程序防止四个不同函数在第一和第二 COM处理中服务器中执行,并且其中在Microsoft Windows操作系统中初始化第一 COM处理中服务器以在第一 COM示例中在第一存储器空间中产生第一 COM对象,并且在Microsoft Windows操作系统中初始化第二 COM处理中服务器以在第二 COM示例中在第二存储器空间中产生第二 COM对象,所述第一存储器空间不同于所述第二存储器空间。
9.根据权利要求8所述的现场装置管理设备,其中所述发动程序对产生新示例的函数“GetClassObject”的执行进行防止。
10.根据权利要求9所述的现场装置管理设备,其中如果客户程序第一次调用函数“GetClassObject”,则从主体DLL调用函数"GetClassObject,,,如果客户程序第二次或者更多次调用函数“GetClassObject”,则主体DLL被复制至副本DLL,副本DLL具有与主体DLL不同的名字,并且从副本DLL调用函数“GetClassObject”。
11.根据权利要求10所述的现场装置管理设备,其中副本DLL的数据被存储在第一和第二 COM示例阵列中。
12.根据权利要求8所述的现场装置管理设备,其中在第一和第二示例终止时仅调用函数“CanUnloadNow”。
13.根据权利要求8所述的现场装置管理设备,其中所述四个不同的函数是“GetClassObject,,、“CanUnloadNow,,、“Registei^erver” 以及 “ Unregi sterServer,,。
14.根据权利要求8所述的现场装置管理设备,其中 COM对象包括全局变量和静态变量中的至少一个。
15.一种现场装置管理方法,包括 获取并管理与现场装置相关的装置数据;存储发动程序,所述发动程序防止四个不同函数直接被OS所执行;并且在不同存储器空间中产生COM对象。
16.根据权利要求15所述的现场装置管理方法,其中所述发动程序对产生新示例的函数“GetClassObject”的执行进行防止。
17.根据权利要求16所述的现场装置管理方法,其中如果第一次调用函数“GetClassObject”,则从主体DLL调用函数“GetClassObject”, 如果第二次或者更多次调用函数“GetClassObject”,则主体DLL被复制至副本DLL,副本DLL具有与主体DLL不同的名字,并且从副本DLL调用函数“GetClassObject”。
18.根据权利要求15所述的现场装置管理方法,其中在示例终止时仅调用函数“CanUnloadNow”。
19.根据权利要求15所述的现场装置管理方法,其中所述四个不同的函数是“GetClassObject,,、“CanUnloadNow,,、“Registei^erver” 以及 “ Unregi sterServer,,。
20.根据权利要求15所述的现场装置管理方法,其中 COM对象包括全局变量和静态变量中的至少一个。
全文摘要
一种现场装置管理设备可包括多个COM处理中服务器,每个COM处理中服务器获取并管理与相应的一个现场装置相关的装置数据;以及发动程序COM处理中服务器,其存储发动程序,所述发动程序对所述多个COM处理中服务器中的每一个中的示例进行激活,所述发动程序防止四个不同函数在所述多个COM处理中服务器中直接被OS所执行。在Microsoft Windows操作系统中初始化所述多个COM处理中服务器,以在不同存储器空间中产生COM对象。
文档编号G06F9/52GK102236583SQ20111011702
公开日2011年11月9日 申请日期2011年5月5日 优先权日2010年5月7日
发明者鹿子木宏明 申请人:横河电机株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1