监视控制装置的制造方法_4

文档序号:9529235阅读:来源:国知局
体侧,因此能够降低扩展程序的创建、维护上花费的成本。
[0096]例如,能够将插件120与主机130加载于相同进程,能够在它们之间设置以可彼此识别的方式对参数进行储存的专用的区域,因此插件120无需对母进程(主机130)的服务进行直接调用。由此,无需利用插件120调用母进程(主机130)的功能,难于进行非法操作。g卩,由于不对主体侧的存储器进行直接访问,因此难以创建对系统的执行产生妨碍的扩展程序。
[0097]另外,在实施方式1中,在监视控制装置100中,通信部131从设备30获取测量值,并储存至设备存储器150,或者,将在设备存储器150中保存的运算值输出至设备30,另夕卜,将在设备存储器150中保存的测量值以及运算值与外部系统20进行通信。运算部133根据主机130而进行运算,并将运算结果作为运算值储存至设备存储器150。并且,运算部133的作业执行单元133A获取对插件120进行指定的作业文件110,参照设备存储器150的值并利用插件120执行与作业相对应的运算,将该运算结果作为运算值储存至设备存储器150。由此,监视控制装置100能够根据主机130以及插件120分别进行设备30的监视控制。
[0098]另外,在实施方式1中,在监视控制装置100中,插件管理部132通过调用在插件120的程序(即,动作120a的记述)中声明的、对作为执行对象的动作进行指定的标识符,从而对在插件120中储存的动作120a的执行进行控制,并对主机130的功能进行扩展。动作参数管理部135对所生成的多个数组之中由被插件管理部132调用的标识符指定的数组进行访问,并针对所访问的数组对要素索引进行指定,由此,对在动作参数135a中包含的值进行读取或写入。由此,能够构成为,插件与主机能够访问在相同的进程空间(共享的进程空间)中配置的对参数进行储存的专用的区域(多个数组)中的动作参数。
[0099]另外,在实施方式1中,在监视控制装置100中,对插件120的执行所需的动作参数135a赋予用于进行访问的数值(句柄)。因此,能够减小所参照的范围,还能够减少排他控制,所以能够高速且高安全性地执行插件。另外,还能够使进行交换的数据最小化,能够削减不必要的存储器。
[0100]实施方式2.
[0101]下面,对实施方式2所涉及的监视控制装置进行说明。下面,以与实施方式1不同的部分为中心进行说明。
[0102]实施方式2的目标在于,对动作参数135a进行调整(例如,优化),并使要素的尺寸均匀,由此与实施方式1相比,构建更省存储器且更高性能的监视控制系统lOOaj。
[0103]图11是实施方式2中的监视控制装置100j的功能结构例(监视控制系统lOOaj的结构例)。插件120能够操作的变量例如全部由变量管理部136j进行管理。在变量管理部136j中,根据从设定用个人计算机40(参照图1)设定的内容而对变量进行定义。能够定义的变量可以为全局变量、在作业内局部地进行声明的局部变量、与数据库的字段相映射的数据库变量,或者为常数、字符串等固定值。此时,相对于各变量所具有的多个属性,生成被称作变量ID的ID。在变量管理部136j中,能够根据变量ID获取相应的变量的当前值。在执行插件120时,从插件120侧将变量ID传递给运算部133,通过变量管理部136 j获取当前值并向插件120传递。
[0104]运算部133根据作业数据存储部134内的记述有作业数据和变量的、图12中示出的变量定义文件134a,创建储存有所处理的变量的属性的变量缓冲136Aj。针对变量缓冲136AJ的属性,能够将被称作变量ID的标识符作为存储器地址而进行访问。
[0105]例如,运算部133根据作业数据存储部134内的作业数据,创建储存有插件120的运算所需的变量ID的动作参数135a。运算部133根据在动作参数135a中储存的变量ID直接获取变量的属性,利用主机130的基本功能(例如,访问API)将变量的当前值储存至动作参数135a。S卩,动作参数135a是作为下述数组而实现的,即,具有成对的变量标识符和变量当前值作为要素,如果赋予索引135al,则例如返回变量的标识符和变量的当前值。
[0106]然后,请求插件120进行执行。如果被请求执行,则插件120从动作参数135a的开头按顺序读入当前值并进行运算,将运算结果回写至动作参数135a。如果检测出插件120的执行已结束,则运算部133对设备存储器150的值进行更新,或者利用通信部131将值发送至外部系统20。
[0107]这里,变量ID还能够使用由输入了属性列的哈希函数(如果赋予字符串等键值(key),则返回哈希数的函数)所生成的值。在该情况下,在数据库中储存属性,使用储存有属性的记录的哈希数,由此能够进行更高速的访问。
[0108]图12是在实施方式2中,由设定用个人计算机40(参照图1)而设定至监视控制装置100j的设定数据的例子。这里,示出针对2个变量的设定数据。行200?行204定义了第1个变量,行205?行209定义了第2个变量。行210?行215定义了第3个变量。在行200中,定义了变量的名称(name)为“D1000”,变量类型为设备存储器(Device),数据类型为WORD(不带符号2字节)。并且,在行201中定义了监视控制装置的站点编号为001,在行202中定义了存储器的偏移地址为1000,在行203中定义了设备存储器的设备种类为“Data”。接着,在行210中,定义了变量名为“TB1.FLD1”,变量类型为数据库变量(Database),数据类型为DWORD (不带符号4字节)。在行211中,定义了数据库名为“Test”,运行所占用的网络地址为“192.168.10.1”。并且,该变量可以采用阶层式数据构造,含义是在内部具有数据库的表“Tablel”,能够参照其中的字段“Fie 1 dl”。
[0109]图13示出变量管理部136j中的动作参数135a与变量缓冲136Aj的例子。在变量缓冲136Aj中,连续地写入变量的属性。将写入目标(变量缓冲136Aj)的存储器地址写入至动作参数135a中。这里,第1个变量(索引为“0107”的变量)储存于地址0003,第2个变量(索引为“0108”的变量)位于0001C,第3个变量(索引为“0109”的变量)位于0x00035。如图14所示,向动作参数135a写入当前值135a31j、135a32j。这里,对第1个变量写入“0x1000”,对第2个变量写入“OxEOOO”。最后,如图15所示将运算的结果135a33j写入至变量缓冲136Aj。这里,将“0x00007800”写入。
[0110]下面,利用图16的流程图对变量管理部136j的初始化动作的流程进行说明。
[0111]在步骤ST301中,为了变量缓冲136Aj而确保用于对变量的属性进行储存的连续区域。该容量由监视控制系统lOOaj预先定义。
[0112]在步骤ST302中,将图12所示的变量定义文件134a读入。在该步骤中,读入1个变量。
[0113]在步骤ST303中,从变量缓冲136Aj中的所指定的存储器地址的开头起,追加所读入的属性(参照图3所示的对变量的属性进行储存的部分135a2),并进行写入。
[0114]在步骤ST304中,对是否已针对1个变量的所有属性进行了处理进行判断。在未针对所有的属性全部进行上述处理的(ST304中为“No”的)情况下,使处理返回至步骤ST303,在已针对所有的属性进行了上述处理的(ST304中为“Yes”的)情况下,使处理进入步骤ST305。
[0115]在步骤ST305中,生成变量ID。变量ID只要是在监视控制系统lOOaj内能够唯一识别变量的值,则可以为任意值。在图13的例子中,存储器地址成为变量ID。
[0116]步骤ST306中,向使用了变量的动作参数135a写入变量ID。
[0117]在步骤ST307中,判断是否已针对在作业中使用的所有的变量进行了步骤ST302?步骤ST306的处理。在未针对所有的变量全部进行上述处理的(ST307中为“No”的)情况下,使处理返回至步骤ST302,在已针对所有的变量进行了上述处理的(ST307中为“Yes”的)情况下,使处理结束。
[0118]下面,利用图17的流程图对动作120a的执行流程进行说明。
[0119]步骤ST401中,针对在动作120a中包含的1个变量获取变量的ID。
[0120]步骤ST402中,从以变量ID作为地址的动作参数135a的要素,获取变量的属性。
[0121]步骤ST403中,利用获取的属性,从监视控制装置100j获取当前值。例如,如果是设备变量,则利用设备种类“D”(数据寄存器)、偏移100,将D100地址处的存储器映像作为WORD型的数据而进行读取。
[0122]步骤ST404中,判断是否已针对在动作120a中包含的所有的变量进行了步骤ST401?步骤ST403的处理。在未针对所有的变量全部进行上述处理的(ST404中为“No”的)情况下,使处理返回至步骤ST401,在已针对所有的变量进行了上述处理的(ST404中为“Yes”的)情况下,进入步骤ST405。
[0123]步骤ST405中,利用获取的当前值进行运算。
[0124]步骤ST406中,获取对运算出的运算结果进行存储的变量的变量ID。
[0125]步骤ST407中,将运算结果写入至以变量ID作为存储器地址的动作参数135a的要素中。
[0126]如上所示,在实施方式2中,在监视控制装置100 j中,变量管理部136 j通过获取存储器(变量缓冲136Aj)上的值、外部系统20上的数据并进行操作,从而进行运算,将其结果发送至外部系统20,此外,写入至存储器(变量缓冲136Aj)上,此时,将成为程序的处理对象的存储器(变量缓冲136Aj)上的值、外部系统20上的数据作为变量而进行定义,并向用于对该变量进行识别的属性的集合分配标识符(变量ID)而进行管理。动作参数135a是具有成对的变量标识符(变量ID)和变量当前值作为要素的数组。运算部133在动作120a的执行之前,从与作业中包含的所有的动作120a相关的动作参数135a,获取变量的属性,利用该属性获取变量的当前值,并储存至动作参数135a。另外,运算部133在所有的动作120a的执行完毕之后,将运算结果从动作参数135a中提取出来,根据属性对当前值进行更新。由此,针对动作120a的执行所需的参数,与变量种类无关地将固定长度的标识符(变量ID)保存于动作参数135a内,因此能够削减动作120a的执行时所需的存储器。另外,能够使动作参数135a(数组)中的要素的尺寸(数据长度)均等,因此能够高速地进行指定了数组
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1