| 注冊| 產(chǎn)品展廳| 收藏該商鋪

行業(yè)產(chǎn)品

當前位置:
西門子plc模塊代理商>>技術文章>>西門子S7-1500 模擬量模塊讀取數(shù)據(jù)程序編寫

西門子S7-1500 模擬量模塊讀取數(shù)據(jù)程序編寫

閱讀:535        發(fā)布時間:2024-5-23

模擬量模塊工作的基本原理是:通過模數(shù)轉換器(A-D轉換),將模擬量信號轉換成數(shù)字量信號。并且以二進制補碼的形式表示,占用兩個字節(jié),共16位,最高位為符號位。

16位二進制補碼表示的數(shù)值范圍是-32768~+32767,但模塊的測量范圍卻不與數(shù)值范圍相同。

測量范圍為-27648~+27648,比如測量的電壓為±10V,那么對應關系就是:

  • -10V=-27648

  • +10V=+27648

數(shù)值范圍測量范圍的不同,可以表示當傳感器輸入信號超限的數(shù)據(jù),這樣CPU就能對故障進行診斷。

下表是輸入信號與轉換的數(shù)字值之間的對應關系:

圖片

圖片

1、模擬量值的規(guī)范化

無論外部的信號是什么(溫度、壓力、流量、速度),這些信號經(jīng)模塊轉換后都用-27648~+27648范圍的整數(shù)表示,這個整數(shù)沒有單位,更不容易記憶。

我們在程序中使用模擬量時,如果程序中的數(shù)值和實際中的情況一致,那么將會更加方便。把無意義的數(shù)值轉換成有實際意義的數(shù)據(jù),就是模擬量的規(guī)范化。

2、SCALE指令

在經(jīng)典STEP7軟件中通過庫的方式,提供規(guī)范化程序模塊,在博途中把這些常用的功能塊做成了指令。

SCALE指令就相當于經(jīng)典STEP7中的FC105,用法相同。

示例:利用壓力傳感器通過4-20mA信號,采集壓力值,壓力變送器量程0~0.6MPa,如果利用SCALE指令采集模擬量數(shù)據(jù),如下圖所示:

圖片

  • IN:模擬量數(shù)據(jù)地址,在硬件組態(tài)中可查到具體地址,以%IW開頭(與經(jīng)典STEP7不同)。

  • HI_LIM:量程上限,本示例為壓力變送器上限程0.6,數(shù)據(jù)類型為浮點數(shù)。

  • LO_LIM:量程下限,本示例為壓力變送器上限程0.0,數(shù)據(jù)類型為浮點數(shù)。

  • RET_VAL:錯誤代碼,當轉換出錯時可根據(jù)代碼提示查找錯誤。

  • OUT:轉換值,通過指令規(guī)范化后的實際值,數(shù)據(jù)類型為浮點數(shù)。

  • BIPOLAR:極性選擇,0=單極性,1=雙極性。

除了利用SCALE指令進行數(shù)據(jù)轉換,當然你也可以自己利用數(shù)學方法,構造出轉換程序,博途中提供很方便的指令。

但是不建議這么做,既然有了SCALE指令再去自己寫算法,顯然這么做很浪費精力。這些指令經(jīng)過了多次驗證,肯定不會出問題,自己編寫的程序,容易出差錯。

在博途中增加了縮放SCALE_XNORM_X標準化兩個指令,也可以通過這兩個指令進行規(guī)范化,但要比SCALE指令復雜點,可以試著自己編寫。

3、循環(huán)采集

對于模擬量信號,在短時間內(nèi)不會出現(xiàn)很大的波動,沒必要在主程序中每個周期都掃描采集,可以利用循環(huán)中斷,實現(xiàn)固定時間間隔進行采樣。

新建一個組織塊,類型選擇為Cyclic interrupt(循環(huán)中斷),如下圖所示:

圖片

上圖中的時間間隔單位是μs,數(shù)值范圍250~60000000(250μs~60s)

把我們編寫的模擬量采集程序塊,拖拽到循環(huán)中斷OB30中,即可實現(xiàn)每隔500ms對模擬量進行一次采樣。

圖片


收藏該商鋪

登錄 后再收藏

提示

您的留言已提交成功!我們將在第一時間回復您~
二維碼 意見反饋
在線留言