控制装置的制作方法

文档序号:6266623阅读:122来源:国知局
专利名称:控制装置的制作方法
技术领域
本发明涉及把控制对象的过程值控制在给定值上的控制装置。
背景技术
控制装置例如用于包含造纸厂和汽车产业的装配作业的FA领域、包含化工厂的PA领域、包含上下水系统的公共系统等各种各样的产业系统。
图17是表示现有控制装置一例的框图。
输入输出模块1把从控制装置2输入的数据对控制对象3输出。此外输入输出模块1把从控制对象3输入的控制数据1a向控制装置2输出。
作为控制装置2的控制程序执行电路4,例如使用微处理器、中央处理单元等。
控制程序执行电路4从控制程序存储器5依次读出控制程序5a中记载的处理命令,经由输入输出模块1和I/O接口6读出控制数据1a,读出存储在控制数据存储器7中的控制数据7a。
控制程序执行电路4按照控制程序5a的处理命令,执行对于控制数据1a和控制数据7a的处理。
然后,控制程序执行电路4按照控制程序5a,把表示处理结果的数据经由I/O接口6输出到输入输出模块1,或者把表示处理结果的数据写入控制数据存储器7中。
据此,执行控制装置2的控制处理。控制装置2从监视器8经由通信接口9输入各种命令。
另外,在控制装置2中,除了控制程序执行电路4、控制程序存储器5、I/O接口6、控制数据存储器7,还可以具备程序执行电路10、程序存储器11、数据存储器12。在控制装置2内的各部分间经由总线13输入输出程序和数据。
作为控制装置2的一例,有程序控制器等。
近年来,提出了通过在某装置中安装多个控制装置来把控制装置多路复用的技术或在某装置中安装多个控制装置来使其分担处理等,以使控制处理高速化的技术(例如,特愿平11-196457号公报)。
在现有控制装置2中,即使把控制程序执行电路4高速化,从控制程序存储器5以及控制数据存储器7读出控制程序5a和控制数据7a的动作也要花费时间,该读出速度成为限制,控制处理的高速化是困难的。
另外,当多个控制装置具有的振荡器的频率不完全相同时,在多路复用的多个控制装置中,使同一控制程序平行执行,难以在多个控制装置之间取得同步。另外,也难以使控制开始的定时一致。

发明内容
在本发明实施例的控制装置中,多个控制程序存储器分散地存储对连续执行的处理命令给予了连续的地址的控制程序,使得能并行取出连续执行的处理命令。程序存储器控制部件对于多个控制程序存储器按控制程序顺序输出地址,先行读出执行对象的处理命令以后的处理命令。运算部件执行由程序存储器控制部件读出的处理命令.


