今天在正式開始之前說一點感想,通過觀察這幾天的閱讀量,我發(fā)現(xiàn)不太重要的知識閱讀的人反而多,越是重要的知識點,閱讀的人反而越少了,我不知道是大家真的都明白了,還是覺得PLC的內存和寄存器沒什么要學習的。如果你真的已經掌握了,那就是再好不過的事了。但如果你沒掌握,而又真的想學好(注意是想學好,而不是只想學)PLC,我希望大家一定要把PLC的內存和寄存器學明白。這個真的很重要。好了,就說這么多。
這一節(jié)接著講述S7-200PLC輸入寄存器,上一節(jié)我們講到了,輸入寄存器IB0的命名規(guī)則和使用方法,我們知道IB0最大只能存放0-255范圍內的256個數。如果再大點的數該往哪里存放呢?比如789這個數。接下來我們做詳細介紹。
我們先看一張寫好的程序的圖片,看看我們講的寄存器在程序中是個什么樣子,如圖1,這段程序實現(xiàn)的功能是(第一行)當PLC的外部接線端子I0.0接通后,首先把456這個數放到IW0這個輸入寄存器中,然后再把789這個數放到IW2這個輸入寄存器中,(第二行)接著把IW0和IW2相加,也就是456+789,然后把計算結果放在IW4中。這樣IW4中的數據就是456+789=1245。這個程序能看懂它的意思就行了,不用太深究。重點是IW0這個輸入寄存器是怎么放得下456這個數的。
圖1
接下是來看圖2,這就是輸入寄存器IW0的命名規(guī)則,同樣的I指的是什么就不用多說了,大家都知道。W指的是數據類型是字(WORD)型的,0指的就是從第0個字節(jié)開始,開始后到哪一個字節(jié)結束呢?到第一個結束,即IW0包含(IB0和IB1兩個字節(jié))。IW2就包含(IB2和IB3兩個字節(jié))。為什么包含兩個字節(jié)呢?我們以前學過,字(WORD)型的數據類型是16位的,IB0和IB1兩個字節(jié)正好是16位。
所以IW0=“00000000 00000000”到“11111111 11111111”換算成十進制就是“0--65535”。再回到圖1的問題,我們看到IW0放456這個數完全沒有問題的。同樣的IW4放1245也沒問題。
圖2
接下是來就是ID0了,它和上面IW0的命名規(guī)則是一樣的,不一樣的地方就是,ID0的數據類型是雙字(DWORD)型的,包含4個字節(jié)(IB0,IB1,IB2,IB3),是32位的。它的數據范圍更大“0--4294967295”可以放的下40多億的數。具體程序和命名規(guī)則看圖3,圖4
圖3
圖4
說明一下,雙字(DWORD)型是PLC所能處理的最大的數據類型(32位)了,再大的就沒有了。當然了,還有雙整形(DINT)和實數型(REAL),但它們也都是32位的,只不過它們可以表示,有符號的和帶小數點的數罷了,但都是用“D”來表示。
好了,總結這兩節(jié)所講,,可以得出如圖5。可見編寫西門子S7-200 PLC的程序,就是編寫圖5上的這些類型。例如:(按位的I0.0 I0.6 Q1.2 M12.4 V1200.3)(按字節(jié)的IB0 QB1 MB8 VB500)(按字的IW0 MW4 VW1002)(按雙字的ID0 MD4 VD80)等。如果你能看明白,說明這兩節(jié)講的你已經掌握了,可以接著往下學習了。下節(jié)可能 通過一個實例講講怎么編程。(本文作者:大話工控)
圖5