你可以在控制器內定義計算,使得控制器執行時進行相應計算。這些計算可被用來根據當前操作條件和/或控制器/DCS信號修改控制器參數。例如,你可以定義一個計算,當特定的POV斷開連接或返回一個錯誤值時,自動排除問題控制器中的CV。這個計算功能與其它PCTP應用(如AIDAPro, MDPro和RQEPro)使用相同的計算引擎,從而提供了整個PCTP產品套裝的一致性。此外,該計算引擎還可用于EXAITG。
計算的設計理念需基于以下原則:
?首先,所需的計算需要離線編寫。鑒于所定義的計算在控制器中有重要的作用,最重要的是任何被嵌入其中的計算都應該用適當的值進行檢查,以確保返回SMOCPro內核的值是有效的。例如,若計算需要修改控制器請求狀態,建議您仔細計算以確保返回的值是0、1、2或4中的一個。更多的細節將在后續的章節中提到。
?一旦所需的計算已經制定,下一步的工作是通過仿真確認預期行為并使用計算調試文件查看器。在PCTP 2009 Build 1中有一個新的特點,是計算可以(有限制的)在離線仿真包里進行仿真。請參見下述仿真部分以獲取更多細節。
?接下來,包含所有計算信息的EXA文件建立。
?最后,EXA文件在線導入。如果控制器狀態是ACTIVE (在EXASMOC中),在線控制器在每個控制器執行時執行計算。
如上所述,這個特性的意圖是便于運行時修改控制器參數。SMOCPro的傳統模式如下圖所示。
注意在該模型中與內核交互的輸入/輸出并不能基于當前操作和/或運行條件修改。因此,內核使用直接嵌入的傳遞值。為了克服這個困難,用戶通常采用的是提供應用程序代碼(用戶代碼)的方法將輸入修改到內核。該用戶提供的應用也可以采用內核中的輸出計算所需的數量/測量量。
為盡量減少用戶維護多個應用程序(控制器應用程序、用戶代碼應用程序等等)的負擔,在PCTP 2008 Build 1中引入一個計算引擎。
通過將計算整合到控制器設計層內,你作為用戶基本上只需要維護SMOCPro控制器應用。計算的GUI被設計為通過有效的方式幫助用戶建立相對大量的計算。隨著計算作為控制器設計的一部分,我們現在有一個如下圖的修改模型:
現在人們看到,控制器的范圍已經擴大到包含了計算。計算可以通過SMOCPro內核執行之前或之后進行評價。
我們現在引進和介紹一些術語。
? 預置內核計算—這些計算是在SMOCPro內核之前執行的。預置內核計算允許用戶基于當前操作情況和/或其它參數修改SMOCPro內核中的輸入參數。
?內核后計算 – 這些計算是在SMOCPro內核執行之后執行的。除了我們即將介紹的對外輸出位號外,設計上內核的輸出參數將不能被修改。
?外部輸入/輸出位號 – 這些可能是DCS位號或外部控制器的值,但也相應地作為計算輸入/輸出。外部輸入位號可能不是計算的輸出。外部輸出位號可以作為計算輸入。它們也可以作為臨時變量構建復雜計算。
原文:
You may define calculations that are evaluated during controller executions. These calculations may be used to modify controller parameters based on current operating conditions and/or controller/DCS flags. For example, you can design a calculation that automatically removes a CV from the control problem whenever a particular POV is either disconnected or returns a bad value. This calculations feature utilizes the same calculation engine used in other PCTP applications such as AIDAPro, MDPro and RQEPro, thereby providing consistency across the suite of PCTP products. Furthermore, this calculation engine is also used in EXAITG.
The design philosophy for calculations follows the following guidelines:
? First, the required calculations are built offline. Since the results for the specified calculations may have a significant bearing on the controller, it is imperative that any calculations be embedded within appropriate value checks to ensure that the value returned to the SMOCPro kernel is valid. For example, if a calculation modifies a controller request flag, it is recommended that you provide additional calculations to ensure that the value returned is one of 0, 1, 2 or 4. Further details will be provided in subsequent sections.
? Once the necessary calculations have been formulated, the next step is to confirm the expected behavior through simulation and use of the calculation debug file viewer. A new feature in PCTP 2009 Build 1 is that (with restrictions) calculations can now be simulated with the offline simulation package. Please see the simulation section below for more details.
? Next, the EXA file is built containing all the calculation information.
? Finally, the EXA file is imported online. The online controller now evaluates the calculations during each controller execution if the calculation status is ACTIVE (in EXASMOC).
As mentioned above, the intent of this feature is to facilitate run time modifications to controller parameters. The traditional model for SMOCPro is shown below
Notice in this model that inputs/outputs to/from the kernel cannot be modified based on current operating and/or runtime conditions. Hence, the kernel uses the values passed by the embedding directly. To circumvent this difficulty, users have typically adopted an approach whereby they provide an application code base (“user code”) that modifies the inputs to the kernel. This user-supplied application may also utilize the outputs from the kernel to calculate required quantities/metrics.
To minimize the burden on the user with regards to maintaining multiple applications (controller application, user-code applications et cetera), a calculation engine was introduced in PCTP 2008 Build 1.
By integrating the calculations within the realm of controller design, you as the user essentially have to maintain only the SMOCPro controller application. The calculations-GUI has been designed to help the user build a relatively large number of calculations in an efficient manner. With the calculations being part of the controller design, we now have a modified model as shown below
It is now seen that the scope of the controller has been extended to include calculations. A calculation may be evaluated either prior to the execution of the SMOCPro kernel or subsequent to it.
We now introduce and describe some terminology.
? Pre-kernel calculations – These are calculations that are executed before the SMOCPro kernel. Pre-kernel calculations allow the user to modify input parameters to the SMOCPro kernel based on current operating conditions and/or values of other parameters.
? Post-kernel calculations – These are calculations that are evaluated subsequent to the execution of the SMOCPro kernel. By design, output parameters from the kernel may not be modified except for external output tags, which we introduce next.
? External input/output tags – These are DCS tags or values that may be external to the controller but are relevant as inputs/outputs for calculations. External input tags may not be outputs for a calculation. External output tags may be used as inputs for calculations. They may be also used as temporary variables for building complex calculations.
20160417