零基礎學西門子S7-200PLC:大話PLC之 戲說輸入寄存器

這節介紹西門子S7-200PLC的開關量輸入寄存器I(徐達)的構成和編程規則,在以前的課程中我們講過開關量輸入寄存器I(徐達)的手下管理了14名部下,他們分別是(I0.0 I0.1 I0.2 I0.3 I0.4 I0.5 I0.6 I0.7 I1.0 I1.1 I1.2 I1.3 I1.4 I1.5)。但這只是我們看的見的14個,為什麼看的見?因為它們在PLC上都有對應的接線端子,所以我們知道它們是存在的。但事實是,這些只是開關量輸入寄存器I(徐達)手下人員數量的冰山一角,為什麼這麼說呢?請先看

圖1,

零基礎學西門子S7-200PLC:大話PLC之 戲說輸入寄存器

上一節我們講到S7-200PLC的內存中,開關量輸入寄存器I(徐達)一共有16個字節,又因為每一個字節是8位(bit),所以16乘8就是128位(bit) ,128減去那14個等於114。所以還有114名我們看不見的,雖然看不見,但它們都是真實存在的。再看一下圖2你就明白了,黑色的是PLC,那些青色的小方塊就是我們能看的到的每一個位(bit),它們連接著外部的接線端子。

而那些一個個紅色的小方塊就是我們看不到的位(bit)。那這些紅色看不見的位有什麼作用呢?難道是我們的CPU(朱元璋)錢多任性讓他們閒著玩遊戲嗎?老朱可不會這麼好心,它是為我們擴展後面的模塊使用的,當PLC上的這14個人不夠用時,我們就要在PLC的後面加一個擴展模塊,然後擴展模塊上的端子再和這些看不見的位對應起來,就變成了看的見並且可以使用的開關量輸入點了。這是開關量輸入寄存器I在PLC裡的結構形式和功能。下面說一下開關量輸入寄存器I的編程命名規則。

零基礎學西門子S7-200PLC:大話PLC之 戲說輸入寄存器

圖3,是我們對每一個位(bit)進行編程時的命名規則圖,圖中的I0.0就是我們真實的PLC上的第一個接線端子(可以看一下圖2),那麼這個I0.0每一個字符代表什麼意思呢?見圖3,I指的就是輸入寄存器I,如果把I換成Q就是指的輸出寄存器Q,緊接著I後面的第一個0指的是輸入寄存器I的第0個字節(注意這個奇葩的命名,明明它是有16個字節的,第一個字節,它卻非要命名成IB0,命名成IB1多好記呀,但是沒辦法,它說0就必須是0。。。記好了最後一個字節是IB15,可不是IB16。看看圖1就知道了。)

緊接著0後面的是一個“.”,點就是點了,不用解釋了,寫上就行了。點後面又是一個0,它

指的是字節中的第0位(和上面一樣,同樣的奇葩,明明是8個位,自己看吧)。挺簡單吧。舉個例子,如果我們在程序裡寫I1.5,指的就是輸入寄存器 I 的第二個字節(IB1)的第六位(.5),這句話仔細看看。

零基礎學西門子S7-200PLC:大話PLC之 戲說輸入寄存器

圖4,是我們按字節(BYTE)進行編程時的命名規則圖,問題來了,為什麼還要按字節(BYTE)進行編程呢?一個位(bit)一個位(bit)的編程不就行了嗎?恩,是的,對開關量來說是沒問題的,但是你別忘了還有模擬量呀,開關量只要知道0和1就行了。但要是讓你保存一個85度的水的溫度你怎麼保存呢?你總不能用熱和不熱來區分吧,熱的就是85度,不熱的就不是85度,顯然這是不行的。這時我們只要在編程時按字節(BYTE)的命名規則,編一個字節就行了。

圖4就是按字節(BYTE)的命名規則,I指的就是輸入寄存器I, 後面的B 指的就是這是一個字節(BYTE)型的,0指的就是第0個字節。明白了命名規則,我們來看一下IB0能不能存下85這個數,通過前面課程的學習我們知道,1個字節(BYTE)=8個位(bit),也就是說IB0 = “0000 0000”到“1111 1111”中任何一種組合狀態,而85換算成二進制數就是“1010101”,所以放在IB0中是絕對沒有問題的。那麼IB0最大能放一個多大的數呢? 255對吧。怎麼算的呢?要是忘了就看看前面的課程吧。那要是一個大於255的數,在IB0中放不下怎麼辦呢?我們下節接著說。

零基礎學西門子S7-200PLC:大話PLC之 戲說輸入寄存器


分享到:


相關文章: