將PLC存儲器視為帶有抽屜的柜子,稱為寄存器。數據保存在這些寄存器中。這些寄存器有不同的大小,并保存不同類型的數據。
位:可以具有值1或0. 1通常表示開,而0表示關。位是所有其他類型數據的構建塊。
整數:整數(無小數點)。調用:Characters(char),Integers(int),long Integers(long int)或Words。查找位大小以及它們是有符號還是無符號。無符號是正數,而有符號是正數或負數。
浮點數:帶小數點的數字,可以是正數或負數。它們被稱為浮點數(浮點數),其較大的變量稱為雙浮點數。
類型 | #位 | 符號/無符號 | 最低價值 | 最大價值 |
---|---|---|---|---|
位 | 1 | 0 | 1 | |
詮釋 | 8 | 簽 | -128 | 127 |
無符號 | 0 | 255 | ||
16 | 簽 | -32,768 | 32,767 | |
無符號 | 0 | 65,535 | ||
32 | 簽 | 2,147,483,648 | 2,147,483,647 | |
無符號 | 0 | 4,294,967,295 | ||
浮點 | 32 | 1.175 E-38 | 3.403 E + 38 | |
64 | 2.225 E-308 | 1.798 E + 308 |
地址/標簽:寄存器全部并排堆放在PLC的存儲器中。每個位置都有一個地址,讓PLC知道您正在談論的數據。較舊的PLC軟件要求用戶通過該地址引用數據(例如“x1023”可能意味著1023的寄存器)。一些較新的軟件使地址透明。用戶為一段數據命名(例如“Oven2Temperature”),PLC會跟蹤寄存器的位置。如果軟件使用地址來引用數據,它稱為“基于地址”,如果它使用命名數據,則稱為“基于標記”。一些編程包是基于地址的,但允許地址具有“昵稱”或類似的東西。它們優于標準的基于地址的系統的優勢往往是有限的。隨著程序的增長,基于標簽的系統的優勢變得明顯,并記住x1023中存儲的內容變得困難。如果您的程序使用基于標簽的系統會有任何復雜性,則可以簡化設計。
潛水更深
數據類型內部:如前所述,所有數據類型都由位(1和0)組成。寫入一個8位數字,如bbbbbbbb(其中“b”可以表示0或1),因此您可能有00000000,111111111或01011110 .... 任何組合都會這樣做。這些比特的含義取決于數據類型。
無符號整數:最不重要的位是最右邊的位,每個位置左移兩倍。最右邊的位是1,它的值是左邊的下一位2 4 8 16 32 64 128 256 ......(這與數據類型要求的位數一樣多)。這是無符號8位整數的樣子:
如果所有8位都是0(00000000)那么我們得到0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 = 0
如果所有8位都是1(11111111)那么我們得到128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255
因此8位無符號整數的范圍是0 - 255
介于兩者之間的一個例子(00110101)0 + 0 + 32 + 16 + 0 + 4 + 0 + 1 = 53
簽名整數:他們有點復雜,查看維基百科的文章 2贊美一個良好的探索。
十六進制格式(十六進制):不是將每個位寫出,而是將4位組合在一起。每個組的值可以為0 - 15,這會導致問題,因為我們的數字系統從0到9,因此我們還使用A,B,C,D,E和F來獲得總共16個值。(0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F)
十六進制的示例1001 0011 1111 0010將是93F2
為了清楚我們正在使用Hex格式,我們在數字的開頭加上'0x',所以我們的最后一個例子將被寫為0x93F2
字符:(通常為8位無符號整數)通常用于表示字母或符號。示例:您可以使用它們在操作面板上顯示文本。使用ASCII表查看值如何映射到符號。
浮點數中的位數如何呢?它們是如何突破的?它有點復雜,我不想在本教程中深入研究它。作為PLC用戶,您不太可能需要知道它們的位如何轉換為值,因此不必擔心它。