朗風(fēng)快學(xué)PLC(十) 西門子S7-300的程序使用的數(shù)據(jù)及存儲區(qū)
我們以前講過,西門子PLC常用的三種編程語言是LAD,FBD和STL,今天我們來熟悉一下西門子的存儲區(qū)。二進(jìn)制數(shù)的1位(bit)只能取0和1這兩個不同的值,用來表示開關(guān)量的兩種不同的狀態(tài)。該位的值與線圈、觸點的關(guān)系。ON/OFF,TURE/FALSE。二進(jìn)制常數(shù):2#1111_0110_1001_0001。十六進(jìn)制的16個數(shù)字是0~9和A~F, 每個占二進(jìn)制數(shù)的4位。B#16#,W#16#,DW#16#, W#16#13AF(13AFH)。逢16進(jìn)1,例如B#16#3C=3×16+12=60。BCD碼用4位二進(jìn)制數(shù)表示一位十進(jìn)制數(shù),十進(jìn)制數(shù)9對應(yīng)的二進(jìn)制數(shù)為1001。最高4位用來表示符號,16/32位BCD碼的范圍。BCD碼實際上是十六進(jìn)制數(shù),但是各位之間逢十進(jìn)一。296對應(yīng)的BCD碼為W#16#296,或2#0000 0010 1001 0110。2#0000 0001 0010 1000對應(yīng)的十進(jìn)制數(shù)也是296,對應(yīng)的十進(jìn)制數(shù)為1.位(bit):位數(shù)據(jù)的數(shù)據(jù)類型為BOOL(布爾)型。I3.2的意義。3.字(Word)表示無符號數(shù)。取值范圍為W#16#0000~W#16#FFFF。4.雙字(Double Word)表示無符號數(shù)。范圍DW#16#0000_0000~DW#16#FFFF_FFFF。5.16位整數(shù)(INT,Integer)是有符號數(shù),補碼。最高位為符號位,為0時為正數(shù),取值范圍為-32 768~32 767。6.32位整數(shù)(DINT,Double Integer)最高位為符號位,取值范圍為-2 147 483 648~2 147 483 647。ANSI/IEEE 標(biāo)準(zhǔn)浮點數(shù)占用一個雙字(32位)。例如123.4可表示為1.234*10^2因為規(guī)定尾數(shù)的整數(shù)部分總是為1,只保留尾數(shù)的小數(shù)部分m(0~22位)。用很小的存儲空間(4個字節(jié))可以表示非常大和非常小的數(shù)。PLC輸入和輸出的數(shù)值大多是整數(shù),浮點數(shù)的運算速度比整數(shù)運算的慢。L#為32位雙整數(shù)常數(shù),例如L# +5。P#為地址指針常數(shù),例如P#M2.0是M2.0的地址。S5T#是16位S5時間常數(shù),格式為S5T#aD_bH_cM_dS_eMS。S5T#4S30MS = 4s30ms,取值范圍為S5T#0~S5T#2H_46M_30S_0MS(9990s),時間增量為10ms。C#為計數(shù)器常數(shù)(BCD碼),例如C#250。8位ASCII字符用單引號表示,例如 ‘ABC’。T#為帶符號的32位IEC時間常數(shù),例如T#1D_12H_30M_0S_250MS,時間增量為1ms。DATE是IEC日期常數(shù),例如D#2004-1-15。取值范圍為D#1990-1-1~D#2168-12-31。TOD#是32位實時時間(Time of day)常數(shù),時間增量為1ms,例如TOD#23:50:45.300。B(b1,b2) B(b1,b2, b3,b4)用來表示2個字節(jié)或4個字節(jié)常數(shù)。三 復(fù)合數(shù)據(jù)類型與參數(shù)類型通過組合基本數(shù)據(jù)類型和復(fù)合數(shù)據(jù)類型可以生成下面的數(shù)據(jù)類型:(1) 數(shù)組(ARRAY)將一組同一類型的數(shù)據(jù)組合在一起,形成一個單元。(2) 結(jié)構(gòu)(STRUCT)將一組不同類型的數(shù)據(jù)組合在一起,形成一個單元。(3) 字符串(STRING)是最多有254個字符(CHAR)的一維數(shù)組。(4) 日期和時間(DATE_AND_TIME)用于存儲年、月、日、時、分、秒、毫秒和星期,占用8個字節(jié),用BCD格式保存。星期天的代碼為1,星期一~星期六的代碼為2~7。例如DT#2004-07-15-12:30:15.200為2004年7月15日12時30分15.2秒。(5) 用戶定義的數(shù)據(jù)類型UDT (user-defined data types)。在數(shù)據(jù)塊DB和邏輯塊的變量聲明表中定義復(fù)合數(shù)據(jù)類型。為在邏輯塊之間傳遞參數(shù)的形參(formal parameter,形式參數(shù))定義的數(shù)據(jù)類型:(1) TIMER(定時器)和COUNTER(計數(shù)器):對應(yīng)的實參(actual parameter,實際參數(shù))應(yīng)為定時器或計數(shù)器的編號,例如T3,C21。(2) BLOCK(塊):指定一個塊用作輸入和輸出,實參應(yīng)為同類型的塊。 (3) POINTER(指針):指針用地址作為實參。例如P#M50.0。(4) ANY:用于實參的數(shù)據(jù)類型未知或?qū)崊⒖梢允褂萌我鈹?shù)據(jù)類型的情況,占10個字節(jié)。在掃描循環(huán)開始時,CPU讀取數(shù)字量輸入模塊的輸入信號的狀態(tài),并將它們存入過程映像輸入(process image input,PII)中。在掃描循環(huán)中,用戶程序計算輸出值,并將它們存入過程映像輸出表(process image output,PIQ)。在循環(huán)掃描結(jié)束時將過程映像輸出表的內(nèi)容寫入數(shù)字量輸出模塊。I和Q均以按位、字節(jié)、字和雙字來存取,例如I0.0, IB0, IW0和ID0。2.內(nèi)部存儲器標(biāo)志位(M)存儲器區(qū)計數(shù)值(0~999)可以用二進(jìn)制或BCD碼方式讀取。5.共享數(shù)據(jù)塊(DB)與背景數(shù)據(jù)塊(DI)DB為共享數(shù)據(jù)塊,DBX2.3,DBB5,DBW10和DBD12。DI為背景數(shù)據(jù)塊,DIX, DIB,DIW和DID。外設(shè)輸入(PI)和外設(shè)輸出(PQ)區(qū)允許直接訪問本地的和分布式的輸入模塊和輸出模塊。可以按字節(jié)(PIB或PQB)、字(PIW或PQW)或雙字(PID或PQD)存取,不能以位為單位存取PI和PO。累加器用于處理字節(jié)、字或雙字的寄存器。S7-300有兩個32位累加器(ACCU1和ACCU2),S7-400有4個累加器(ACCU1~ACCU4)。數(shù)據(jù)放在累加器的低端(右對齊)。首次檢測位/FC, 邏輯運算結(jié)果(RLO);OR位暫存邏輯“與”的操作結(jié)果(先與后或);算術(shù)運算或比較指令執(zhí)行時出現(xiàn)錯誤,溢出位OV被置1。OV位被置1時溢出狀態(tài)保持位OS位也被置1,OV位被清0時OS仍保持為1,用于指明前面的指令執(zhí)行過程中是否產(chǎn)生過錯誤。條件碼 1(CC1)和條件碼0(CCO)綜合起來用于表示在累加器1中產(chǎn)生的算術(shù)運算或邏輯運算的結(jié)果與0的大小關(guān)系、比較指令的執(zhí)行結(jié)果或移位指令的移出位狀態(tài)。二進(jìn)制結(jié)果位(BR)在一段既有位操作又有字操作的程序中,用于表示字操作結(jié)果是否正確。在梯形圖的方框指令中,BR位與ENO有對應(yīng)關(guān)系,用于表明方框指令是否被正確執(zhí)行:如果執(zhí)行出現(xiàn)了錯誤,BR位為0,ENO也為 0;如果功能被正確執(zhí)行,BR位為 1,ENO也為 1。3.?dāng)?shù)據(jù)塊寄存器:DB和DI寄存器分別用來保存打開的共享數(shù)據(jù)塊和背景數(shù)據(jù)塊的編號。
以上就是西門子300系列的所有數(shù)據(jù)類型,對于新人來說一部分?jǐn)?shù)據(jù)還用不上,其實這些數(shù)據(jù)每一個都是有很大作用的,隨著課程的慢慢講解,這些知識點慢慢都會呈現(xiàn)出來。關(guān)注我
輕松學(xué)習(xí)電氣知識
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點擊舉報。