可编存储程序控制器的编程机的制作方法

文档序号:99011阅读:243来源:国知局
专利名称:可编存储程序控制器的编程机的制作方法
本发明阐述的是一台可编存储程序控制器的编程机。
在现代控制和调节技术上,所谓可编存储程序控制器的编程机,可理解为是一台小型的、结构紧凑的、因而也易于运输的数据处理设备。它可通过标准接口与许多不同的控制器相连接。为编制和照管可编存储程序控制器的控制程序,编程机包括了所要求的各种功能。因此,控制器本身不需要规定相应的功能。为减轻控制和调节技术人员的编程工作,令人感到轻松的编程机可以直接在逻辑图一级上编程,也就是说,以一种控制和调节技术员十分熟悉的表示法编程。该控制器的逻辑图在编程机的图形显示器上显示。用户可以通过简单的指令对逻辑图进行更改或补充。编程机在没有用户的帮助下,自动产生逻辑图的控制程序。反之,编程机则从现有的所存储的机器可读控制程序中自动将有关逻辑图显示在显示装置上。
例如,这类编程机见于西门子公司柏林和慕尼黑分公司出版的题为“用STEP5编程的控制器”一书。该书作者为汉斯·贝格尔,1984年第4版第一卷。使用该编程机时,用户也可以直接在逻辑图中编制可编存储程序控制器用的控制程序。但编程机所用的逻辑图表示法普遍地很有局限性,采用此种表示法时,各功能块只能分级地互相联接,因而也就不会出现信号转移和信号交叉。例如,如果出现两个功能块需要一个信号或同一个信号作为输入端信号,这种情况是常有的,那么,编程机为了避免信号在逻辑图中的转移,在显示器上就会产生两个独立的分逻辑图。这就给示图的清晰度和信息密度造成了负担。然而,示图的清晰度和信息密度是编程机使用和操作舒适度的两个决定性因素。因为程序编制和程序照管经济性越来越取决于使用时的简便程序和操作时的高舒适度,并且完成自动化任务的合理进程也与此有关,所以人们迫切希望产生信息密度高的逻辑图表示法。但是,结构复杂的逻辑图表示法的产生一般与数字计算机的较大量计算相联系。不过,不在尺寸,重量和价格方面作些妥协,计算机的计算效率和存储器容量是不能马上提高的。
正如权利要求
书所表明的那样,本发明解决了在本文一开始就提到的那种编程机上规定数字计算机操作系统的操作这样一个问题,逻辑图表示法中的各功能块通过这些规定的操作以合理方式自动配置,从而功能块之间也能表示出信号转移和信号交叉。
本发明的优点主要表现在取得了力图之成就,也就是说以十分合理的方式达到了自动产生带信号转移和信号交叉的从而具有高信息密度的逻辑图表示法。这样,就不需要提高数字计算机的计算效率和存储器容量。
下面按图说明本发明的一个实施例。其中图1与技术过程相联的、与编程机相接的可编存储程序控制器的示意图。
图2可编存储程序控制器的控制程序逻辑图的一个实例。
图3第一个流程图,用来说明按本发明规定的、用函数调用将文件分解或函数调用的许多分序列。
图4按图2的逻辑图,但特别突出表示分序列的分逻辑图。
图5图2的一部份逻辑图。
图6第二个流程图,用来说明按本发明规定的操作,以确定逻辑图各功能块的横向移位。
图7第三个流程图,用来说明按本发明规定的操作,以确定表示分序列的各个分逻辑图的纵向移位。
图1中用1和一个简单的园圈示意一个技术过程,该过程由一个可编存储程序控制器2监视和控制。编程机3与可编存编程序控制器2相接,它们均包括一台数字计算机。这两台数字计算机分别由中央单元4和5组成,分别通过总线6和7与工作存储器8和9连接。可编存储程序控制器2的总线经由输入/输出导线11和12以及第一个输入/输出单元10与技术过程1相接。导线13连接着可编存储程序控制器2和编程机3。导线13又分别经过输入/输出单元14和15与总线6和7相接。这种连接最好为接插式,以便于编程机3与可编存储程序控制器2脱开。编程机3的总线7还联着一台图形显示设备16,它们是通过输入/输出单元17而连接的。应当说明,图1中所示的当然是所有导线均可由许多平行导线组成,通常也是如此组成。
在图1所示的布局中,可编存储程序控制器2的数字计算机的中央单元4以常规方式周期性地处理控制程序,控制程序包含在工作存储器8的第一部分内(8.1)。例如,通常它将在技术过程1中安装的,在图1中未示出的测量仪器所提供的实值经由输入端导线11和输入/输出单元10以及总线6而读入工作存储器8的第二部分(8.2),并与在那儿事先存储入的额定值进行联系,从而产生调节值,然后再将该值经由总线6和输入/输出单元10以及输出导线12传给技术过程1,特别是传给安置在那儿的、图1中未示出的调节元件。编程机3用于编制和照管以及用图形显示在可编存储程序控制器2的工作存储器8中的第一部分(8.1)所含的控制程序。编程机3的数字计算机中央单元5为此目的所需的所有语句都包含在一个操作系统中,这个工作系统则包括在工作存储器9的第一部份(9.1)中。可编存储程序控制器2的控制程序,例如可在工作存储器9的第2部前(9.2)中编制,编制成后拷贝给可编存储程序控制器2的工作存储器8的第一部分(8.1)。在工作存储器8的第一部分(8.1)中现存的控制程序出于照管目的也可复制给编程机3的工作存储器9的第二部分(9.2),在那儿作更改,并以更改后的形式又复制回去。当然,在所有复制过程中,编程机必须通过导线13与可编存储程序控制器2相联。在其他情况下,两台设备可完全独立地工作。
编程机3的工作存储器9的第二部分(9.2)中存储的可编存储程序控制器2的控制程序,对编程机3的中央单元5来说所呈现的不是待完成的程序,而是呈现出一个待处理的数组,在执行本发明所指的操作系统的操作中,由控制程序在图形显示器16上产生所需的逻辑图图示。
图2所示为一个可编存储程序控制器的控制程序的逻辑图表示法实例。逻辑图由矩形功能块Fi(i有1-18个)组成。Fi可以是任意的功能块,例如可以是按DIN40700,14/IEC部分117-15,和DIN 40719/IEC 113-7标准的功能块。逻辑图由左向右读,亦即左侧为输入端,右侧为功能块Fi的输出端。信号Xi从逻辑图的左侧向水平方向走向,Xi中的角标i可以为1-15,其中一部分可相当于从技术过程中导出的实值,而另一部分可相当于额定值。同样,在水平方向离开逻辑图的信号有Yi,i可以从1-6,例如它们可相当于技术过程1的调节值。最后,功能图上还有Zi信号,i可以从1-12,它们都只在各个功能块Fi之间运行,既不从左边进入逻辑图,也不从右边离开逻辑图。Zi信号由逻辑图自己产生,它们既是产生输出信号的功能块Fi的输出端信号,又是其它功能块Fi的输入信号。例如,功能块F1的输出端信号Z1是功能块F2的输入端信号之一。从信号关系看,功能块F2依赖于功能块F1。功能块F1的输出端信号Z1除供功能块F2之外,也还用作功能块F3、F4、F8以及F12的输入信号。这一信号方面与功能块Fi的多种关系,在按图2逻辑图中用信号转移和信号交叉的关系示出。按图2逻辑图是按照本发明应能自动产生的逻辑图。此外,在图2中另一种信号方面的多种关系在逻辑图中表现为功能块F9的输出端信号Z6。另外,输出端信号Z6有助于形成输出和输入端信号Z9-Z12以及Y6。因此,F14-F18的所有功能块从信号方面来说均与功能块F9有关。
下面就图2所示方式描述按本发明所述的操作自动产生逻辑图的过程。这种已执行的操作规定在编程机3的数字计算机中央单元5所用的操作系统中。
假定应该为可编存储程序控制器2的控制程序产生的逻辑图已产生,机器可读的控制程序已存储在编程机3的工作存储器9的第二部分(9.2)中;进一步假定,控制程序中每一个由逻辑图的功能块Fi表示的信号处理功能都已有一块功能模块,模块已有标识,并可借助函数调用而进行调用。那末,函数调用应包含有待调用功能模块的标识以及相当于逻辑图中输入/输出端信号的输入/输出端参数。
首先,应从头至尾对控制程序的函数调用作一遍检查,把它标作第一步运算。检查过程中,将每个查出的函数调用都列成队,亦即将每个调用按它出现在控制程序中的顺序和带有它的输入/输出参数的表一起写入文件。譬如,文件可以安排在编程机3的工作存储器9中的第2部分(9.2)的控制程序附近。
从以图2的逻辑图为基础的控制程序中得出文件中函数调用的序列如下F1(X2,X3;Z1)F2(X1,Z1,X4,Y1)F3(Z1;X6,Z2)F4(Z2,Z1,Z3)F5(X5,Z3,Y2)F6(X7,Z4)F7(Z4,X8,Y3)F8(Z1,X9,Z5)F9(X10,Z6)F10(Z6,X11,Z7)F11(Z5,Z7,Z8)F12(Z1,Y4)F13(Z8,Z6,X12,Y5)F14(Z6,Z9)F15(Z9,X14,Z10)F16(Z10,Z11)F17(Z11,X15,Z12)F18(X13,Z12,Y6)上文中功能块Fi的标记用于函数调用的标记,图2中信号Xi,YiZi的标记用于参数标记。
下文中仍引用这些标记符号。
接下去是将通过函数调用Fi的配置将文件分解成完全经分配的函数调用Fi的分序列。先从最后一个函数调用Fi最大开始,将每个函数调用Fi配置成一个新的分序列,函数调用Fi的输出端参数Z′i无助于形成已配置分序列的函数调用F′i的输入端参数Z′i。
图3所示为上述分解操作的流程图。经分解产生的分序列用Sj标示。开始操作时,函数调用Fi的角标i为i最大,亦即等于在文件中出现的函数调用Fi的最大角标值,在按图2的逻辑图例中,它等于18。分序列Sj的角标j在操作开始为1。通过有否Fi-1”的询门而进入循环。若文件中存在Fi-1的函数调用,则循环被执行。如果在循环中,角标i不断被减量,当文件中达到第一个函数调用Fi后,循环不再进行,操作结束。如正执行的那样,在循环中,首先是角标i减1,然后询问,带有参数i实际参数值的函数调用输出端参数是否有助于形成对分序列角标j已配给实值的函数调用Fi(FiESj)的输入端参数。若是此情况,则如开始的函数调用Fi+1那样,将函数调用Fi分配给同一个分序列Sj,也就是分序列S1,若非此情况,则先将角标j增值1,然后将函数调用Fi分配给新的分序列Sj。
为便于理解,待分解运算结束后,需将分序列Sj的角标数反过来。亦即带有从分解运算中得出的最大角标J最大的分序列Sj等于S1,带有次大角标J最大-1的分序列等于S2,等等。这些未在图3中表示。
上述以图2逻辑图为基础的、引用实例的文件,经上述运算方法运算,并将角标j反置后,可分解成下列七个分序列Sj
S1F1,F2S2F3,F4,F5S3F6,F7S4F8,F9,F10,F11,S5F12S6F13S7F14,F15,F16,F17,F18,分序列以分逻辑图示出。图中的功能块Fi互相分级连接,在信号上互相联系。在按本发明产生的逻辑图中,属于分序列Sj的分逻辑图互相依次排列。
图4是按图2示出的逻辑图。为便于识别,其分序列S1-S7以灰底图示出。
将文件按所述方式分解成分序列Sj之后,就要确定功能块Fi在图形显示时的规格化的横向延伸以及其规格化的横向移位。之所以称这些延伸和移位为规格化,是因为图形显示时各功能块的延伸和移位量都已经规格化,亦即规定一个共同的量,例如规定与显示装置16的尺寸有关的刻度系数。
图5所示为图2逻辑图的右上角部份,它只表示出分配给分序列S1和S2的功能块F1-F5,在功能块F1的实例中,它的规格化的、用△H(F1)标示的横向延伸更为清楚。这一延伸范围通常由功能块F1的规格化的横向延伸本身、加上位于输入端的RE和在后部的边缘区的RA决定。同样,以功能块F1为例,示出了它的用H(F1)标示的规格化的横向移位,这一移位从逻辑图的右缘起始,沿着用H标示的水平轴直至功能块Fi的右缘,确切地说,直至它的输出端的边缘区RA开始时止。对于功能块Fi的经规格化的横向延伸△H(Fi),在编程机3的工作存储器9的第二部分(9.2)中,必要时也在上述文件中规定第一组变量,并分配给各个功能调用Fi。这些变量在下文中同样用△H(Fi)标示。将功能块Fi的规格化横向延伸所要求的值经选择后直接分给变量△H(Fi),值的大小取决于所选功能块Fi的种类。在图245的实例中,所有的功能块Fi的相对横向延伸△H(Fi)都相等。
对于功能块Fi的规格化的横向移位H(Fi)同样也相应地给函数调用Fi规定第二组变量。对第二组变量也采用纵向移位的标示H(Fi)。变量值H(F1)相当于最大总数,对于函数调用Fi来说,该总数由第一组变量△H(Fi)的值组成,它又分配给与这一函数调用Fi有参数关系的函数调用F′i“与参数有关”的含意与前面定义过的“与信号有关”的含意一样。
图6流程图简单明了地示出决定这些值的方式和方法。从流程图的最上面的框图看,首先给第二组总变量赋0值。用H(Fi)=0表示。然后再将角标i置上i最大。与图3流程图类同,然后借助““i=0”的询问进入循环,当循环中角标值减至0时,该循环才告结束。此时,运算也告结束。接着为逻辑图的所有函数调用F1确定一个横向移位H(Fi)。循环中,首先进行的是角标i减1,然后对函数调用的下一个角标K置上等于i的值,此后以“是否有FK+1存在”的询问进入前述循环的内循环。当角标K不断增量,在内循环文件中不再有FK+1函数调用时,例如函数调用已达F18时,内循环为询问第一个外循环的K=0而退出当角标K增加值1后在内循环中就询问在参数方面,函数调用FK与函数调用Fi有关还是无关?若函数调用FK与函数调用Fi有关,则直接返回内循环起始点。若相反,即两者无关,则继续执行询问,即询问来自功能块规格化横向移位HFK和它的规格化的横向延伸△H(FK)的总数大于、小于还是等于功能块Fi的规格化的横向移位H(Fi)?若是后者,则又返回内循环的起始处;若是前者,则置入功能块Fi的规格化的横向移位H(Fi)等于所述总数,此后才返回内循环的起始处。
尤其直观的是按图5确定功能块Fi的规格化横向移位H(Fi)的方式。在不考虑图5中根本没有示出的功能块F6-F18的情况下,令角标i最大=5。然后,才在外循环的第一次运行中确定功能块F4的规格化的横向移位H(F4)。结果是△H(F5),因为功能块F5与功能块F4有参数关系,以及功能块F5的原来置入等于零的规格化的横向移位H(F5)和它的还未消失的规格化横向延伸△H(F5)的总和,当然大于功能块F4的初始时也同样置入零的规格化的横向移位H(F4)。在外循环的第二次运行时,确定功能块F3的规格化的横向移位H(F3)。产生的结果与内循环的第一次运行一样,是功能块F4规格化的横向移位H(F4)和它的规格化的横向延伸△H(F4)的总和。在内循环的第二次运行时,规格化的横向移位H(F4)值不再变化,因为在第二次运行中,功能块F5的横向移位H(F5)和它的规格化的横向延伸△H(F5)的总和小于第一次运行中求出的横向移位H(F4)。在外循环的第三次运行中求出的功能块F2的规格化的横向移位H(F2)不构成一个总和,因为功能块F3到F5中没有一块与F2有关。对于功能块F2来说,停留在规格化横向移位H(F2)的初始分配值零上。在所选实例中要求的外循环的最后一次运行中,首先置入的是,在内循环的第一次运行时,功能块Fi的规格化的横向移位H(F1)等于功能块F2的规格化的横向延伸△H(F2)。然后,在内循环的第二次运行中,将功能块F3的规格化的横向移位H(F3)和它的规格化的横向延伸△H(F3)的总和分配给规格化的横向移位H(F1),因为功能块F3与功能块F1有关,并且所述的总和大于在内循环的第一次运行时根据功能块F2的规格化的横向延伸△H(F2)得出的规格化的横向移位H(F1)。在实例中所要求的内循环的两次运行中,为了也顾及功能块F4和F5,在功能块F1的规格化的横向移位H(F1)方面不再有变化,因为这些有关功能块形成的总和小于有关功能块F3形成的总数。
上述按本发明确定功能块Fi的横向移位H(Fi)的方法的结果可以用下列方式表示一个与其它功能块Fi′无关的功能块Fi得到的横向移位H(Fi)为0。一个与其它功能块F′i有关的Fi功能块在逻辑图中与远在左边终止的、与它有关的功能块F′i相联。
现在还需求出表示分序列Sj的分逻辑图的规格化纵向延伸以及它在图形显示中的规格化纵向移位。图5为分序列S2的实例,图中示出了其用△V(S2)标示的规格化纵向延伸和它的用V(S2)标示的规格化纵向移位。
对于规格化的纵向延伸△V(Sj),规定在工作存储器的第二部分(9.2)中,必要时也在文件中,给分序列Sj分配一个第三组变量。按至今的演示,同样用△V(Sj)标示这些变量。对于分序列Sj的规格化纵向移位V(Sj)也相应地规定了一个第四组变量,下面将采用V(Sj)标示。
按本发明,分配给第三组变量的相对纵向延伸V(Sj)值相当于在分序列Sj中的函数调用Fi的双倍数加上不由分序列本身产生的输入端参数Xi,Zi数,减去分序列(Sj)中各函数调用Fi的参数表中由分序列Sj本身产生的第一个和最后一个输入端参数Zi数。
这些值的计算将在分序列S4实例中进一步阐述。在文件中相应于分序列的分解段结构如下F8(Z1,X9,Z5)F9(X10,Z6)F10(Z6,X11,Z7)F11(Z5,Z7,Z8)在分序列S4中的函数调用F1数等于4。取该值的双倍得出8。就象从分段结构中直接看出那样,但也可以从图2或图4中看出,只有输入端参数Z1以及X9-X11,即三个函数调用F8、F9和F10中总共只有四个参数不由分序列S4本身产生,因此在前面求出的8中再加4,得出12。在函数调用F8-F11的参数表中的第一批输入端参数Zi中,只有分序列S4中的函数调用F10的输入端参数Z6和函数调用F11的输入端参数Z5是自己产生的。在最后一批输入端参数Zi中,在函数调用F8-F11的参数表中,只有分序列S4的函数调用F11的输入端参数Z7是自己产生的。这样,在函数调用F8-F11的参数表中,在分序列S4中自己产生的第一批和最后一批输入端参数Zi的数等于3。应从前面所求出的值12中减去该值,则得出的分序列S4的规格化纵向延伸△V(S4)的最终值为9。从图2、4或图5中很容易看出,分序列Sj的规格化纵向延伸△V(Sj)正好相当于保持两个信号间最小距离的倍数。还要提到的是,在函数调用Fi的参数表中只有唯一的一个输入端参数,并且在分序列中是自己产生的,这个参数将作为第一个和最后一个输入端参数而计两次数作为运算的最后一步,必须将同样标示的分序列Sj的规格化纵向移位分配给一个第四组变量V(Sj)这些值从第三组变量△V(Sj)的值之总和中得出它们被分配给在分序列Sj文件的分序列Sj序列之前的分序列Sj。
这一运算也应按图7所示的流程图表示。
根据图7的上框,首先对第四组变量V(Sj)赋零值,用V(Sj)=0表示,然后给角标j赋1值。随后用“存在Sj+1吗”?的询问打开带角标j的循环。
只要文件中有一个分序列Sj+1,那末循环就运行,分序列的角标j达最大值后,此循环以及整个运算才告结束。在循环中,首先将标j加1,然后置入以后形成新分序列Sj的规格化纵向移位V(Sj),V(Sj)等于文件序列中它的直接先行者的规格化纵向移位V(Sj-1)和它的规格化纵向延伸△V(Sj-1)之和。
按本发明进行上述运算后,创造了能在显示设备16上产生所要求的带有信号转移和信号交叉的逻辑图的先决条件。
最后还应提及,以类似的方法,用原理相同的运算,还可以产生能由上到下阅读的逻辑图,或在这些逻辑图上安排向左对齐而不是向右对齐的功能块。
符号表1 技术过程2 可编存储程序控制器3 编程机4 可编存储程序控制器的中央单元5 编程机的中央单元6 可编存储程序控制器的总线7 编程机总线8 可编存储程序控制器的工作存储器8.1 工作存储器8的第一部分8.2 工作存储器8的第二部分9 编程机的工作存储器9.1 工作存储器9的第一部分9.2 工作存储器9的第二部分10 第一个输入/输出单元11 输入导线12 输出导线13 导线14.15 输入/输出单元16 图形显示器17 输入/输出单元Fi 功能块或函数调用Xi,Zi 输入端信号或输入端参数Zi,Yi 输出端信号或输出端参数
Sj分序列(H(Fi)功能块Fi或第一组变量的相对横向延伸RE 输入端方面的、在Fi之前的边缘区RA 输出端方面的、在Fi之后的边缘区H(Fi) 功能块Fi或第二组变量的相对横向移位。
Fk 相当于FiV(Sj)分序列Sj或第三组变量的相对纵向延伸V(Sj)分序列Sj或第四组变量的相对纵向移位。
权利要求
可编存储程序控制器的编程机,在该编程机上借助编程机中包括的数字计算机操作系统,将机器可读的、含有函数调用的控制器控制程序以逻辑图示法在图形显示器上显示,其特征是在数字计算机操作系统中规定下列运算-查找控制程序中的函数调用(Fi);-将已找到的函数调用按次序地连同它们的输入/输出端参数(Xi,Yi,Zi)表一起写在文件上;-通过将函数调用(Fi)分配给函数调用(Fi)的分序列(Sj)来分解文件,从最后一个函数调用(Fi最大)开始,每个函数调用(Fi)分配给一个新的分序列(Sj),函数调用(Fi)的输出端参数(Zi)不会有助于构成已分配给分序列(Sj)函数调用(Fi)的输入端参数(Zi);-给第一组变量赋值(ΔH(Fi),并分配给各函数调用(Fi)。这些值确定了函数调用(Fi)的图形显示在显示设备上(16)的规格化横向延伸(ΔH(Fi)),(包括边缘区RE1RA在内);-对第二组变量赋值(H(Fi)),这些变量同样分配给各函数调用(Fi)。该值确定了在显示设备(16)上函数调用(Fi)的规格化横向移位(H(F1))。该值相当于最大总和,对于函数调用(F1)来说,该总和由第一组变量ΔH(Fi)的值组成,它们再分配给与这一组函数调用(Fi)有参数关系的函数调用(Fi′);--给第三组变量(ΔV(Sj)),赋值,该值分配给分序列(Sj)。该值确定在显示设备(16)上分序列(Sj)的图形显示的规格化纵向延伸(ΔV(Sj)),相当于在分序列Sj中的函数调用Fi的双倍数加上不由分序列(Sj)本身产生的输入端参数Xi,Zi的数,减去在分序列(Sj)中各函数调用Fi的参数表上由分序列Sj本身产生的第一个和最后一个输入端参数(Zi)的数;--给第四组变量(V(Sj))赋值,这些值再分配给分序列(Sj)。该值确定了在显示设备(16)上分序列(Sj)的规格化纵向移位(V(Sj))的值,它们从第三组变量(ΔV(Sj))值的总和中产生被分配给当时的分序列Sj的分序列Sj序列之前的分序列S′j。
专利摘要
本发明涉及可编存储程序控制器的一种编程机。在这种机器上,借助编程机中包括的数字计算机操作系统,将机器存贮并可读的、含有函数调用的控制器控制程序,以逻辑图各示法在图形显示器上显示。本发明推荐了在数字计算机操作系统中的运算步骤,用这些步骤创造了自动产生逻辑图表示法的先决条件。这种表示法允许有信号转移和信号交叉,因而表现出比目前纯分级结构的逻辑图表示法含有多得多的信息量。
文档编号G06F17/50GK86102856SQ86102856
公开日1986年10月22日 申请日期1986年4月23日
发明者费利克斯·考夫曼, 丹尼尔·施林格 申请人:Bbc勃朗勃威力有限公司导出引文BiBTeX, EndNote, RefMan
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1