產(chǎn)品分類

      當(dāng)前位置: 首頁(yè) > 工業(yè)控制產(chǎn)品 > 運(yùn)動(dòng)控制 > 變頻器

      類型分類:
      科普知識(shí)
      數(shù)據(jù)分類:
      變頻器

      HoneywellTDC3000CL/AM程序設(shè)計(jì)在罐區(qū)計(jì)量中的應(yīng)用

      發(fā)布日期:2022-04-18 點(diǎn)擊率:63

       摘要:
        Honeywell TDC3000系統(tǒng)的CL/AM程序設(shè)計(jì)在復(fù)雜運(yùn)算方面能力突出,在罐區(qū)儲(chǔ)量計(jì)量中能力卓越,本文在這方面有詳細(xì)闡述并且提供另一種近似計(jì)算方法和程序源碼,并且利用到了面向?qū)ο蟪绦蛟O(shè)計(jì)方法的設(shè)計(jì)思想。

      關(guān)鍵詞:
        CL/AM,程序設(shè)計(jì),罐區(qū)、儲(chǔ)量、計(jì)算、程序源碼、面向?qū)ο?br/>
      引言:
        CL/AM程序設(shè)計(jì)是Honeywell TDC3000 DCS系統(tǒng)中一個(gè)運(yùn)算功能強(qiáng)大的工具。在DCS系統(tǒng)中有一部分復(fù)雜算法是標(biāo)準(zhǔn)測(cè)量算法無(wú)法實(shí)現(xiàn)的,這是就要借助CL/AM程序設(shè)計(jì)語(yǔ)言來(lái)實(shí)現(xiàn)。化工區(qū)乙烯罐區(qū)乙烯丙烯的儲(chǔ)量計(jì)算就是應(yīng)用此法。

      1、 CL語(yǔ)言的分類
      CL語(yǔ)言可分為CL/MC、CL/PM、CL/AM三種設(shè)計(jì)方法:
      (1)、CL/MC既是應(yīng)用于多功能控制器(Multifunction control)的控制語(yǔ)言;
      (2 )、CL/PM既是應(yīng)用于過(guò)程管理器(Process Managers)的控制語(yǔ)言;
      (3 )、CL/AM既是應(yīng)用于應(yīng)用模塊(Application Module)的控制語(yǔ)言,其主要參與連續(xù)控制的應(yīng)用。
      而本文主要涉及CL/AM的應(yīng)用。

      2、 CL/AM的功能及方法
        基于AM的CL程序適用于較大規(guī)模程序及大量數(shù)據(jù)支持的應(yīng)用。由于這一點(diǎn),就需要得到數(shù)據(jù)庫(kù)的支持,而這個(gè)數(shù)據(jù)庫(kù)就包含了DCS系統(tǒng)中所有的數(shù)據(jù)點(diǎn)。
      在DCS系統(tǒng)中,如果標(biāo)準(zhǔn)數(shù)據(jù)點(diǎn)處理功能或者標(biāo)準(zhǔn)PV或控制算法不能提供所需求的有效算法,即:
      (1)、標(biāo)準(zhǔn)PV算法不能提供所需求的足夠的算法和邏輯,那么在建立數(shù)據(jù)點(diǎn)時(shí)設(shè)定PVALGID= CL并將CL/AM程序連接來(lái)代替標(biāo)準(zhǔn)PV算法;
      (2)、標(biāo)準(zhǔn)控制算法不能滿足所需求的控制動(dòng)作,那么在建立該數(shù)據(jù)點(diǎn)時(shí),設(shè)參數(shù)CTLALGID=CL并將相應(yīng)CL/AM程序連接來(lái)代替標(biāo)準(zhǔn)控制算法;
      (3)、CL/AM程序也能被連接到,例如Regulatory Control、Custom或Switch類型的數(shù)據(jù)點(diǎn)上來(lái)擴(kuò)大數(shù)據(jù)點(diǎn)的處理功能。
      3、 CL/AM程序的結(jié)構(gòu)
      一個(gè)完整的CL/AM結(jié)構(gòu)如下:
      PACKAGE
      CUSTOM — —參數(shù)聲明區(qū)
      ----------------------------------------
      ----------------------------------------
      END CUSTOM
      BLOCK 塊名 (作用范圍;AT 代替算法)
      ---------------------------------------- — —程序代碼區(qū)
      ---------------------------------------
      END 塊名
      END PACKAGE

      4、 CL/AM程序在乙烯罐區(qū)儲(chǔ)量計(jì)算中的應(yīng)用
      4.1、設(shè)計(jì)思路:
        因?yàn)樵诠迏^(qū)的儲(chǔ)罐為非完全標(biāo)準(zhǔn)球罐,很難在數(shù)據(jù)點(diǎn)的標(biāo)準(zhǔn)PV算法中計(jì)算出其實(shí)時(shí)的儲(chǔ)量,即根據(jù)球罐的實(shí)時(shí)液位及密度等參數(shù)來(lái)計(jì)算出罐內(nèi)液體的質(zhì)量。所以在實(shí)際的運(yùn)用中DCS采用了CL/AM程序來(lái)代替AM Regulatory點(diǎn)的PVALGID算法。乙烯罐區(qū)9501A、9501B兩罐的罐內(nèi)液體質(zhì)量計(jì)算即用CL/AM程序來(lái)實(shí)現(xiàn)。在這里,罐內(nèi)液體的密度是0.442。程序設(shè)計(jì)思路如下,在積分學(xué)中為了計(jì)算某一不規(guī)則圖形的面積或體積時(shí)會(huì)將其細(xì)分為若干個(gè)近似規(guī)則的有可遵循計(jì)算方法的小圖形來(lái)計(jì)算,之后再集合成該圖形的面積或體積,當(dāng)然分的越細(xì)則越精確。設(shè)下圖為不規(guī)則圖形:



        我們可以將其劃分為n個(gè)高為h,寬為dn的方形來(lái)計(jì)算,n決定其精度。而9501A、B罐的CL/AM計(jì)算質(zhì)量程序就采用此思路。將球罐等高度劃分為143段,計(jì)算出每個(gè)高度所對(duì)應(yīng)的體積并將其放入數(shù)組中。實(shí)時(shí)的液位高度將在143段的某兩段之間或等于某一段,然后根據(jù)該段的體積數(shù)Vn加兩段之間按比例計(jì)算的V` 得出總的體積,繼而根據(jù)密度計(jì)算出罐的儲(chǔ)量。

      4.2程序結(jié)構(gòu)圖:




      4.3 程序部分源代碼及代碼注釋:
        本例是DCS中9501A、B兩罐的儲(chǔ)量計(jì)算公式。兩罐的規(guī)格相同,則在同一個(gè)CL/AM程序中一起計(jì)算,結(jié)果外送到數(shù)據(jù)點(diǎn)MI9501A.PV和MI9501B.PV。部分程序源代碼如下:
      PACKAGE CUSTOM(NOT BLD_VISIBLE) ——數(shù)據(jù)段聲明開始;
      PARAMETER MIN:ARRAY(1..144) —— 包含143段體積數(shù)的數(shù)組;
      VALUE (0.0,0.224,. . . ,1531.115) —— 每一層對(duì)應(yīng)的體積,略去141個(gè)數(shù)組值;PARAMETER LI:ARRAY(1.. 10) — —中間數(shù)組,保存臨時(shí)用到的高度;
      PARAMETER MI:ARRAY(1..10) — —中間數(shù)組,保存用到的儲(chǔ)量和密度;
      END CUSTOM— —數(shù)據(jù)段聲明結(jié)束;

      BLOCK MC302(POINT MC302;AT PV_ALG) — —程序塊開始,綁定在MC302上;
      EXTERNAL LI9501A_30, LI9501B_30 — —輸入點(diǎn)液位接口;
      EXTERNAL MI9501A, MI9501B — —輸出點(diǎn)儲(chǔ)量接口;
      LOCAL I,J,K — —臨時(shí)變量;
      SET J=2 — — 罐的數(shù)量,即A、B罐;
      SET MI(6)=0.442 — — 罐內(nèi)液體的密度;
      A2: LOOP FOR I IN 1 . . 5 — —變量初始化;
      SET LI (I)=0.0
      MI (I)=0.0
      REPEAT A2
      IF LI9501A_30.PV>0.0 THEN SET LI(1)=LI9501A_30.PV — —如果有液位,賦值;
      IF LI9501B_30.PV>0.0 THEN SET LI(2)=LI9501B_30.PV — —同上;
      A1: LOOP FOR I IN 1 . . J — —儲(chǔ)量的計(jì)算過(guò)程,A、B兩罐;
      IF LI(I)=0.0 THEN GOTO A3 — —如果沒(méi)有液位則跳轉(zhuǎn),按體積為零計(jì)算;
      IF LI(I)>=14.30 THEN SET LI(I)=14.30 — —如果超滿液位則按體積為滿計(jì)算;
      SET K=INT(LI(I)*10) — — 用取整函數(shù)取液位達(dá)到或超過(guò)的最近的層數(shù);
      SET LI(8)=MIN(K+2) -MIN(K+1) — — 取液位所在兩層之間的體積差;
      SET LI(9)=LI(I)*10 -K — — 取液位K+1和K+2層之間部分高度;
      SET MI(I)=MIN(K+1)+LI(8)*LI(9) — — 計(jì)算出當(dāng)前液位所對(duì)應(yīng)的體積數(shù);
      A3: REPEAT A1 — —LOOP A1循環(huán)結(jié)束;
      SET MI9501A.PV=MI(1)*MI(6) — —A罐儲(chǔ)量=A罐體積*密度;
      SET MI9501B.PV=MI(2)*MI(6) — —B罐儲(chǔ)量=B罐體積*密度;

      SET K=MI(1) — —A罐體積交給K;
      CALL ALLOW_BAD(PVCALC,K) — —如果K值有錯(cuò)誤,同樣可以賦值,不忽略;
      — —下一句K為BAD值時(shí),綁定點(diǎn)的PVAUTOST模式為BAD,其他則正常模式;
      SET PVAUTOST=(WHEN BADVAL(K):BAD;WHEN OTHERS:NORMAL)
      END MC302
      END PACKAGE


      4.4 以上思路的優(yōu)缺點(diǎn):
        從以上思路可以看出來(lái)CUSTOM數(shù)據(jù)段是一個(gè)長(zhǎng)為144的數(shù)組數(shù)值,是通過(guò)人工測(cè)量計(jì)算后得到的球罐143個(gè)平均高度層每層所對(duì)應(yīng)的體積數(shù),然后在寫入程序時(shí)編碼到源代碼中。其優(yōu)點(diǎn)是對(duì)于同一種規(guī)格的球罐來(lái)說(shuō)數(shù)組值不會(huì)有變化,從而一個(gè)程序能計(jì)算多個(gè)球罐體積(但擴(kuò)展時(shí)需要重新編碼)。

      優(yōu)缺點(diǎn)是:
      (1)、計(jì)算量大:
      對(duì)于每一個(gè)分層所對(duì)應(yīng)的體積數(shù)都要計(jì)算而得,這在設(shè)計(jì)階段的計(jì)算量太大;
      (2)、可維護(hù)性差:
      因本例中9501A、B罐儲(chǔ)量在一個(gè)程序中計(jì)算,且31系列的乙烯A、B、C、D和丙烯A、B、C罐也在另一個(gè)程序中一起計(jì)算(原理相同),若要對(duì)數(shù)據(jù)段數(shù)據(jù)或密度等進(jìn)行維護(hù)修改,則會(huì)引起通程序中其他的儲(chǔ)量計(jì)算出現(xiàn)問(wèn)題;
      (3)、通用性差:
      因?yàn)閿?shù)據(jù)段的體積數(shù)是具體的數(shù)據(jù),所以每一種直徑的罐都是不同的,那么每一種罐都需要一個(gè)單獨(dú)的邨CL/AM程序來(lái)計(jì)算,增大了工作量也增加了HM的存儲(chǔ)壓力,更不利于改造時(shí)的擴(kuò)展。

      5、CL/AM程序在乙烯罐區(qū)中應(yīng)用的面向?qū)ο蟪绦蛟O(shè)計(jì)優(yōu)化思路
      5.1.1 CL/AM程序GENERIC應(yīng)用:
        這種應(yīng)用適合于一批情況相似的計(jì)算應(yīng)用,不必對(duì)每一個(gè)都設(shè)計(jì)出CL/AM程序,而是對(duì)相似的計(jì)算設(shè)計(jì)出一個(gè)程序來(lái)讓所有其它的相似計(jì)算共同引用。不同的是在CUSTOM數(shù)據(jù)段中引用的GENERIC INPUT是不同的數(shù)據(jù)源。其中ENENRIC INPUT是在被綁定點(diǎn)PED端口設(shè)置NOGINPTS的值為引用的數(shù)據(jù)源的個(gè)數(shù),這也是面向?qū)ο蟪绦蛟O(shè)計(jì)方法,如對(duì)9501A罐儲(chǔ)量計(jì)算時(shí)被綁定點(diǎn)的部分組態(tài)如下:




      5.1.2 CUSTOM數(shù)據(jù)段的應(yīng)用:
        該思路中還用到密度和半徑,應(yīng)該也包括在CUSTOM數(shù)據(jù)段中。對(duì)于不同的半徑球罐和罐內(nèi)液體,可以在綁定點(diǎn)得PED組態(tài)時(shí)更改為相應(yīng)的半徑和密度。




      5.1.3 計(jì)算公式: 所用到的公式如下
      V = 3.1415926*LEVEL*LEVEL*(3*RADIUS-LEVEL)/3 ……….①M(fèi)=V*DENSITY ………………………………………………………②
      5.2 程序流程圖:




      5.3 設(shè)計(jì)代碼及注釋如下:

      PACKAGE
      CUSTOM - - 數(shù)據(jù)段參數(shù)聲明開始
      PARAMETER LEVEL “l(fā)evel of tank” - - 被測(cè)球罐實(shí)時(shí)液位;
      PARAMETER DENSITY “density of liquid” - - 罐內(nèi)液體的密度;
      PARAMETER RADIUS “radius of tank” - - 球罐的半徑;
      END CUSTOM - - 參數(shù)聲名結(jié)束;

      BLOCK TANK_CALC(GENERIC; AT PV_ALG) -- 程序塊開始;
      LOCAL level1,diameter,V,M - - 臨時(shí)變量聲明,液位、直徑、體積、儲(chǔ)量;
      PARAMETER PVCALC - - 返回綁定點(diǎn)的測(cè)量值接口;
      PARAMETER PVAUTOST:PVVALST - - 返回綁定點(diǎn)的測(cè)量值模式接口;
      SET level1=0.0 - - 臨時(shí)液位變量初值;
      SET diameter=2*RADIUS - - 臨時(shí)直徑(總高)初值;
      IF LEVEL<0.0 THEN SET level1=0.0 - - 產(chǎn)生負(fù)值液位時(shí),設(shè)沒(méi)有液位;
      IF LEVEL>diameter THEN SET level1=diameter - - 若超大液位時(shí),設(shè)滿罐;
      IF (LEVEL>=0.0) AND (LEVEL<=diameter) THEN SET level1=LEVEL --液位正常;
      - - 計(jì)算實(shí)時(shí)液位所達(dá)到的液體體積;
      SET V=3.1415926*level1*level1*(3*RADIUS – level1)/3
      - - 計(jì)算儲(chǔ)量;
      SET M=V*DENSITY
      - -
      CALL ALLOW_BAD(PVCALC,M) -- 輸出計(jì)算儲(chǔ)量到綁定點(diǎn)測(cè)量值,并錯(cuò)誤處理;
      SET PVAUTOST=NORMAL - - 設(shè)定綁定點(diǎn)測(cè)量工作模式為正常;
      END TANK_C
      END PACKAGE

      5.4 綁定點(diǎn)的部分組態(tài)值:
      綁定點(diǎn)為AM REGULATORY 點(diǎn):



      5.5 本文提供方式與原方式的比較
      5.5.1 計(jì)算量:
        沒(méi)有了開發(fā)時(shí)的數(shù)組計(jì)算量,實(shí)時(shí)液位所對(duì)應(yīng)的體積在程序公式中得到計(jì)算,當(dāng)然
        前提是球罐是標(biāo)準(zhǔn)的球形。而對(duì)于非標(biāo)準(zhǔn)的球形誤差也不會(huì)比原方法大(原因是原方法在計(jì)算兩層之間的體積時(shí)是按照平均來(lái)分,事實(shí)上來(lái)說(shuō)兩層之間也是球體的切層,用平均法有較大的誤差)。

      5.5.2 可維護(hù)性:
        因?yàn)闆](méi)有程序中具體的量,而是通過(guò)綁定點(diǎn)的接口來(lái)輸入輸出,所以基本上不需要維護(hù)。

      5.5.3 通用性:
        本程序適用于各種球罐(不同半徑)中各種液體(不同密度)儲(chǔ)量的計(jì)算。只需要在綁定點(diǎn)中PED設(shè)定參數(shù)(LEVEL,DENSITY,RADIUS)即可。并且本程序只需要一個(gè)拷貝就可以有多個(gè)引用,也減少了HM的存儲(chǔ)壓力。

      5.6 與PV標(biāo)準(zhǔn)算法的比較:
        其實(shí)按照這種用球缺體積公式來(lái)近似的方法完全可以在PV標(biāo)準(zhǔn)算法中來(lái)實(shí)現(xiàn),效果應(yīng)該和本文提供的算法相同,且不用編制程序。但是公式中的計(jì)算量較大,因?yàn)锳PMM需要處理數(shù)據(jù)太多,而AM在程序處理方面能力較強(qiáng),這樣可以解放APMM,而充分發(fā)揮 AM的長(zhǎng)處,何樂(lè)而不為呢!

      5.7 與面向?qū)ο蟪绦蛟O(shè)計(jì)方法的比較:
        嚴(yán)格意義上來(lái)說(shuō)工業(yè)控制與計(jì)算機(jī)程序設(shè)計(jì)是兩個(gè)學(xué)科,然而隨著科技的發(fā)展其界限已經(jīng)越來(lái)越模糊,正如各種程序語(yǔ)言越來(lái)越多介入工業(yè)控制(如VB、Delphi等),現(xiàn)代程序設(shè)計(jì)的思想也進(jìn)入到工業(yè)控制。這里我們繼承的就是“面向?qū)ο蟆钡某绦蛟O(shè)計(jì)方法,將罐作為一個(gè)“對(duì)象”,密度、半徑、液位作為“屬性”,儲(chǔ)量的計(jì)算作為“方法”。本例就是將其簡(jiǎn)單封裝作為所有球罐的類(程序),每一個(gè)應(yīng)用就是將這個(gè)類(程序)實(shí)例化(應(yīng)用)一次。所以總體來(lái)說(shuō),本文的思想就是將“面向?qū)ο蟆背绦蛟O(shè)計(jì)方法的思想在工業(yè)控制的程序設(shè)計(jì)中做了深化。

      6、總結(jié)
        CL/AM程序是個(gè)很有用的工具,在復(fù)雜計(jì)算方式替代標(biāo)準(zhǔn)PV算法等方面能力突出。在乙烯罐區(qū)球罐儲(chǔ)量計(jì)算的程序設(shè)計(jì)中,相比原有方法的可以減少開發(fā)時(shí)的計(jì)算量、不存在維護(hù)問(wèn)題,并且通用性較強(qiáng)。而與數(shù)據(jù)點(diǎn)的PV標(biāo)準(zhǔn)算法相比可以減少APMM的負(fù)擔(dān)。本文也提供了源代碼以及對(duì)代碼注釋分析。同時(shí)對(duì)面向?qū)ο蟪绦蛟O(shè)計(jì)思想在工業(yè)控制程序設(shè)計(jì)中的應(yīng)用做了部分深化。

      參考文獻(xiàn):
      1、 Honeywell TDC3000 系統(tǒng)手冊(cè);
      2、 中國(guó)石化廣州分公司乙烯DCS系統(tǒng)CL/AM程序MC302.CL源代碼

      ●Application of the CL/AM program in ethylene tank area


      Abstract:
      The ability of the CL/AM programming of Honeywell TDC3000 system in the aspect of complex calculation is stand out. At the ethylene tank area, its ability of calculating the capacity of ethylene tank is standout. This paper issues particular and gives other method.

      Keys:
      CL/AM,programming,tank area,capacity ,calculation,program code.

      作者簡(jiǎn)介: 王雨辰,中國(guó)石化廣州分公司信息儀控中心,電話020-82128389

      下一篇: PLC、DCS、FCS三大控

      上一篇: 索爾維全系列Solef?PV

      主站蜘蛛池模板: 免费日本一区二区| 91精品一区二区综合在线 | 日本一区二区三区不卡在线视频| 无码国产精品一区二区免费式芒果| 竹菊影视欧美日韩一区二区三区四区五区| 精品一区二区三区无码免费直播| 精品国产一区二区三区麻豆| 中文字幕在线精品视频入口一区| 无码日韩人妻AV一区免费l| 日韩视频在线一区| 国产中文字幕一区| 中文字幕一区二区三区5566| 日韩电影一区二区三区| 国产在线精品一区二区中文| 国产福利电影一区二区三区久久老子无码午夜伦不 | 国产一区二区三区亚洲综合| 亚洲日韩一区二区一无码| 日韩精品一区二区亚洲AV观看| 中文字幕精品亚洲无线码一区| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 日本免费精品一区二区三区| 日本精品一区二区三本中文| 国产激情一区二区三区小说| 精品亚洲福利一区二区| 国产精品美女一区二区| 波多野结衣电影区一区二区三区| 午夜一区二区免费视频| 国产一区二区三区视频在线观看| 国产在线精品观看一区| 无码人妻精品一区二区三区99不卡 | 夜夜嗨AV一区二区三区| 久久国产免费一区二区三区 | 无码中文人妻在线一区二区三区| 亚洲av乱码一区二区三区 | 一区二区三区观看免费中文视频在线播放| 国产无线乱码一区二三区| 日韩精品无码一区二区三区不卡 | 中文字幕色AV一区二区三区| 久久精品国产一区二区三区肥胖| 精品无码人妻一区二区三区品| 国产精品亚洲午夜一区二区三区|