可自由编程的控制器的制作方法

文档序号:6278472阅读:246来源:国知局
专利名称:可自由编程的控制器的制作方法
技术领域
本发明涉及一个可自由编程的控制器,该控制器用于控制和/或监视一个技术过程,以执行至少一个用户可编辑任务。
这样一种可自由编程的控制器例如是一个存储器可编程控制器的中央单元,它为了控制和/或监视一个自动化技术过程至少执行一个用户可编辑任务。
为控制和/或监视一个技术过程,经常可执行控制功能。这种控制功能例如以程序库方式供可自由编程的控制器的用户使用。简单的控制功能例如有具有所谓P算法的控制功能,其中控制功能模仿具有比例特性的调节器;有具有所谓PI算法的控制功能,其中控制功能模仿具有比例积分特性的调节器;和有具有所谓的PID算法的控制功能,其中控制功能模仿具有比例积分微分特性的调节器。
这种控制功能的使用十分普遍,因此它们常常以程序库方式提供使用。用户使用这些控制功能,并根据应用情况只给出例如比例因子或者提前时间这些参数。
一个以这种方式在一个可自由编程的控制器中实现的调节器常常是离散时间处理采样调节器。各种控制算法根据这一事实安排。一个采样调节器在一个确定的采样区间内操作,其中该调节器每次在采样时刻被激活。在以软件方式实现的采样调节器的场合,控制算法在各采样时刻被激活,亦即被调用。
为此可以把控制算法以可单独调用的分程序或子程序的形式存放在一个程序库中,或者由用户根据各自需要编程。于是单个算法以可单独调用的子程序供总程序使用,并像一个元件集成在总程序中。这种实现一个可预先规定功能的可单独调用的元件下面也称为功能任务。
在前述类型的过程控制设备中通常设有一个中央任务,它通过执行相应控制语句保证周期地调用例如上述的控制算法。以此可以例如根据该过程控制设备的计算能力对某一控制算法以200ms的脉冲周期调用。这一周期时间相应于采样时间,并作为参数输入到各控制算法中。
在可自由编程的控制器中建立控制技术应用程序时,在使用例如上述控制功能,同时也为了使用滤波器、额定值供给器、积分器、微分器等,必须以确定的时间顺序调用它们。
为实现这一调用概念必须经常编程一个时间管理器,以保证控制器的周期时间均匀满载。这意味着对于用户,软件设计者,除了相当耗时外,他必须为每一功能任务规定采样时间,必须给上述方式的每一周期的功能任务传输采样时间,因其作为输入参数要用于计算,以及他必须由此考虑每个程序的时间脉冲管理。
这要求用户非常了解控制技术,一些在传统的控制中不常出现的控制技术,或者特别在缓慢的过程,例如温度控制,它本来就意味着不必要的编程和运行费用。
此外,存在这种危险,即一种违反操作规程的时间脉冲管理引起可自由编程的控制器的一种错误状态,这种错误状态在开通后也可能出现,因为这涉及以不可忽略的周期时间负载叠加的异步过程,其在准备阶段几乎不能计算。
因此,本发明的任务在于,给出一种可自由编程的控制器,其中一个或者多个功能任务可在用户可编辑任务的周期部分被调用,且为计算作为各功能任务算法基础的数学或者逻辑函数需要的采样时间可在各个功能任务中确定,并因此可作为该逻辑功能的参数使用。
该任务通过一个用于控制和/或监视一个技术过程、以执行至少一个用户可编辑任务的可自由编程的控制器、特别是一个可编程存储器控制器的中央单元来实现。
-其中由用户可编辑任务可调用至少一个功能任务,-其中,该功能任务用于--从技术过程中至少接收一个测量值,--按照一个可预先给定的通过至少一个参数规定的数学或逻辑函数确定至少一个与测量值相关的日期,-其中,可确定在调用功能任务时与测量值相关的日期,-其中,由功能任务可确定调用时刻,-其中,可确定在当前调用和前次调用之间的时间差,-其中,该时间差是该数学或者逻辑函数的一个参数。
当在当前调用和前次调用之间的时间差可通过该功能任务自身确定时,则不需给该功能任务传输该作为参数的时间差。这就减轻可自由编程的控制器的计算时间负载,特别减轻暂存参数传输期间的数据的堆栈的负载。
在为控制和/或监视一个技术过程而至少执行一个用户可编辑任务的可自由编程的控制器中,通常设置一个所谓的实时结构,它意味着,在某个界限内通过操作系统或者一个位于用户可编辑任务之下的任务保证,有待确定的动作在可预先给定的时刻被初始化。在现在的情形下,下面称为中央任务的任务,如前所述,例如是位于用户可编程任务之下的任务或者是一个由特别的操作系统调用的任务。
当用户可编程任务可通过这一中央任务控制时,则例如可以在确定的时间区间内周期调用该用户可编辑任务。当从一个如此控制的用户可编辑任务调用上述功能任务时,通过用户可编辑任务确定的调用时间间隔也保证了该功能任务一个确定在某个界限内的调用时间间隔,这样大致重新出现按照现有技术在由中央任务调用功能任务时已经出现的情况,但编程和计划投入明显减少,以及可自由编程的控制器的计算时间负载同时减少。
当除了用户可编辑任务以外提供至少一个时间索引任务,其中该时间索引任务可由中央任务调用,并且该时间索引任务在每次被调用时使一个时间索引寄存器的内容增量,则可以用该时间索引寄存器的内容作为全部功能任务使用的一个公共时基。
该时间索引任务在可预先给定的时刻由中央任务调用,其中该时间索引任务在每次被调用时至少使一个时间索引寄存器的内容增量。时间索引任务的调用时间按照要控制的和/或要监视的技术过程的最小的所谓区间时间常数调整。因此在时间索引任务两次调用时刻之间的差距通常选择小于该技术过程的最小区间时间常数。
时间索引任务两次调用时刻之间的间距必须再次选择成这样大,即,使得在时间索引寄存器第一次溢出和该时间索引寄存器的第二次溢出之间的时间段大于,特别是明显大于所采集的最大区间时间常数。
当时间索引任务在每次被调用时使时间索引寄存器的内容增量时,则在按时间绘制的该时间索引寄存器的内容中产生一个锯齿函数,因为紧接寄存器溢出后寄存器内容变为零,因此在其后重新从零开始增量。该时间索引寄存器是一个所谓的全局寄存器,这样该时间索引寄存器的内容既可由总程序,也可由全部子程序,特别是可由被可自由编程的控制器执行的功能任务确定。
当该时间索引任务可以按一个可预先给定的等距的时间间隔由中央任务调用时,则根据该时间索引寄存器的内容为总程序、可调用子程序、特别是功能任务产生一个线性时基。
当功能任务为确定其调用时刻而确定时间索引寄存器的内容时,可以特别简单地确定调用时刻,如上所述,其与总程序、可调用子程序、特别是功能任务的公共时基有关。
本发明的另一任务在于,提供一种调用一个可自由编程的控制器中的一个功能任务的方法,该控制器尤其可以是一个用于控制和/或监视一个技术过程以执行至少一个用户可编辑任务的可编程存储器控制器的中央单元,采用该方法在用户可编辑任务的周期部分调用功能任务,以及其中,为计算作为各功能任务算法基础的数学或者逻辑函数所需要的采样时间在各个功能任务中确定,并因此作为该逻辑函数的参数使用。
该任务通过调用一个可自由编程的控制器中的一个功能任务的方法、通过后面的措施而解决,所述控制器特别是一个存储器可编程控制器的中央单元,其用于控制和/或监视一个技术过程以执行至少一个用户可编辑任务,所述措施包括-由用户可编辑任务调用功能任务,-该功能任务用于--从该技术过程中至少接收一个测量值,--按照一个可预先给定的通过至少一个参数规定的数学或逻辑函数确定至少一个与测量值相关的日期,-确定调用功能任务时与测量值相关的日期,-通过该功能任务确定调用时刻,-确定在当前调用和前次调用之间的时间差,-该时间差是数学或者逻辑函数的一个参数。
下面借助附图对本发明的其它优点和发明细节作进一步详细说明,附图中

