<strong id="gpode"></strong>
  • <ruby id="gpode"><table id="gpode"></table></ruby>

    <strong id="gpode"><pre id="gpode"><form id="gpode"></form></pre></strong>
    <ruby id="gpode"></ruby>
    1. <ruby id="gpode"></ruby>
      銅馬實業[www.dadecountytruckin.com]提供電力安裝、電力運維、電力設計、電力施工、元器件采購等全方位服務!
      186 8073 6169

      銅馬提供24小時優質電力咨詢服務

      動態新聞 news
      您現在的位置:首頁 > 動態新聞 > 電力百科 > 用PLC實現流量累加算法講解
      重慶電力安裝公司

      用PLC實現流量累加算法講解

      發布時間:2019/06/19 電力百科 標簽:PLC流量累加瀏覽次數:4142

      在使用s7-1200PLC編寫程序的時候,如果項目上需要用到流量累積功能,但是本款PLC并沒有自帶流量累積功能塊。這時,就需要我們組態工程師自己編寫一個具有流量累積功能程序,或者將該程序封裝為FB塊或者FC塊。本文以封裝FB塊為例。

      第一步:在程序塊目錄下單擊添加新塊,彈出添加新塊對話框,選中FB函數塊,在名稱欄填上需要命名的名字,如:Totalizer,選擇編程需要用的編程語言,本文以SCL語言講解,FB塊的編號可以通過手動或自動生成,然后單擊確認,如下圖所示

      第二步:打開新建功能塊,并建立臨時變量,如下圖所示

      第三步:程序編寫,如下圖所示:

      程序編寫完成后,進行編譯,編譯沒有錯誤時,在FC(FC2,FLOWACCUM)中調用該FB塊,最后在OB30中斷塊中調用該FB塊。

      第四步:在FC中調用名字為“Totalizer”的FB塊,并對輸入輸出參數賦值,如下圖所示

      再在OB30中調用功能塊,OB30中斷塊是循環中斷塊,循環時間為100ms,如下圖所示

      雙擊循環中斷OB30中斷塊,在中斷塊中調用FC2(FLOWACCUM)功能塊,如下圖所示

      程序解讀:

      變量定義:

      變量名:Reset,數據類型:Bool,作用:累積清零

      變量名:Accum,數據類型:Real,作用:存儲累積值

      變量名:Total,數據類型:Real,作用:存放累計值

      變量名:Intervall,數據類型:TIME,作用:流量單位中的時間,如m3/h,則:變量為1h=3600s,變量單位:秒

      變量名:Intervall_DInt,數據類型:Dint,作用:存儲Intervall轉換為Dint數據類型后的值

      變量名:Intervall_Real,數據類型:Real,作用:存儲Intervall_DInt轉換為Real數據類型后的值

      變量名:Cycle,數據類型:TIME,作用:存儲程序循環時間,單位:秒

      變量名:Cycle_DInt,數據類型:Dint,作用:存儲Cycle轉換為Dint數據類型后的值

      變量名:Cycle_Real,數據類型:Real,作用:存儲Cycle_DInt轉換為Real數據類型后的值

      程序代碼:

      IF #Reset = true THEN //條件為真時

      #Accum := 0.000000e000; //累積清零

      #Total := 0.000000e000; //累積清零

      ELSE

      #Intervall_DInt := TIME_TO_DINT(#Intervall);//將時間型變量Intervall轉換為雙整型數據,并存在變量中

      #Intervall_Real := DINT_TO_REAL(#Intervall_DInt);//將雙整型數據轉換為實型數據,并存在變量中

      #Cycle_DInt := TIME_TO_DINT(#Cycle);//將時間型變量Cycle轉換為雙整型數據,并存在變量中,本例為0.1s

      #Cycle_Real := DINT_TO_REAL(#Cycle_DInt);//將雙整型數據轉換為實型數據,并存在變量中

      #Accum := ((#Value * #Cycle_Real) / #Intervall_Real) + #Accum;//累積計算

      #Total := #Accum; //Kopiere Ergebnis nach #Total / Copy result to #Total.//累計值傳遞

      END_IF;

      亚洲欧洲精品天堂在线会员_免费无码一区二区三区_国产白丝喷水娇喘视频_色综合久久久久综合体桃花网
      <strong id="gpode"></strong>
    2. <ruby id="gpode"><table id="gpode"></table></ruby>

      <strong id="gpode"><pre id="gpode"><form id="gpode"></form></pre></strong>
      <ruby id="gpode"></ruby>
      1. <ruby id="gpode"></ruby>