一、錯誤分析
在《S7-300PLC之旅——模擬量輸入、輸出標準化FC105、FC106》一文中,錯誤出現(xiàn)在以PT100鉑熱電阻為例,煞有介事的講起了FC105的上限值HI_LIM和下限值LO_LIM的整定中去了。這個過程中,駝子犯了兩個錯誤:
1、HI_LIM、LO_LIM根本無需整定,它們只需根據(jù)程序的控制需要給定合適的值即可;
2、模擬量的輸入,比如PT100在經(jīng)過模擬量輸入模塊時,會根據(jù)硬件配置按照1:10標準型或1:100氣候型做轉換,然后再送給CPU進行數(shù)據(jù)處理。具體模擬量的采集和處理,駝子將在專門的一篇文章中探討。
二、FC105的用法
FC105是專門處理模擬量的。在實際的工程中,各種模擬量,如:壓力、溫度、流量、位移等都采用各種各樣的傳感器進行測量。傳感器會輸出標準的電壓、電流、溫度、電阻等信號供PLC采集,經(jīng)由模擬量輸入模板將這些信號轉換成數(shù)字量——整型數(shù)INTERGET。但在PLC內(nèi)部處理這些數(shù)據(jù)時,又需要將整型數(shù)轉換成實際的物理值(實型數(shù)),F(xiàn)C105就是用來完成從整型數(shù)到實數(shù)的轉換的。
FC105除了EN、ENO外,還有四個輸入變量和兩個輸出變量,如下表:
下面,我們利用仿真功能,來分別測試各個輸入變量的用法。
1、BIPOLAR
如圖1、圖2分別為BIPOLAR=1和BIPOLAR=0時,輸入和輸出的關系??梢?,當BIPOLAR=1時,其可轉換值的范圍為(-27648,27648),而BIPOLAR=0時,轉換值的范圍為(0,27648)。由于轉換范圍不同,因而兩種情況下,同一個輸入值,對應的輸出就不一定相同了,比如圖1、圖2中,在HI_LIM、LO_LIM均一樣,且輸入IN都為0時,圖1的輸出為50,而圖2的輸出為0。
圖1 BIPOLAR=1
圖2 BIPOLAR=0
BIPOLAR該設為0還是1,應該由傳感器送來的模擬量有關,如送來的是壓力等只在一個方向變化的值,則最好將BIPOLAR設為0;而若送來的是位移值,由于位移有正位移、有負位移,因此可將BIPOLAR設為1。
2、HI_LIM、LO_LIM
下面我們在BIPOLAR=0時,來探究HI_LIM和LO_LIM的作用,如圖3所示??梢?,當HI_LIM=100,LO_LIM=0時,F(xiàn)C105的轉換范圍是(0,100),而HI_LIM=1000,LO_LIM=0時,F(xiàn)C105的轉換范圍是(0,1000)。
圖3 HI_LIM設定不同值
可見,HI_LIM、LO_LIM定義了FC105輸出端OUT輸出值的范圍,在BIPOLAR=0時,輸入端(0,27648)這個范圍的值將被轉換成實數(shù),并“壓縮”到(LO_LIM,HI_LIM)的范圍內(nèi);同理,BIPOLAR=1時,將輸入端范圍(-27648,27648)的值“壓縮”到(LO_LIM,HI_LIM)的范圍內(nèi)。
同時,不同的(LO_LIM,HI_LIM)范圍,輸入端加1,輸出端的轉換“步長”也不同。如當IN=0時,OUT均為1;而當IN=1時,(LO_LIM,HI_LIM)不同時的輸出如圖4。可見,當HI_LIM=100時,“步長”為0.0036;當HI_LIM=1000時,“步長”為0.036;當HI_LIM=1000時,“步長”為0.0398。
圖4 HI_LIM設定不同值
其實,“步長”很好確定,以BIPOLAR=0為例,它是將(LO_LIM,HI_LIM)這個數(shù)字范圍平均分成27648分,所以:
“步長”=(HI_LIM - LO_LIM)/27648
在STEP7中,F(xiàn)C105用于將模擬輸入變量值整定到(LO_LI,HI_LIM)所指定的標尺范圍內(nèi),標尺的最小刻度為“步長”值,即(HI_LIM - LO_LIM)/27648。
小結
事實證明,我們遇見不十分確定的事情時,千萬不能想當然,否則會犯了和駝子一樣的錯誤。在學習PLC編程時也是如此,在遇到不太熟悉的邏輯塊時,我們一定要認真閱讀幫助文本,并且可以自己編寫一段測試程序,利用仿真工具進行仿真測試,幫助我們理解邏輯塊的正確用途。
聯(lián)系客服