图1和图3表示一个时间图,
图2和图4表示调用体系,图5表示一个功能曲线。
图1表示一个用户可编辑任务11的时间图,该任务11由一个中央任务1调用,其中中央任务1此外还在可预先规定的时刻调用功能任务21、22和23,并为此中断用户可编辑任务11的执行。
按照图1,在时刻kt11中央任务1调用用户可编辑任务11。在时刻kt21中央任务1中断用户可编辑任务11,以调用功能任务22。在功能任务22结束后,控制短时返回中央任务1,它根据供其使用的数据和参数确定,用户可编辑任务11还要运行,并因此重新激活用户可编辑任务11。
在时刻kt21中央任务1再次中断用户可编辑任务11,以便能够执行功能任务21。在功能任务21结束后,控制重新短时返回中央任务1,它再次确定,用户可编辑任务11还要运行,并因此重新激活用户可编辑任务11。
在时刻kt23中央任务1再次中断用户可编辑任务11,以便调用功能任务23。在功能任务23结束后,控制重新短时返回中央任务1,它确定,用户可编辑任务11还要运行,并因此重新激活用户可编辑任务11。
在时刻(k+1)t22中央任务1重新中断用户可编辑任务11,以便重新调用功能任务22。在结束功能任务22的重新执行后,中央任务1短时再次把控制交给用户可编辑任务11,因其还要运行。
在结束用户可编辑任务11后控制返回中央任务1,它在时刻(k+1)t11重新起动用户可编辑任务11。
在时刻(k+1)t21中央任务1重新中断用户可编辑任务11的执行,以便重新开始功能任务21。在结束功能任务21后,中央任务1重新再次激活中断的用户可编辑任务11。根据这一模式,在现有技术公知的调用方法中,一个用户可编辑任务11为执行功能任务21、22、23分别在其执行时刻(k+x)t21、(k+x)t22、(k+x)t23被中断。
重要的是确定,功能任务21、22、23是与用户可编辑任务11的执行异步进行。这由下述事实确定,全部任务,亦即无论是用户可编辑任务11还是功能任务21、22、23都由中央任务1调用。
这一依从关系在图2中再次以示例表示。中央任务1在时刻(k+x)t11或者(k+x)t12调用用户可编辑任务11或者12。与调用用户可编辑任务11、12无关,中央任务1还分别在时刻(k+x)t21、(k+x)t22或(k+x)t23调用功能任务21、22、23。
与此相对,按照本发明,功能任务71、72、73的调用是通过用户可编辑任务61进行的。由此产生的关系在图3的时间图中表示。
中央任务5在时刻kt61调用用户可编辑任务。功能任务71、72、73直接从用户可编辑任务61调用。调用时刻(k+x)t71、(k+x)t72、(k+x)t73从在用户可编辑任务61的控制语句内的各调用语句的位置产生。亦即因此可以在用户可编辑任务内准确地在直接需要由各功能任务71、72、73交付的与测量值有关的日期D71、D72、D73时调用功能任务71、72、73。
由此产生的简单的调用关系在图4中再次表示。中央任务5分别在时刻(k+x)t61或者(k+x)t62调用用户可编辑任务61、62。在该功能任务的控制语句内现在有调用语句,它们调用功能任务71、72、73。在图4中以示例表示这一情况,用户可编辑任务61调用功能任务71和72,而用户可编辑任务62调用功能任务73。从所示例子可以想见其它情况。
在图1的时间图中在功能任务21、22、23的各自调用之间的距离保持相等,因此功能任务21、22、23总是在相等的时间区间内被调用,但是对于功能任务71、72、73的调用,根据本发明不保证这一点。
如上所述,按照本发明,功能任务71、72、73的调用是通过各用户可编辑任务61、62的相应语句实现的。这意味着,功能任务71、72、73的调用时刻依赖于为处理和执行在用户可编辑任务61、62中包含的控制语句需要的计算时间。
如果例如在调用功能任务73之前由用户可编辑任务61执行具有可变迭代深度的迭代,则在用户可编辑任务61的第一次调用时的迭代深度要比用户可编辑任务61第二次调用时小,亦即因此功能任务72的调用时刻在用户可编辑任务61第二次调用时由于提高迭代深度而增加的计算时间向后推移。
也就是说各功能任务71、72、73在按照本发明的调用时不是以相等的时间间隔调用。如前所述,当由功能任务71、72、73执行一个控制算法,输入由一个要控制和/或要监视的技术过程TP交付的测量值M71、M72、M73时,在这些功能任务的各次调用之间的距离也是该控制算法的一个可变参数,它说明各采样时间。
为确定变化的采样时间,可以确定一个参数作为系统时钟当前状态的量度。
如果该参数在功能任务71、72、73内暂存的话,则可以在下次调用功能任务71、72、73时根据在该暂存的数值和新交付的参数之间的差确定当前采样时间。
同样可以想见,给功能任务71、72、73补充确定系统时钟当前状态的语句。在该种情况下也把每次当前确定的时间值暂存在功能任务内部,以便在下次调用功能任务71、72、73时根据该暂存的值能够确定时间差。
然而,从两个例如以时、分、秒给出日时的时间信息确定一个时间差通常很耗费(计算时间)。为此目的,本可以例如把两个日时变换为秒,然而为此需要不同的乘法和加法。这要消耗计算时间,这些时间最好提供给应用例如用户可编辑任务61、62或者功能任务71、72、73时使用。
因此,根据本发明提供一个时间索引寄存器T51很具优点,其内容表示一个时间信息。
为此目的,按照本发明的一个有利的方案,中央任务5以相等间隔调用一个时间索引任务51,其中该时间索引任务51在每次调用时使时间索引寄存器T51的内容增量。时间索引寄存器T51的内容为功能任务71、72、73可被确定,并可以被用来确定各自的采样时间。
例如功能任务72在调用时确定时间索引寄存器T51的内容并存储该值。该功能任务72在下次被调用时重新确定时间索引寄存器T51的内容,并可以根据时间索引寄存器T51的当前内容和所存储的表示功能任务72前次调用时时间索引寄存器T51的内容的值之间的差,为两次前后相继调用之间的时间段确定一个尺度,亦即采样时间。
当时间索引寄存器T51例如是一个16位宽的寄存器时,则在该时间索引寄存器中可存储的最大值是65535。如果在时间索引寄存器T51中已经存储该最大可能值,则该时间索引寄存器T51的内容的再次增量将导致所谓的寄存器溢出。对于时间索引寄存器T51的内容来说,这意味着复位到零值。由该零值出发,可以在下次调用时间索引任务51时使该时间索引寄存器T51的内容重新增量,直到下次寄存器溢出。因此该时间索引寄存器T51的内容沿时间来描绘可形成一个锯齿函数,如图5所示。
当在功能任务71、72、73的两次前后相继调用期间尚未发生任何时间索引寄存器T51的寄存器溢出时,则时间索引寄存器在各功能任务71、72、73的当前调用时的内容大于各前次调用时的内容。因此所述时间差的大小通过简单地从在当前调用时刻时间索引寄存器T51的内容中减去在功能任务71、72、73中分别暂存的值来计算,该暂存值表示在前次调用时刻该时间索引寄存器T51的内容。
与此相反,如果在功能任务71、72、73的两次前后相继的调用之间发生时间索引寄存器T51的溢出,则在当前调用时刻的时间索引寄存器T51的值小于时间索引寄存器T51在前次调用时刻的内容。在确定各功能任务71、72、73中的采样时间之前要确定是否存在这种情况,亦即时间索引寄存器T51在当前调用时刻的内容是否小于暂存的值。如果存在这样的情况,则在时间索引寄存器T51的当前内容上加上在时间索引寄存器T51中所能存储的最大值,在该种情况下亦即65535。对于按照图5的图形,这明确表示,锯齿的两个三角形简单地如此移位,使得产生一个线性不中断的坡度。使用以这种方式修正的时间索引寄存器T51的内容,可以以已知的方式通过减来确定采样时间。
最后,本发明总结如下当调用例如实现控制功能的功能任务时,不再通过一个中央任务,亦即例如一个实时操作系统的调度程序,而是通过各个用户可编程任务实现,在这些用户可编程任务中处理由功能任务交付的测量值,从而使软件设计人员从软件设计时复杂的组织任务中解脱。因为在产生的非等距功能任务调用时,例如一个控制算法的采样时间不再恒定,因此要把各次有效的采样时间作为参数传输给功能任务的各自算法。然而当功能任务在每次调用时确定一个时间值以及从当前时间值和先前时间值之间的差自身规定采样时间时,可以特别简单地确定采样时间。当为此询问一个时间索引寄存器时,时间值的确定也可以特别简单。该时间索引寄存器由一个通过中央任务周期调用的时间索引任务在每次调用时增量。
权利要求
1.一种可自由编程的控制器,尤其是一个存储器可编程控制器的中央单元,用于控制和/或监视一个技术过程(TP)以执行至少一个用户可编辑任务(61,62),-其中由用户可编辑任务(61,62)可调用至少一个功能任务(71,72,73),-其中,该功能任务(71,72,73)用于--从技术过程(TP)中接收至少一个测量值(M71,M72,M73),--按照一个可预先给定的通过至少一个参数规定的数学或逻辑函数确定至少一个与测量值相关的日期(D71,D72,D73),-其中,可确定在调用(A71,A72,A73)功能任务(71,72,73)时与测量值相关的日期(D71,D72,D73),-其中,通过功能任务(71,72,73)可确定调用(A71,A72,A73)时刻(TA),-其中,可确定在当前调用(A71,A72,A73)和前次调用之间的时间差(TΔ),-其中,该时间差(TΔ)是所述数学或者逻辑函数的一个参数。
2.根据权利要求1所述的可自由编程的控制器,其特征在于,在当前调用(A71,A72,A73)和前次调用之间的时间差(TΔ)可通过功能任务(71,72,73)确定。
3.根据权利要求1或2所述的可自由编程的控制器,其特征在于,用户可编辑任务(61,62)的执行可由一个中央任务(5)控制。
4.根据权利要求3所述的可自由编程的控制器,其特征在于,除用户可编辑任务(61,62)外设置至少一个时间索引任务(51),其中该时间索引任务(51)可由中央任务(5)调用,并且其中该时间索引任务(51)在每次调用时使时间索引寄存器(T51)的内容增量。
5.根据权利要求4所述的可自由编程的控制器,其特征在于,所述时间索引任务(51)可由中央任务(5)按一个可预先给定的等距的时间间隔调用。
6.根据权利要求4或5所述的可自由编程的控制器,其特征在于,所述功能任务(71,72,73)为确定其调用时刻(TA)而确定时间索引寄存器(T51)的内容。
7.一种调用可自由编程的控制器的功能任务、特别是一个存储器可编程控制的一个中央单元的功能任务的方法,该控制器用于控制和/或监视一个技术过程(TP)以执行至少一个用户可编辑任务(61,62),-其中由用户可编辑任务(61,62)调用功能任务(71,72,73),-其中,该功能任务(71,72,73)用于--从技术过程(TP)中接收至少一个测量值(M71,M72,M73),--按照一个可预先给定的通过至少一个参数规定的数学或逻辑函数确定至少一个与测量值相关的日期(D71,D72,D73),-其中,确定在调用(A71,A72,A73)功能任务(71,72,73)时与测量值相关的日期(D71,D72,D73),-其中,通过功能任务(71,72,73)确定调用(A71,A72,A73)时刻(TA),-其中,确定在当前调用(A71,A72,A73)和前次调用之间的时间差(TΔ),-其中,该时间差(TΔ)是该数学或者逻辑函数的一个参数。
8.根据权利要求7所述的方法,其特征在于,在当前调用(A71,A72,A73)和前次调用之间的时间差(TΔ)通过功能任务(71,72,73)确定。
9.根据权利要求7或8所述的方法,其特征在于,用户可编辑任务(61,62)的执行由一个中央任务(5)控制。
10.根据权利要求9所述的方法,其特征在于,除用户可编辑任务(61,62)外,设置一个时间索引任务(51),其中该时间索引任务(51)由中央任务(5)调用,并且该时间索引任务(51)在每次被调用时使时间索引寄存器(T51)的内容增量。
11.根据权利要求10所述的方法,其特征在于,所述时间索引任务(51)由中央任务(5)按一个可预先给定的等距的时间间隔调用。
12.根据权利要求10或11所述的方法,其特征在于,所述功能任务(71,72,73)为确定其调用时刻(TA)而确定时间索引寄存器(T51)的内容。
全文摘要
一种可自由编程的控制器,当调用例如实现控制功能的功能任务时,不再通过一个中央任务,亦即例如一个实时操作系统的调度程序,而是通过各个用户可编程任务实现,在这些用户可编程任务中处理由功能任务交付的测量值,从而使软件设计人员从软件设计时复杂的组织任务中解脱出来。由于在产生非等距的功能任务调用时,例如一个控制算法的采样时间不再恒定,因此要把各有效的采样时间作为参数传输给功能任务的各自算法。然而当功能任务在每次调用时确定一个时间值以及从当前时间值和先前时间值之间的差自身规定采样时间时,可以特别简单地确定采样时间。当为此询问一个时间索引寄存器时,时间值的确定也可以特别简单。该时间索引寄存器由一个通过中央任务周期调用的时间索引任务在每次调用时增量。
文档编号G05B19/042GK1246935SQ98802400
公开日2000年3月8日 申请日期1998年3月20日 优先权日1997年4月2日
发明者于尔根·米勒 申请人:西门子公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1