下面简要说明附图。
图1是表示本发明实施形态1的控制装置一例的框图。
图2是表示控制程序执行电路结构的一例的框图。
图3是表示基于编译程序的控制源程序的编译结果一例的图。
图4是表示实施形态1的命令执行状态的例子的图。
图5是表示现有命令执行状态的例子的图。
图6是表示控制数据的分配结果的第一例的图。
图7是表示基于编译程序的控制数据的分配结果第二例的图。
图8是表示对于实施形态1的控制数据的访问状态的例子的图。
图9是表示控制程序存储器、控制数据存储器、高速缓冲存储器的动作定时一例的定时图表。
图10是表示直接输出变量的输出动作一例的框图。
图11是表示控制数据存储器的动作定时一例的定时图表。
图12是表示本发明实施形态2的控制装置中使用的控制程序一例的图。
图13是表示实施形态2的控制装置一例的框图。
图14是表示本发明实施形态3的控制装置中的通信接口的详细结构一例的框图。
图15是表示包含传送命令的处理一例的图。
图16是表示本发明实施形态4的缓存器一例的电路图。
图17是表示现有控制装置一例的框图。
具体实施例方式
下面参照附图来说明本发明的实施形态。而且,在上述图17以及以下各图中对于相同的部分给予相同的符号并省略其说明。
(实施形态1)在本实施形态中,说明从控制程序存储器高速读出控制程序,并且从控制数据存储器高速读出控制数据,从而能高速执行控制程序的控制装置。
图1是表示本实施形态的一例的框图。
控制装置14具有程序执行电路15、程序存储器16、数据存储器17。
另外,控制装置14包括控制程序执行电路18;与其它存储单位的动作无关,能用不同的地址总线和不同的命令访问的多个单位的控制程序存储器191~19n;与其它存储单位的动作无关,能用不同的地址总线和不同的命令访问的多个单位的控制数据存储器201~20m。
控制装置14具备与各控制程序存储器191~19n对应的多个缓存器211~21n;与各控制数据存储器201~20m对应的多个缓存器221~22m。在控制装置14内的各部分间,经由系统总线26输入输出程序和数据。
程序存储器16存储由高级语言记述的控制源程序23和编译程序24。
程序执行电路15访问程序存储器16,使用编译程序24执行对控制源程序23的变异,把编译结果取得的控制程序记录到多个控制程序存储器191~19n中,并且对多个控制数据存储器201~20m执行编译结果取得的控制程序中使用的控制数据的分配。
图2是表示控制程序执行电路18的结构一例的框图。
另外,控制程序执行电路18分别经由缓存器211~22m来访问多个控制数据存储器201~20m。
控制程序执行电路18具备I/O接口27、通信接口28、系统总线接口29、运算电路30、控制程序存储器控制电路31、缓存器32、高速缓冲存储器控制电路33、高速缓冲存储器34、控制数据存储器控制电路35、缓存器36。
I/O接口27和通信接口28与所述图17的I/O接口6以及通信接口9同样,但是内置在控制程序执行电路18中,所以能高速输入输出数据。
系统总线接口29经由系统总线26输入来自控制装置14内的其他部分的数据,向运算电路30输出。另外,系统总线接口29输入来自运算电路30的数据,经由系统总线26向控制装置14内的其他部分输出。
运算电路30使用控制数据存储器控制电路31把存储在各控制程序存储器191~19n中的程序代码分别经由缓存器211~21n、缓存器32读出。
另外,运算电路30当由高速缓冲存储器控制电路33判断为读出对象的控制数据存储在高速缓冲存储器34中时,从高速缓冲存储器34读出控制数据。
另外,运算电路30当由高速缓冲存储器控制电路33判断为读出对象的控制数据未存储在高速缓冲存储器34中时,使用控制数据存储器控制电路35分别经由缓存器221~22m、缓存器36读出存储在各控制数据存储器201~20m中的控制数据。
另外,运算电路30使用控制数据存储器控制电路35经由缓存器221~22m、缓存器36把控制数据写入各控制数据存储器201~20m中。
然后,运算电路30按照读出的程序代码和控制数据,执行处理。
在本实施形态中,并行设置有控制程序存储器191~19n,由编译程序24对连续的程序代码分配连续的地址,连续的程序代码分别记录在不同的控制数据存储器中。
因此,运算电路30能高速读出程序代码,按照地址的顺序高速执行程序代码。
另外,在本实施形态中,通过编译程序24把某程序构成单位(在此所说的程序构成单位是IEC 61131-3中所说的ProgramOrganization Unit(POU))中使用的控制数据存储到控制数据存储器201~20m中的任意一个给定范围的区域中。而且该区域内的控制数据一起存储到高速缓冲存储器34中。
因此,运算电路30能以高概率从高速缓冲存储器34读出控制数据,能提高高速缓冲存储器34的命中率,能高速读出控制数据。
另外,在本实施形态中,并行设置有控制数据存储器201~20m,通过编译程序24,能与对其他控制数据的读出或写入状态无关地读出或写入控制数据。
因此,运算电路30能与某控制数据的读出或写入状态无关地执行其他控制数据的读出或写入,能使对控制数据的访问高速化。
下面说明基于本实施形态的控制装置14的控制程序和控制数据的读出动作。
在本实施形态中,多个控制程序存储器191~19n通过缓存器211~21n连接到控制程序执行电路18上。缓存器211~21n如后所述,取得从控制程序存储器控制电路31输出的地址,按照从控制程序存储器控制电路31输出的命令读出到控制程序存储器中,能输出命令,能与其它控制程序存储器的动作无关地访问任意的控制程序存储器。
控制程序存储器控制电路31依次起动各控制程序存储器191~19n。
图3是表示基于编译程序24的控制源程序23的编译结果一例的图。须指出的是,在图3中,例示控制源程序23为SFC(SequentialFunction Chart)程序时的情形。
须指出的是,在图3中,以控制装置14具备4个控制程序存储器191~194时(4库存储器时)为例进行说明。
编译程序24把控制源程序23编译,生成连续执行的处理命令(程序代码)能连续读出的控制程序25。
然后,编译程序24把控制程序25存储到多个控制程序存储器191~194中,从而能以不同的存储器单位连续读出能连续执行的程序代码。
在本实施形态中,当把控制程序25的某程序代码记录到控制程序存储器191中时,为了能缩短访问时间,把接着执行的程序代码记录到其他控制程序存储器192~194的任意一个中。
须指出的是,编译程序24在控制源程序23存在条件分支时,把分支部分或并行执行部分编译为一列,进行控制,使分支成不执行的部分不由运算电路30执行,从而使分支动作不要,分支部分的控制程序的读出地址不会变为不连续,把控制程序25存储到多个控制程序存储器191~194中。
即编译程序24进行编译,从而只按地址顺序执行程序代码,实现由控制源程序23记述的处理。
控制源程序23具备命令Sa1~Sa4。在具备命令Sa1~Sa4的控制程序23中,在命令Sa1的执行后,处理分支,执行命令Sa2或命令Sa3。在命令Sa2和命令Sa3中的任意一方的执行后,处理合流,执行命令Sa4。
控制源程序23包括配置在各命令Sa2~Sa4的前级,“判断后级的命令Sa2~Sa4的执行权限的有无,当判断为具有执行权限时,使后级的命令Sa2~Sa4变为具有执行权限的状态”的判断命令Ta1~Ta4。即判断命令Ta1~Ta4关于后级的命令Sa2~Sa4,进行执行权限的判断和执行权限的给予。判断命令Ta1~Ta4有时具有判断是否在判断命令Ta1~Ta4的前级命令和后级命令之间中继由各判断命令Ta1~Ta4的前级命令取得的执行结果的功能。
当在前面的命令Sa1和后面的命令Sa2、Sa3之间存在分支时,在分支部和分支后的命令Sa2、Sa3之间配置判断命令Ta1、Ta2。
当在前面的命令Sa2、Sa3和后面的命令Sa4之间存在合流时,在合流前的命令Sa2、Sa3和合流部之间配置判断命令Ta3、Ta4。
控制源程序23由编译程序24变换为命令Sa1→判断命令Ta1→命令Sa2→判断命令Ta3→判断命令Ta2→命令Sa3→判断命令Ta4→命令Sa4的顺序的控制程序25。
在该控制程序25中,当处理中存在分支与合流时,从分支到合流的一方的线路中包含的判断命令和命令连续,然后在从分支到合流的另一方的线路中包含的判断命令和命令连续的状态下,排列各判断命令和命令。
在控制程序25中,命令Sa1~Sa4由编译程序24分别变换为命令“STEP”。如果更具体地说明,则命令Sa1变换为命令(指令字操作数)“STEPSa1”。命令Sa2变换为命令“STEPSa2”。命令Sa3变换为命令“STEPSa3”。命令Sa4变换为命令“STEPSa4”。
另外,在控制程序25中,判断命令Ta1~Ta4由编译程序24分别变换为判断在后级的命令中是否有执行权限的命令“CONDITION”、当后级的命令中存在执行权限时给予执行权限的命令“TRANSITION”。如果更具体地说明,则判断命令Ta1变换为命令(指令字操作数)“CONDITIONTa1”和“TRANSITIONSa1、Sa2”。判断命令Ta3变换为命令“CONDITIONTa3”和命令“TRANSITIONSa2、Sa4”。判断命令Ta2变换为命令“CONDITIONTa2”和命令“TRANSITIONSa1、Sa3”。判断命令Ta4变换为命令“CONDITIONTa4”和命令“TRANSITIONSa3、Sa4”。
对命令(指令字操作数)按照执行顺序给予地址“1”~“12”。
在本实施形态中,顺序邻接的命令为了能先行读出,存储在不同的控制程序存储器191~194中。通过这样把顺序邻接的命令存储在不同的控制程序存储器191~194中,能并行进行顺序邻接的命令的读出,能防止管道控制的混乱的发生。
在此,详细说明本实施形态的控制程序25的执行状态。
图4是表示本实施形态的命令的执行状态的例子的图。须指出的是,在图4中,以控制装置14具有4个控制程序存储器191~194时(4库存储器时)为例进行说明。
在本实施形态中,以各命令Sa2~Sa4和判断命令Ta1~Ta4由命令读出阶段、操作数读出阶段、命令执行阶段、写入阶段等4阶段构成时为例进行说明,但是该阶段可以是2以上。另外,在本实施形态中,以不执行分支后的命令Sa2,执行分支后的命令Sa3时为例进行说明,但是相反,执行分支后的命令Sa2,不执行分支后的命令Sa3时,也是同样的。
在本实施形态中,控制程序执行电路18按照管道控制,从控制程序存储器191~194按照命令Sa1→判断命令Ta1→命令Sa2→判断命令Ta3→判断命令Ta2→命令Sa3→判断命令Ta4→命令Sa4的顺序读出控制程序25。
如果以编译后的命令单位说明,则控制程序执行电路18按照管道控制,从控制程序存储器191~194按照地址编号“1”的命令Sa1的“STEP”→地址编号“2”的命令Ta1的“CONDITION”→地址编号“3”的命令Ta1的“TRANSITION”→地址编号“4”的命令Sa2的“STEP”→地址编号“5”的命令Ta3的“CONDITION”→地址编号“6”的命令Ta3的“TRANSITION”→地址编号“7”的命令Ta2的“CONDITION”→地址编号“8”的命令Ta2的“TRANSITION”→地址编号“9”的命令Sa3的“STEP”→地址编号“10”的命令Ta4的“CONDITION”→地址编号“11”的命令Ta4的“TRANSITION”→地址编号“12”的命令Sa4的“STEP”顺序读出控制程序25。
下面说明对于控制程序25的管道控制。
首先,执行对于地址编号“1”的“STEPSa1”的命令读出阶段、操作数读出阶段、命令执行阶段、写入阶段。
在对于地址编号“1”的“STEPSa1”的命令读出阶段的执行后,执行对于地址编号“2”的“CONDITIONTa1”的命令读出阶段、操作数读出阶段、命令执行阶段、写入阶段。
在对于地址编号“2”的“CONDITIONTa1”的命令执行阶段中,根据在对于地址编号“1”的“STEPSa1”的命令执行阶段中取得的执行结果,判断“命令Sa2是否具有执行权限”。在本例子中,在对于地址编号“2”的“CONDITIONTa1”的命令执行阶段,判断为“命令Sa2没有执行权限”。
在对于地址编号“2 ”的“CONDITIONTa1”的命令读出阶段的执行后,执行对于地址编号“3”的“TRANSITIONSa1、Sa2”的命令读出阶段、操作数读出阶段。但是在刚才的对于地址编号“2”的“CONDITIONTa1”的命令执行阶段中,判断为“命令Sa2没有执行权限”,所以不执行对于地址编号“3”的“TRANSITIONSa1、Sa2”的命令执行阶段和写入阶段。结果地址编号“4”的“STEPSa2”变为不具有执行权限的状态。
在对于地址编号“3”的“TRANSITIONSa1、Sa2”的命令执行阶段的执行后,执行对于地址编号“4”的“STEPSa2”的命令读出阶段、操作数读出阶段。但是,地址编号“4”的“STEPSa2”是不具有执行权限的状,所以不执行对于地址编号“4”的“STEPSa2”的命令执行阶段和写入阶段。
在对于地址编号“4”的“STEPSa2”的命令读出阶段后,执行对于地址编号“5”的“CONDITIONTa3”的命令读出阶段、操作数读出阶段、命令执行阶段、写入阶段。在对于地址编号“5”的“CONDITIONTa3”的命令执行阶段中,不执行对于地址编号“4”的“STEPSa2”的命令执行阶段,所以判断为不执行对于接着的地址编号“6”的“TRANSITIONSa2、Sa4”的命令执行阶段、写入阶段。
在对于地址编号“5”的“CONDITIONTa3”的命令读出阶段的执行后,执行对于地址编号“6”的“TRANSITIONSa2、Sa4”的命令读出阶段、操作数读出阶段。但是,按照刚才的地址编号“5”的“CONDITIONTa3”中的判断,不执行对于地址编号“6”的“TRANSITIONSa2、Sa4”的命令执行阶段、写入阶段。
在对于地址编号“6”的“TRANSITIONSa2、Sa4”的命令读出阶段的执行后,执行对于地址编号“7”的“CONDITIONTa2”的命令读出阶段、操作数读出阶段、命令执行阶段、写入阶段。
在对于地址编号“7”的“CONDITIONTa2”的命令执行阶段中,根据在对于地址编号“1”的“STEPSa1”的命令执行阶段中取得的执行结果,判断“命令Sa3是否具有执行权限”。在本例子中,在对于地址编号“7”的“CONDITIONTa2”的命令执行阶段,判断为“命令Sa3具有执行权限”。
在对于地址编号“7”的“CONDITIONTa2”的命令读出阶段的执行后,执行对于地址编号“8”的“TRANSITIONSa1、Sa3”的命令读出阶段、操作数读出阶段。在此,在刚才的对于地址编号“7”的“CONDITIONTa2”的命令执行阶段中,判断为“命令Sa3具有执行权限”,所以通过对于地址编号“8”的“TRANSITIONSa1、Sa3”的命令执行阶段,命令Sa3变为具有执行权限的状态。
在对于地址编号“8”的“TRANSITIONSa1、Sa3”的命令读出阶段的执行后,执行对于地址编号“9”的“STEPSa3”的命令读出阶段、操作数读出阶段,因为命令Sa3为具有执行权限的状态,所以执行对于地址编号“9”的“STEPSa3”的命令执行阶段、写入阶段。须指出的是,对于地址编号“9”的“STEPSa3”的命令执行阶段使用对于地址编号“1”的“STEPSa1”的命令执行阶段中取得的结果进行处理。
在对于地址编号“9”的“STEPSa3”的命令读出阶段的执行后,执行对于地址编号“10”的“CONDITIONTa4”的命令读出阶段、操作数读出阶段、命令执行阶段、写入阶段。
对于地址编号“10”的“CONDITIONTa4”的命令执行阶段中,根据在对于地址编号“9”的“STEPSa3”的命令执行阶段中取得的执行结果,判断是否“命令Sa4具有执行权限”。在该例子中,在对于地址编号“10”的“CONDITIONTa4”的命令执行阶段中,判断为“命令Sa4具有执行权限”。
对于地址编号“10”的“CONDITIONTa4”的命令读出阶段的执行后,执行对于接着的地址编号“11”的“TRANSITIONSa3、Sa4”的命令读出阶段、操作数读出阶段、命令执行阶段、写入阶段,因为在刚才的对于地址编号“10”的“CONDITIONTa4”的命令执行阶段中,判断为“命令Sa4具有执行权限”,所以通过对于接着的地址编号“11”的“TRANSITIONSa3、Sa4”的命令执行阶段,命令Sa4变为具有执行权限的状态。
在对于地址编号“11”的“TRANSITIONSa3、Sa4”的命令读出阶段的执行后,执行对于地址编号“12”的“STEPSa4”的命令读出阶段、操作数读出阶段,因为Sa4是具有执行权限的状态,所以执行对于地址编号“12”的“STEPSa4”的命令执行阶段、写入阶段。须指出的是,对于地址编号“12”的“STEPSa4”的命令执行阶段使用在对于地址编号“9”的“STEPSa3”的命令执行阶段中取得的结果进行处理。
在本实施形态中通过按图4那样进行处理,管道控制继续,在基于命令Sa1~Sa4和判断命令Ta1~Ta4的各命令间,一边使处理阶段重复,一边执行处理,能进行高效并且迅速的处理。
而图5表示在处理中存在分支时的现有控制程序的执行状态。
在以往当处理中存在分支时,在控制程序中包含条件成立时转移指令字“JON”和无条件转移指令字“JUMP”。在存在条件成立时转移指令字“JON”和无条件转移指令字“JUMP”的部分中,难以先行读出下一个指令字,执行,在管道控制中产生混乱,管道控制的继续变得困难。分支越增加,条件成立时转移指令字“JON”和无条件转移指令字“JUMP”越增加,控制程序的高效并且迅速的处理变得困难。
图6是表示控制数据的分配结果的第一例的图。须指出的是,在图6中,例示控制源程序由LD(Ladder Diagram)语言记述,关于控制源程序中使用的控制数据变量A1~A6、B7、A8~A10、B11的控制数据记录在控制数据存储器51中时的情形。
编译程序24对控制程序存储器51中的任意给定范围的区域分配控制程序内的某程序构成单位MS01中使用的控制数据。
关于控制数据变量A1~A6、A8~A10的控制数据是输入数据。关于B7、B11的控制数据是输出数据。
编译程序24进行控制数据的分配,从而使对程序构成单位MS01中使用的控制数据分配的存储区变为高速缓冲存储器34的存储容量以下。而且,在程序构成单位MS01的执行中,把程序构成单位MS01中使用的控制数据存储到高速缓冲存储器34中。
通过采用图6的存储方式,在程序构成单位MS01的执行中,能提高控制数据对于高速缓冲存储器34的命中率,结果能使程序构成单位MS01的执行速度高速化。
图7是表示基于编译程序24的控制数据分配结果的第二例的图。须指出的是,在图7中,控制源程序52由LD语言记述,例示关于控制源程序52中使用的控制数据变量A1~A6、B7、A8~A10、B11的控制数据记录在控制数据存储器201、202中的情形。即在图7中,以控制装置14具有2个控制数据存储器201、202时为例进行图示。
执行控制源程序52时的控制数据变量的出现顺序为A1~A6、B7、A8~A10、B11。控制数据变量A1~A6、B7、A8~A10、B11按照出现顺序分配给不同的控制数据存储器201、202。如图7所示,通过把出现顺序邻接的控制数据分别交替存储到控制数据存储器201、202中,能高效进行来自控制数据存储器201、202的控制数据的读出或写入。另外,当正在使用一方的控制数据存储器的内容时,通过预先把另一方的控制数据存储器的内容存储到高速缓冲存储器34中,能先行把接着要使用的控制数据存储到高速缓冲存储器34中,能提高高速缓冲存储器的命中率。
编译程序24把控制数据存储在多个控制数据存储器201~20m中,从而能与其它控制数据的读出或写入状态无关地独立读出或写入连续使用的控制数据。
在本实施形态中,当第一控制数据记录在控制数据存储器201中时,接着使用的第二控制数据为了能在第一控制数据之外独立读出或写入,记录在其他控制程序存储器202~20m的任意一个中。
须指出的是,能组合所述图6的控制数据的存储方式和所述图7的控制数据的存储方式。例如关于所述图6的程序构成单位MS01中使用的控制数据变量A1~A6、B7、A8~A10、B11,把使用顺序邻接的控制数据变量存储到不同的控制数据存储器201、202中。即在控制数据存储器201中存储控制数据变量A1、A3、A5、B7、A9、B11,在控制数据存储器202中存储控制数据变量A2、A4、A6、A8、A10。而且,在控制数据存储器201的附近的给定区域中存储控制数据变量A1、A3、A5、B7、A9、B11,在控制数据存储器202的附近的给定区域中存储控制数据变量A2、A4、A6、A8、A10。而且,高速缓冲存储器34能统一存储程序构成单位MS01中使用的控制数据变量A1~A6、B7、A8~A10、B11。
据此,能提高程序构成单位MS01的执行中的高速缓冲存储器的命中率。另外,能与来自控制数据存储器201的控制数据变量A1、A3、A5、B7、A9、B11的读出并行进行来自控制数据存储器202的控制数据变量A2、A4、A6、A8、A10的读出。还能并行进行高速缓冲存储器34和控制数据存储器201之间的控制数据变量A1、A3、A5、B7、A9、B11的读出或写入、高速缓冲存储器34和控制数据存储器202之间的控制数据变量A2、A4、A6、A8、A10的读出或写入。因此,能使程序构成单位MS01的执行速度高速化。
在此详细说明本实施形态的控制数据的访问状态。
图8是表示本实施形态的对于控制数据的访问状态的例子的图。须指出的是,在图8中,以控制装置14具备2个控制数据存储器201、202时(2库存储器时)为例进行表示。
根据管道控制执行控制程序25的各命令,在本实施形态中,控制程序25的各命令按顺序执行。在控制程序25中,由执行顺序邻接的命令访问的控制数据存储在不同的控制数据存储器(库存储器)201、202中。据此,能先行访问由执行顺序邻接的命令访问的控制数据。
如上所述,在本实施形态中,能防止管道控制的混乱的发生。在本实施形态中,由执行顺序邻接的命令访问的控制数据不存储在相同的控制数据存储器中,能把控制数据的并行访问维持在高水平。
图9是表示控制程序存储器191~194、控制数据存储器201、202、高速缓冲存储器34的动作定时的一例的定时图表。
在图9中,控制装置14具有4个控制程序存储器191~194,以具备2个控制数据存储器201、202时为例进行图示,但是关于具备其他控制程序存储器193~19n和其他控制数据存储器203~20m时,也是同样的。
此外图9表示在所述图1和图2所示的控制装置14中,显示了执行所述图6程序构成单位MS01或图7的控制源程序52的控制数据变量A8的读出处理之前的定时图表,省略其后的处理。
对于控制程序存储器191~194的读出命令表示在下降时地址有效,在上升时动作结束。
控制程序存储器控制电路31如图9所示,对多个控制程序存储器191~194按顺序提供地址和读出命令,能按照地址顺序读出程序代码(命令)。在控制程序存储器191~194中具有缓存器211~214,所以来自控制程序存储器191~194的程序代码的读出能分别独立执行。
即控制程序存储器控制电路31即使正在从控制程序存储器191~194中的任意一个读出程序代码,也能从其他控制程序存储器读出其他程序代码。
如上所述,能把控制源程序52编译为按可地址顺序执行的状态。编译程序24如图3所述,通过把分支执行或并行执行编译为单纯顺序执行的程序,从而生成控制程序,访问控制程序存储器191~194时的地址不会变得不连续。
据此,即使在控制源程序52中存在分支条件,由控制程序存储器控制电路31按照地址顺序读出程序代码,运算电路30按照管道控制能执行构成包含条件分支的处理的各命令。
但是,当由于中断程序的执行和任务的切换等,难以使读出的程序代码的地址连续时,控制程序存储器控制电路31进行控制,从而对所需的控制程序存储器输出地址和读出命令,使运算电路30的执行等待到程序代码输出为止。
来自控制数据存储器201、202的控制数据的读出和写入也在来自控制程序存储器191、192的程序代码的读出之外独立执行。
在图9中,控制数据变量A1、A3、A5、B7、A9、B11存储在控制数据存储器201的给定区域内。控制数据变量A2、A4、A6、A8、A10存储在控制数据存储器202的给定区域内。
当对于控制数据变量A1、A3、A5、B7、A9、B11的任意一个,发生高速缓冲存储器错过时,把控制数据存储器201的给定区域内(能存储在高速缓冲存储器34中的区域内)的控制数据变量A1、A3、A5、B7、A9、B11存储到高速缓冲存储器34。然后,对于高速缓冲存储器34进行对控制数据变量A1、A3、A5、B7、A9、B1 1的读出或写入。
同样,当对于控制数据变量A2、A4、A6、A8、A10的任意一个,发生高速缓冲存储器错过时,把控制数据存储器202的给定区域内的控制数据变量A2、A4、A6、A8、A10存储到高速缓冲存储器34。然后,对于高速缓冲存储器34进行对控制数据变量A2、A4、A6、A8、A10的读出或写入。
例如,象控制数据变量B7那样,写入高速缓冲存储器34中的控制数据从高速缓冲存储器34写入控制数据存储器201中(回写)。
在图9的管道阶段中,对于各命令记载读出或写入对象的控制数据。
在图9的管道阶段中,当由于高速缓冲存储器错过,不能进行处理所必要的控制数据变量的读出或写入时,命令的执行变为等待状态。
须指出的是,在同样的定时产生控制数据读出命令和控制数据写入命令。在控制数据写入命令中,与控制数据读出命令同样发生高速缓冲存储器错过时,有时等待控制程序的读出。
下面说明本实施形态的控制装置14的控制数据的读出和写入动作的第一例。
运算电路30把读出对象的控制数据的地址和读出命令向高速缓冲存储器控制电路33输出。
高速缓冲存储器控制电路33判断读出对象的控制数据是否存储在高速缓冲存储器34中。
当读出对象的控制数据存储在高速缓冲存储器34中时,高速缓冲存储器控制电路33从高速缓冲存储器34中读出读出对象的控制数据并输出给运算电路30。
而当读出对象的控制数据没有存储在高速缓冲存储器34中时,高速缓冲存储器控制电路33向控制数据存储器控制电路35输出读出对象的控制数据的地址和读出命令。
控制数据存储器控制电路35如果输入输出读出对象的控制数据的地址和读出命令,就把读出对象的控制数据所属的程序构成单位中使用的控制数据的集合读出,存储到高速缓冲存储器34中,并且把读出对象的控制数据对运算电路30输出。
在本实施形态中,在运算电路30和控制数据存储器201~20m之间设置有高速缓冲存储器34。高速缓冲存储器34只对于控制数据的访问有效。
为了有效地使用高速缓冲存储器34,如上所述,编译程序24在对控制数据存储器201~20m分配控制数据时,把某程序构成单位中包含的控制数据分配给给定范围内的区域。据此,在某程序构成单位的程序代码的执行中,来自高速缓冲存储器34的读出次数对于全部控制数据访问次数的比例(命中率)提高,能以高速读出控制数据变量。
另外,在控制数据变量中存在称作直接输出变量的变量。写入直接输出变量中的控制数据在控制装置14的统一输入输出(扫描输入输出)之外,在写入时刻输出到输入输出模块1中。
图10是表示直接输出变量的输出动作的一例的框图。
当写入对象的控制数据变量为直接输出变量时,运算电路30向高速缓冲存储器34输出该信息,不仅对高速缓冲存储器34写入控制数据,同时对实际的输入输出模块1进行写入(转写动作)。据此,写入对象的控制数据经由I/O接口27直接向输入输出模块1输出。
下面,说明基于本实施形态的控制装置14的控制数据的读出和写入动作的第二例。
控制装置14为了能控制多个控制数据存储器201~20m,具备用于控制数据的缓存器221~22m和控制数据存储器控制电路35。
在各控制数据存储器201~20m中设置有专用的缓存器221~22m。因此,控制数据存储器控制电路35根据读出命令或写入命令,能独立执行读出动作和写入动作。
图11是表示控制数据存储器201、202的动作定时的一例的定时图表。须指出的是,关于具备其他控制数据存储器203~20m时,也是同样的。
如上所述,为了有效地利用多个控制数据存储器,考虑访问顺序,把关于控制数据变量的控制数据分配给控制数据存储器201、202。
例如在所述图6所示的由LD语言记述的控制程序中,控制程序的访问顺序由操作数的变量名的数字表示。在本实施形态中,连续访问的控制数据按照访问顺序分配给不同的控制数据存储器201、202。
当象线圈命令那样发生写入时,使下一命令中使用的控制数据存储器为与线圈命令使用的控制数据存储器不同的其他控制数据存储器。关于不是线圈命令的发生写入的其他命令,也是同样。
据此,例如在对控制数据存储器201写入控制数据时,能从控制数据存储器202读出控制数据。
在以上说明的本实施形态中,按照地址的顺序,序列地读出连续执行的程序代码,执行。
另外,使用控制程序存储器191~19n和控制程序存储器控制电路31,能先行读出接着要执行的程序代码。
据此,能高速执行控制程序25。特别当控制装置14为可编程控制器时,常常按地址顺序执行该控制装置14中使用的控制程序25,所以本实施形态的控制装置14的动作是有效的。
在本实施形态中,当控制程序存储器191~19n比运算电路30所要求的存储器访问速度还慢时,也能高速执行控制程序25。
另外,在本实施形态中,属于某程序构成单位的控制数据统一存储在高速缓冲存储器34中,所以能提高高速缓冲存储器34的命中率,能高速访问控制数据,能高速执行控制程序25。此外也能对应于直接输出。
另外,在本实施形态中,连续使用的控制数据存储在不同的控制数据存储器201~20m中,所以能防止从相同的控制数据存储器执行控制数据的读出或写入,此外能并行执行控制数据的写入和读出。
据此,能高速访问控制数据,能高速执行控制程序25。
即在本实施形态中,能从存储器高速读出数据或程序,据此能高速执行控制程序。
(实施形态2)在本实施形态中,说明所述实施形态1的控制装置的变形例。
图12是表示本实施形态的控制装置中使用的控制程序的一例的图。
图13是表示本实施形态的控制装置一例的框图。须指出的是,在图13中,关于与所述图1、2相同的部分,省略。
在本实施形态中,为了提高对于控制对象3的控制的可靠性,使多个控制装置381~38k并行执行相同的控制程序37,比较器结果,选择正确的结果。在控制程序37的各程序构成单位的开始配置同步命令。控制装置381~38k为同样的结构。
控制装置381中,代替所述控制装置14的控制程序执行电路18和控制程序25,使用控制程序执行电路39和控制程序37。控制装置381为了与其他控制装置382~38k取得同步,具备AND运算部40,并且在控制程序执行电路39内具备AND运算部41。
须指出的是,AND运算部40、41可以统一。
控制程序执行电路39中具备的运算电路42如果执行同步命令,就把同步要求向其他控制装置382~38k输出。在同步要求的输出中使用通信接口28。
控制装置381输入其他控制装置382~38k的同步要求。AND运算部40和AND运算部41向运算电路42输入本控制装置381输出的同步要求和从其他控制装置382~38k输入的各同步要求的逻辑积信号。
运算电路42根据逻辑积信号,检测各控制装置381~38k的同步是否结束(逻辑积信号是否为有效状态)。
当各控制装置381~38k的同步未结束时,运算电路42使下一程序代码的执行待机到同步结束。
而当同步结束时,运算电路42执行下一程序代码。
在以上说明的本实施形态中,通过配置在控制程序37的各程序构成单位开始的同步命令,容易地实现控制装置381~38k的并行执行。
(实施形态3)在本实施形态中,详细说明所述实施形态1的通信接口28。须指出的是,关于所述实施形态2的控制装置381~38k的通信接口28,也是同样的。
图14是表示通信接口28的详细结构的一例的框图。
此外图15是表示包含传送命令的控制程序的一例的图。
通信接口28内置在控制程序执行电路14中。
运算电路30能够直接访问通信接口28所具备的传送状态寄存器28a、传送数据缓存器28b。
运算电路30在执行通过所述15所示的网络发送数据的传送命令43时,在对通信接口28的传送数据缓存器28b写入所指定数据的同时,对命令·状态寄存器28a写入传送的种类、传送起动指示。
另外,运算电路30在执行通过网络接收数据的传送命令时,不访问控制程序执行电路14外部的通信接口,而访问控制程序执行电路14内部的通信接口28,进行传送状态的确认、数据的接收。
通过把通信接口28安装到控制程序执行电路14内部,从运算电路30能直接访问其内部的缓存器28b、寄存器28a,从而能高速处理传送数据,高速执行传送命令。
(实施形态4)在本实施形态中,说明在各种缓存器中具有锁功能(保存功能)的控制装置。
图16是表示本实施形态的缓存器的一例的电路图。在图16中,表示1位的锁和缓存器的结构的例子。
缓存器44能作为数据缓存器、地址缓存器、命令缓存器使用。
缓存器44适用于所述各实施形态中说明的缓存器211~21n、221~22m、32、36、通信接口28内的传送数据缓存器28b、I/O接口27内的缓存器、系统总线接口29内的缓存器等控制装置14、381~38k内的各种缓存器。
须指出的是,在本实施形态中,虽然说明了作为闩锁数据的数据缓存器而使用的情况,但是作为闩锁地址的地址缓存器、闩锁命令的命令缓存器使用时也是同样的。
缓存器44具备AND电路45、移位寄存器46、锁数据读出用缓存器47、AND电路48、OR电路49、开关电路50。
当选择新数据的输出时,选择信号作为High信号输入,当选择锁数据的输出时,作为Low信号输入。即该选择信号作为锁数据的输出命令起作用。
AND电路45输入新数据和选择信号,当选择信号为High信号时,输出新数据。
移位寄存器46把输入的新数据作为锁数据保存到锁数据读出用缓存器47中。
而移位寄存器46在每次输入闩锁信号时,从锁数据读出用缓存器47输出各锁数据。须指出的是,锁数据的输出顺序可以是保存的顺序或相反的顺序。
AND电路48输入来自移位寄存器46的锁数据和选择信号的倒相结果,把Low信号的选择信号倒相,变为High信号时,输出锁数据。
OR电路49输出来自AND电路45的新数据和来自AND电路48的锁数据的任意一方。
开关电路50从AND电路45输入新数据和锁数据中的任意一方。此外开关电路50如果输入缓存器使能信号,就输出新数据和锁数据中的任意一方。
在本实施形态中,能根据选择信号选择是新数据的输出,还是锁数据的输出。缓存器44当作为双向的缓存器使用时,与所述图16同样的电路并联在相反方向。
在本实施形态中,当在控制程序25、37的执行中发生任意的错误时,停止访问,选择读出缓存器44中闩锁的数据。
通过具备按时间系列在地址和数据缓存器中闩锁数据的功能,能确认在错误发生时访问的数据,能分析错误发生的原因,容易查明执行控制程序是产生的错误的原因。
须指出的是,在所述各实施形态中,如果能实现同样的动作,则各构成要素能自由变形,既可以变更配置,也可以自由组合、分割。
本申请基于2004年4月19日提出的在先日本专利申请No.2004-123330和2005年4月5日提出的No.2005-108797,并且要求其优先权,通过参照而将其全部内容并入于此。
权利要求
1.一种控制装置,其特征在于,包括分散地存储对连续执行的处理命令给予了连续的地址的控制程序,使得能并行读出所述连续执行的处理命令的多个控制程序存储器;对所述多个控制程序存储器按照控制程序顺序输出所述地址,先行读出执行对象的处理命令以后的处理命令的程序存储器控制部件;执行由所述程序存储器控制部件读出的处理命令的运算部件。
2.根据权利要求1所述的控制装置,其特征在于,还包括保存从所述控制程序存储器读出的内容,并按照输出命令来输出所述内容的部件。
3.根据权利要求1所述的控制装置,其特征在于,所述处理命令包括多个命令;和与所述多个命令分别对应,针对所述多个命令分别判断是否执行的多个判断命令;所述控制程序在处理中存在分支和合流时,在从分支到合流的一方线路中包含的判断命令和命令连续,其后,在从分支到合流的另一方线路中包含的判断命令和命令连续的状态下,决定所述多个判断命令和所述多个命令的执行顺序;所述控制程序中的执行顺序邻接的处理命令分别存储在不同的控制程序存储器中。
4.根据权利要求3所述的控制装置,其特征在于,还包括存储通过所述连续执行的处理命令来进行存取的多个控制数据的多个控制数据存储器;通过执行顺序邻接的处理命令来进行存取的控制数据分别存储在不同的控制数据存储器中。
5.根据权利要求3所述的控制装置,其特征在于,还包括用于存储所述控制程序的一部分中使用的控制数据的高速缓冲存储器;在所述高速缓冲存储器的容量之内存储所述控制程序的一部分中使用的控制数据的控制数据存储器;当通过所述运算部件而发生控制数据的读出时,判断读出对象的控制数据是否存储在所述高速缓冲存储器中,当所述读出对象的控制数据存储在所述高速缓冲存储器中时,从所述高速缓冲存储器读出所述读出对象的控制数据的高速缓冲存储器控制部件。
6.根据权利要求4所述的控制装置,其特征在于,还包括保存从所述控制数据存储器读出的内容,按照输出命令来输出所述内容的部件。
7.根据权利要求1所述的控制装置,其特征在于,所述多个控制程序存储器分散地存储所述控制程序,使得在程序指令字长度扩展为多个字长度的状态下,能并行读出或写入;还包括对于所述控制程序的一部分中使用的控制数据,执行对所述控制数据存储器的读出或写入处理的数据存储器控制部件。
8.根据权利要求1所述的控制装置,其特征在于,所述控制程序在希望执行中取得同步的部分中包含有同步命令;还包括检测执行所述控制程序的其他装置是否执行了所述同步命令的部件;所述运算部件,在所述其他装置执行所述同步命令时,推进所述控制程序的处理,与其他控制装置同步来执行所述控制程序。
9.根据权利要求1所述的控制装置,其特征在于,还包括包含所述运算部件和通信接口的电路。
全文摘要
本发明提供一种控制装置,包括分散地存储对连续执行的处理命令给予了连续的地址的控制程序,使得能并行读出连续执行的处理命令的控制程序存储器(191~19n);对多个控制程序存储器(191~19n)按照控制程序顺序输出地址,先行读出执行对象的处理命令以后的处理命令的控制程序存储器控制部件(31);执行由控制程序存储器控制部件(31)读出的处理命令的运算部件(30)。
文档编号G05B19/05GK1690899SQ200510065958
公开日2005年11月2日 申请日期2005年4月19日 优先权日2004年4月19日
发明者芦田和英 申请人:株式会社东芝
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1