PLC S7-300400的編程語言與指令系統(tǒng).doc_第1頁
PLC S7-300400的編程語言與指令系統(tǒng).doc_第2頁
PLC S7-300400的編程語言與指令系統(tǒng).doc_第3頁
PLC S7-300400的編程語言與指令系統(tǒng).doc_第4頁
PLC S7-300400的編程語言與指令系統(tǒng).doc_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

S7-300/400的編程語言與指令系統(tǒng)3.1 S7-300/400的編程語言3.1.1 PLC編程語言的國際標(biāo)準(zhǔn)IEC 61131是PLC的國際標(biāo)準(zhǔn),19921995年發(fā)布了IEC 61131標(biāo)準(zhǔn)中的14部分,我國在1995年11月發(fā)布了GB/T 15969-1/2/3/4(相當(dāng)于IEC 61131-1/2/3/4)。IEC 61131-3廣泛地應(yīng)用PLC、DCS和工控機(jī)、“軟件PLC”、數(shù)控系統(tǒng)、RTU等產(chǎn)品。定義了5種編程語言1) 指令表IL(Instruction list):西門子稱為語句表STL。2) 結(jié)構(gòu)文本ST(Structured text):西門子稱為結(jié)構(gòu)化控制語言(SCL)。3) 梯形圖LD(Ladder diagram):西門子簡稱為LAD。4) 功能塊圖FBD (Function block diagram)。5) 順序功能圖SFC(Sequential function chart):對應(yīng)于西門子的S7 Graph。3.1.2 STEP 7中的編程語言梯形圖、語句表和功能塊圖是3種基本編程語言,可以相互轉(zhuǎn)換。 1順序功能圖(SFC) :STEP 7中的S7 Graph2梯形圖(LAD)直觀易懂,適合于數(shù)字量邏輯控制?!澳芰鳌?Power flow)與程序執(zhí)行的方向。3. 語句表(STL):功能比梯形圖或功能塊圖強(qiáng)。4功能塊圖(FBD):“LOGO!”系列微型PLC使用功能塊圖編程。5結(jié)構(gòu)文本(ST):STEP 7的S7 SCL(結(jié)構(gòu)化控制語言)符合EN 61131-3標(biāo)準(zhǔn)。SCL適合于復(fù)雜的公式計算、復(fù)雜的計算任務(wù)和最優(yōu)化算法,或管理大量的數(shù)據(jù)等。6S7 HiGraph 編程語言圖形編程語言S7 HiGraph 屬于可選軟件包,它用狀態(tài)圖(state graphs)來描述異步、非順序過程的編程語言。7S7 CFC 編程語言可選軟件包CFC(Continuous Function Chart,連續(xù)功能圖)用圖形方式連接程序庫中以塊的形式提供的各種功能。8編程語言的相互轉(zhuǎn)換與選用在STEP 7編程軟件中,如果程序塊沒有錯誤,并且被正確地劃分為網(wǎng)絡(luò),在梯形圖、功能塊圖和語句表之間可以轉(zhuǎn)換。如果部分網(wǎng)絡(luò)不能轉(zhuǎn)換,則用語句表表示。語句表可供喜歡用匯編語言編程的用戶使用。語句表的輸入快,可以在每條語句后面加上注釋。設(shè)計高級應(yīng)用程序時建議使用語句表。梯形圖適合于熟悉繼電器電路的人員使用。設(shè)計復(fù)雜的觸點電路時最好用梯形圖。功能塊圖適合于熟悉數(shù)字電路的人使用。S7 SCL編程語言適合于熟悉高級編程語言(例如PASCAL或C語言)的人使用。S7 Graph、HiGraph和CFC可供有技術(shù)背景,但是沒有PLC 編程經(jīng)驗的用戶使用。S7 Graph對順序控制過程的編程非常方便,HiGraph適合于異步非順序過程的編程,CFC適合于連續(xù)過程控制的編程。3.2 S7-300/400 CPU的存儲區(qū)3.2.1 數(shù)制 1二進(jìn)制數(shù)二進(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。2十六進(jìn)制數(shù)十六進(jìn)制的16個數(shù)字是09和AF, 每個占二進(jìn)制數(shù)的4位。B#16#,W#16#,DW#16#,W#16#13AF(13AFH)。逢16進(jìn)1,例如B#16#3C3161260。表3-1 不同進(jìn)制的數(shù)的表示方法十進(jìn)制數(shù)八進(jìn)制數(shù)十六進(jìn)制數(shù)二進(jìn)制數(shù)BCD碼0123456789101112131415161701234567101112131415161720210123456789ABCDEF10110000000001000100001100100001010011000111010000100101010010110110001101011100111110000100010000 00000000 00010000 00100000 00110000 01000000 01010000 01100000 01110000 10000000 10010001 00000001 00010001 00100001 00110001 01000001 01010001 01100001 01113BCD碼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ù)為。3.2.2 基本數(shù)據(jù)類型1位(bit):位數(shù)據(jù)的數(shù)據(jù)類型為BOOL(布爾)型。I3.2的意義。2字節(jié)(Byte)3字(Word)表示無符號數(shù)。取值范圍為W#16#0000W#16#FFFF。4雙字(Double Word)表示無符號數(shù)。范圍DW#16#0000_0000DW#16#FFFF_FFFF。516位整數(shù)(INT,Integer)是有符號數(shù),補(bǔ)碼。最高位為符號位,為0時為正數(shù),取值范圍為-32 76832 767。632位整數(shù)(DINT,Double Integer)最高位為符號位,取值范圍為-2 147 483 6482 147 483 647。圖3-6 字節(jié)、字和雙字732位浮點數(shù)浮點數(shù)又稱實數(shù)(REAL),表示為1.m ,例如123.4可表示為1.234 。指數(shù)E是有符號數(shù)。根據(jù)ANSI/IEEE標(biāo)準(zhǔn)浮點數(shù)1.m 式中指數(shù)e = E +127(1 e 254),為8位正整數(shù)。ANSI/IEEE 標(biāo)準(zhǔn)浮點數(shù)占用一個雙字(32位)。因為規(guī)定尾數(shù)的整數(shù)部分總是為1,只保留尾數(shù)的小數(shù)部分m(022位)。浮點數(shù)的表示范圍為1.175495 3.402 823 1038。圖3-7 浮點數(shù)的結(jié)構(gòu)用很小的存儲空間(4個字節(jié))可以表示非常大和非常小的數(shù)。PLC輸入和輸出的數(shù)值大多是整數(shù),浮點數(shù)的運(yùn)算速度比整數(shù)運(yùn)算的慢。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#0S5T#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。DATE是IEC日期常數(shù),例如D#2004-1-15。取值范圍D#1990-1-1D#2168-12-31。TOD#是32位實時時間(Time of day)常數(shù),例如TOD#23:50:45.300。B(b1,b2)、B(b1,b2,b3,b4)用來表示2個字節(jié)或4個字節(jié)常數(shù)。3.2.3 復(fù)合數(shù)據(jù)類型與參數(shù)類型1復(fù)合數(shù)據(jù)類型通過組合基本數(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格式保存。星期天、星期一星期六的代碼為17。例如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ù)類型。2參數(shù)類型為在邏輯塊之間傳遞參數(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é)。3.2.5 系統(tǒng)存儲器1過程映像輸入/輸出(I/Q)在掃描循環(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。與直接訪問I/O模塊相比有延遲,在一個掃描周期內(nèi)I/O保持不變,比訪問模塊更快。6外設(shè)I/O區(qū)(PI/PO)外設(shè)輸入(PI)和外設(shè)輸出(PQ)區(qū)允許直接訪問本地的和分布式的輸入模塊和輸出模塊。可以按字節(jié)(PIB或PQB)、字(PIW或PQW)或雙字(PID或PQD)存取,不能以位為單位存取PI和PO。2內(nèi)部存儲器標(biāo)志位(M)存儲器區(qū)3定時器(T)存儲器區(qū)時間值可以用二進(jìn)制或BCD碼方式讀取。4計數(shù)器(C)存儲器區(qū)計數(shù)值(0999)可以用二進(jìn)制或BCD碼方式讀取。5共享數(shù)據(jù)塊(DB)與背景數(shù)據(jù)塊(DI)DB為共享數(shù)據(jù)塊,DBX2.3、DBB5、DBW10和DBD12。DI為背景數(shù)據(jù)塊,DIX3.5、DIB2、DIW4和DID6。3.2.6 CPU中的寄存器1累加器(ACCUx)累加器用于處理字節(jié)、字或雙字的寄存器。S7-300有兩個32位累加器(ACCU1和ACCU2),S7-400有4個累加器(ACCU1ACCU4)。數(shù)據(jù)放在累加器的低端(右對齊)。2狀態(tài)字寄存器(16位)首次檢測位/FC, 邏輯運(yùn)算結(jié)果(RLO);狀態(tài)位STA不能用指令檢測;OR位暫存邏輯“與”的操作結(jié)果(先與后或);圖3-9 狀態(tài)字的結(jié)構(gòu)算術(shù)運(yùn)算或比較指令執(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ù)運(yùn)算或邏輯運(yùn)算的結(jié)果與0的大小關(guān)系、比較指令的執(zhí)行結(jié)果或移位指令的移出位狀態(tài)。二進(jìn)制結(jié)果位(BR)對應(yīng)于梯形圖中的ENO,在一段既有位操作又有字操作的程序中,用于表示字操作結(jié)果是否正確。在梯形圖的方框指令中,BR位與ENO輸出的能流有對應(yīng)關(guān)系,用于表明方框指令是否被正確執(zhí)行:如果執(zhí)行出現(xiàn)了錯誤,BR位為0,ENO也為 0;如果功能被正確執(zhí)行,BR位為 1,ENO也為 1。將下圖轉(zhuǎn)換為語句表時,將會出現(xiàn)“A BR”指令。A( A I 0.1 JNB _001 L MW 2 T MW 4 SET /RLO置1 SAVE /RLO保存到BR CLR /RLO清零_001: A BR ) JNB _002 L IB 2 T IB 8_002: NOP 03數(shù)據(jù)塊寄存器:DB和DI寄存器分別用來保存打開的共享數(shù)據(jù)塊和背景數(shù)據(jù)塊的編號。3.3 位邏輯指令位邏輯指令用于二進(jìn)制數(shù)的邏輯運(yùn)算。位邏輯運(yùn)算的結(jié)果簡稱為RLO。3.3.1 觸點指令1. 觸點與線圈A(And,與)指令來表示串聯(lián)的常開觸點。O (Or,或)指令來表示并聯(lián)的常開觸點。AN (And Not,與非)來表示串聯(lián)的常閉觸點。ON (Or Not)來表示并聯(lián)的常閉觸點。輸出指令“=”將RLO寫入地址位,與線圈相對應(yīng)。A(A I 0.0AN I 0.1O I 0.2) A I 0.3ON C 5= L 20.0A L 20.0= Q 4.3A L 20.0= Q 4.4A L 20.0AN I 3.4= Q 4.6L20.0是局域變量。將梯形圖轉(zhuǎn)換為語句表時,局域變量L20.0是自動分配的。A*B+C*D=Q (A+B)*(C+D)=Q4中線輸出指令 下面是圖3-14(b)中第一行對應(yīng)的語句表。 A I0.0AN I0.1= M0.1A M0.1A I0.3= Q4.3后執(zhí)行的優(yōu)先Network 1:AI0.3AI0.0FP=Q4.5 Network 2: AI0.3AI0.0FN=Q4.3檢測P、N觸點左邊的電路的邊沿A I0.3A(A I0.4BLD 100 /無操作,與顯示有關(guān)FN M0.1) = Q4.5 相當(dāng)于一個觸點,檢測方框上面的元件的邊沿。M0.0等為邊沿存儲位,用于保持上一掃描周期的狀態(tài)?!纠?-1】設(shè)計故障信息顯示電路,故障信號I0.0為1時Q4.0控制的指示燈以1Hz的頻率閃爍。操作人員按復(fù)位按鈕I0.1后,如果故障已經(jīng)消失,指示燈熄滅。如果沒有消失,指示燈轉(zhuǎn)為常亮,直至故障消失。設(shè)置CPU的屬性時,在“Cycle/Clock Memory”標(biāo)簽頁令MB1為時鐘存儲器字節(jié),其中的M1.5提供周期為1s的時鐘脈沖。 SET與CLR(Clear)指令將RLO(邏輯運(yùn)算結(jié)果)置位或復(fù)位,緊接在它們后面的賦值語句中的地址將變?yōu)?狀態(tài)或0狀態(tài)。SET/將RLO置位= M0.2 /M0.2的線圈“通電”CLR/將RLO復(fù)位= Q4.7/Q4.7的線圈“斷電”3.4.1 定時器指令在CPU內(nèi)部,時間值以二進(jìn)制格式存放,占定時器字的09位??梢园聪铝械男问綄r間預(yù)置值裝入累加器的低位字:(1) 十六進(jìn)制數(shù)W#16#wxyz,其中的w是時間基準(zhǔn),xyz是BCD碼形式的時間值。時基代碼為二進(jìn)制數(shù)00,01,10和11時,對應(yīng)的時基分別為10ms,100ms,1s和10s。(2) S5T#aH_bM_cS_Dms,例如S5T#18S。6脈沖定時器(Pulse Timer)類似于上升沿觸發(fā)的單穩(wěn)態(tài)電路。S5脈沖定時器:S為設(shè)置輸入端,TV為預(yù)置值輸入端,R為復(fù)位輸入端;Q為定時器位輸出端,BI輸出不帶時基的十六進(jìn)制格式,BCD輸出BCD格式的當(dāng)前時間值和時基。定時器中的S、R、Q為BOOL(位)變量,BI和BCD為WORD(字)變量,TV為S5TIME量。各變量均可以使用I、Q、M、L、D存儲區(qū),TV也可以使用定時時間常數(shù)S5T#。脈沖定時器線圈(SP):A I 1.2FR T0/允許定時器T1再起動AI 0.0 /以下是圖3-27對應(yīng)的語句表L S5T#2s /預(yù)置值2s送入累加器1SP T0 /啟動T0AI 0.1R T0 /復(fù)位T0L T0 /將T0的十六進(jìn)制時間當(dāng)前值裝入累加器1T MW10/將累加器1的內(nèi)容傳送到MW10LC T0 /將T0的BCD時間當(dāng)前值裝入累加器1.T MW12/將累加器1的內(nèi)容傳送到MW12A T0 /檢查T0的信號狀態(tài)= Q 4.0/T0的定時器位為1時,Q4.0的線圈通電僅在語句表中使用的FR指令允許定時器再起動,即控制FR的RLO(I1.2)由0變?yōu)?狀態(tài)時,重新裝入定時時間,定時器又從預(yù)置值開始定時。再起動只是在定時器的起動條件滿足(圖3-28中的I0.1=1)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論