1 | 題目
編寫程序?qū)崿F(xiàn)根據(jù)功率kW來計算電能的累加值kWh(度)。
2 | 設計分析
用循環(huán)中斷讀取功率kW即用電速度并進行累加求和。
3 | 創(chuàng)建功能或功能塊
創(chuàng)建功能塊FB,命名為“Totalizer”。
4 | 定義接口變量
具體接口變量定義見下圖:
定義浮點數(shù)變量value:某個時間段內(nèi)的測量值,單位:米、升等。
定義時間變量interval:測量時間段,單位:秒、分等。value是對應interval時間段內(nèi)的值。value與interval的比值即為速度(m/s)、流量(l/m)等。
定義時間變量cycle:采樣掃描時間,即循環(huán)中斷的時間。
定義布爾變量reset:復位累加值。
5 | 程序代碼
編寫程序代碼。如下圖:
注意時間類型變量interval和cycle必須進行TIME_TO_DINT的數(shù)據(jù)轉(zhuǎn)換從而統(tǒng)一單位。盡管輸入的實參interval單位為小時而實參cycle為毫秒也沒有關系,最終均被統(tǒng)一單位為毫秒。
6 | 代碼測試
在循環(huán)中斷OB中調(diào)用FB-“Totalizer”。 循環(huán)中斷時間為100ms,即每過100ms進行采樣累加得到計算結(jié)果。如下圖:
假設用電設備功率為6.0kW,那么1小時的用電量為6.0kWh。輸入實參6.0kWh(用焦耳J換算可能更容易理解)給value、輸入實參t#1h給interval。value/interval為單位時間的變量值,例如:速度、流量等,此處為功率。
在線監(jiān)控。如下圖:
大約10分鐘后的電量累加值為1.038612kWh。
7 | 總結(jié)
學習IF..ELSE語句;
學習組合賦值運算符的使用;
學習循環(huán)中斷組織塊OB的使用方法;
學習在OB中調(diào)用FB和實參的傳遞方式。
- END -
-
功率
+關注
關注
14文章
2100瀏覽量
71440 -
程序
+關注
關注
117文章
3825瀏覽量
82611 -
編寫
+關注
關注
0文章
29瀏覽量
8592 -
kwh
+關注
關注
0文章
4瀏覽量
1634
發(fā)布評論請先 登錄
Keil C51庫函數(shù)參考
stm32下標準庫函數(shù)與HAL庫函數(shù)編程方式的差異

基于標準庫函數(shù)與基于HAL庫函數(shù)的stm32編程方式對比

評論