今天,和一個同事討論模擬量模塊的問題,他在程序編寫上遇到了一些麻煩,監控S7-300模擬量模塊讀數不變化,怎么折騰都讀數是32767。
盡管模擬量模塊大家都很熟悉,但是類似的問題還經常出現。翻了翻手邊的資料,似乎沒有系統講解這個問題的,于是把自己的經驗歸納總結一下。既然是經驗,還是把它寫出來和大家分享一下吧。看完故事后,想必大家就會對模擬量接線的問題迎刃而解 。
在我看來,想解決這樣的問題,最根本的是要抓住一點。有的同學可能迫不及待地想知道哪一點,但是這一點涉及的知識面還是有些寬。平時也忙,我會斷斷續續的寫,大家耐心看完這個系列,就可以抓住這一點了。
關于讀不出值的問題,如果總是32767沒有變化,其實值已經有了,只不過是超量程了。如果值為0,那就要注意模擬量是否有問題了,使用萬用表測量現場信號并沒有超限。為什么會出現這兩種現象呢?這是因為選擇的參考電位不同,例如,現場過來的信號為5V,那首先要問一下,基準點是幾伏?10~15是5V,-10~ -5同樣也是5V,如果測量端基準點是0V,那么測量就會有問題,所以一定要保證兩端等電位。模擬量模塊的基準電位點就是MANA ,所有的接線都與之有關。 在接下來的故事中,咱們就仔細講講接線的問題。
這里的隔離是指模擬量模塊的基準電位點MANA 與地(也是PLC的數據地)隔離。
隔離模塊MANA 與地M可以不連接,以MANA 作為測量端的參考電位;非隔離模塊MANA 與地M必須連接, 這樣地M 變為MANA作為測量端的參考電位。
隔離模塊的好處就是可以避免共模干擾。如何知道模塊是否是隔離模塊,例如SM331模塊,可以從模板規范中查到。S7-300中只有一款SM334(SM355除外)模塊是非隔離的,此外CPU31XC集成的模擬量也是非隔離的,共同特點就是模塊的輸出和輸入公用M端。
同樣傳感器也有隔離與非隔離的問題。通常非隔離的傳感器電源的負端與信號的負端公用一個端子,例如傳感器有三個端子 L, M 和S+,通過L, M端子向傳感器供電,S+,M為信號的輸出,公用M端。判斷傳感器是否隔離最好還是參考手冊。隔離傳感器信號負端與地M可以不連接,以信號負端作為信號源端的參考電位。非隔離傳感器信號負端必須在源端(設備端)接地,以源端的地作為信號的參考電位。
下面就是如何保證測量端與信號源端等電位接線的問題。在下面建議的連接圖中所用的縮寫詞和助記符含義如下:
M +: 測量導線(正)
M -: 測量導線(負)
MANA: 模擬量模塊基準電位點
這里需要注意MANA ,不同的接線方式都是以MANA 為參考基準電位。
M: 接地端子
L +: 24 VDC電源端子
UCM: MANA與模擬量輸入通道之間或模擬量輸入通道之間的電位差
UCM共模電壓,有兩種:
1)不同輸入信號負端的電位差,例如一個輸入信號為3V,另一個輸入信號也為3V,但是它們的基準點電位可能不同,可能是1~4V或3~6V,那么它們之間的共模電壓為2V。
2)輸入信號負端與MANA的電位差。
模塊的UCM 是造成模擬量值超上限的主要原因。不同模塊UCM 的最大值不同。
UISO: MANA和CPU的M端子之間的電位差
|