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),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

S7-300/400的編程語言與指令系統(tǒng)3.1 S7-300/400的編程語言3.1.1 PLC編程語言的國(guó)際標(biāo)準(zhǔn)IEC 61131是PLC的國(guó)際標(biāo)準(zhǔn),19921995年發(fā)布了IEC 61131標(biāo)準(zhǔn)中的14部分,我國(guó)在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):西門子簡(jiǎn)稱為L(zhǎng)AD。4) 功能塊圖FBD (Function block diagram)。5) 順序功能圖SFC(Sequential function chart):對(duì)應(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ù)雜的公式計(jì)算、復(fù)雜的計(jì)算任務(wù)和最優(yōu)化算法,或管理大量的數(shù)據(jù)等。6S7 HiGraph 編程語言圖形編程語言S7 HiGraph 屬于可選軟件包,它用狀態(tài)圖(state graphs)來描述異步、非順序過程的編程語言。7S7 CFC 編程語言可選軟件包CFC(Continuous Function Chart,連續(xù)功能圖)用圖形方式連接程序庫(kù)中以塊的形式提供的各種功能。8編程語言的相互轉(zhuǎn)換與選用在STEP 7編程軟件中,如果程序塊沒有錯(cuò)誤,并且被正確地劃分為網(wǎng)絡(luò),在梯形圖、功能塊圖和語句表之間可以轉(zhuǎn)換。如果部分網(wǎng)絡(luò)不能轉(zhuǎn)換,則用語句表表示。語句表可供喜歡用匯編語言編程的用戶使用。語句表的輸入快,可以在每條語句后面加上注釋。設(shè)計(jì)高級(jí)應(yīng)用程序時(shí)建議使用語句表。梯形圖適合于熟悉繼電器電路的人員使用。設(shè)計(jì)復(fù)雜的觸點(diǎn)電路時(shí)最好用梯形圖。功能塊圖適合于熟悉數(shù)字電路的人使用。S7 SCL編程語言適合于熟悉高級(jí)編程語言(例如PASCAL或C語言)的人使用。S7 Graph、HiGraph和CFC可供有技術(shù)背景,但是沒有PLC 編程經(jīng)驗(yàn)的用戶使用。S7 Graph對(duì)順序控制過程的編程非常方便,HiGraph適合于異步非順序過程的編程,CFC適合于連續(xù)過程控制的編程。3.2 S7-300/400 CPU的存儲(chǔ)區(qū)3.2.1 數(shù)制 1二進(jìn)制數(shù)二進(jìn)制數(shù)的1位(bit)只能取0和1這兩個(gè)不同的值,用來表示開關(guān)量的兩種不同的狀態(tài)。該位的值與線圈、觸點(diǎn)的關(guān)系。ON/OFF,TURE/FALSE。二進(jìn)制常數(shù):2#1111_0110_1001_0001。2十六進(jìn)制數(shù)十六進(jìn)制的16個(gè)數(shù)字是09和AF, 每個(gè)占二進(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對(duì)應(yīng)的二進(jìn)制數(shù)為1001。最高4位用來表示符號(hào),16/32位BCD碼的范圍。BCD碼實(shí)際上是十六進(jìn)制數(shù),但是各位之間逢十進(jìn)一。296對(duì)應(yīng)的BCD碼為W#16#296,或2#0000 0010 1001 0110。2#0000 0001 0010 1000對(duì)應(yīng)的十進(jìn)制數(shù)也是296,對(duì)應(yīng)的十進(jìn)制數(shù)為。3.2.2 基本數(shù)據(jù)類型1位(bit):位數(shù)據(jù)的數(shù)據(jù)類型為BOOL(布爾)型。I3.2的意義。2字節(jié)(Byte)3字(Word)表示無符號(hào)數(shù)。取值范圍為W#16#0000W#16#FFFF。4雙字(Double Word)表示無符號(hào)數(shù)。范圍DW#16#0000_0000DW#16#FFFF_FFFF。516位整數(shù)(INT,Integer)是有符號(hào)數(shù),補(bǔ)碼。最高位為符號(hào)位,為0時(shí)為正數(shù),取值范圍為-32 76832 767。632位整數(shù)(DINT,Double Integer)最高位為符號(hào)位,取值范圍為-2 147 483 6482 147 483 647。圖3-6 字節(jié)、字和雙字732位浮點(diǎn)數(shù)浮點(diǎn)數(shù)又稱實(shí)數(shù)(REAL),表示為1.m ,例如123.4可表示為1.234 。指數(shù)E是有符號(hào)數(shù)。根據(jù)ANSI/IEEE標(biāo)準(zhǔn)浮點(diǎn)數(shù)1.m 式中指數(shù)e = E +127(1 e 254),為8位正整數(shù)。ANSI/IEEE 標(biāo)準(zhǔn)浮點(diǎn)數(shù)占用一個(gè)雙字(32位)。因?yàn)橐?guī)定尾數(shù)的整數(shù)部分總是為1,只保留尾數(shù)的小數(shù)部分m(022位)。浮點(diǎn)數(shù)的表示范圍為1.175495 3.402 823 1038。圖3-7 浮點(diǎn)數(shù)的結(jié)構(gòu)用很小的存儲(chǔ)空間(4個(gè)字節(jié))可以表示非常大和非常小的數(shù)。PLC輸入和輸出的數(shù)值大多是整數(shù),浮點(diǎn)數(shù)的運(yùn)算速度比整數(shù)運(yùn)算的慢。L#為32位雙整數(shù)常數(shù),例如L# +5。P#為地址指針常數(shù),例如P#M2.0是M2.0的地址。S5T#是16位S5時(shí)間常數(shù),格式為S5T#aD_bH_cM_dS_eMS。S5T#4S30MS = 4s30ms,取值范圍為S5T#0S5T#2H_46M_30S_0MS(9990s),時(shí)間增量為10ms。C#為計(jì)數(shù)器常數(shù)(BCD碼),例如C#250。8位ASCII字符用單引號(hào)表示,例如 ABC。T#為帶符號(hào)的32位IEC時(shí)間常數(shù): T#1D_12H_30M_0S_250MS。DATE是IEC日期常數(shù),例如D#2004-1-15。取值范圍D#1990-1-1D#2168-12-31。TOD#是32位實(shí)時(shí)時(shí)間(Time of day)常數(shù),例如TOD#23:50:45.300。B(b1,b2)、B(b1,b2,b3,b4)用來表示2個(gè)字節(jié)或4個(gè)字節(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個(gè)字符(CHAR)的一維數(shù)組。(4) 日期和時(shí)間(DATE_AND_TIME)用于存儲(chǔ)年、月、日、時(shí)、分、秒、毫秒和星期,占用8個(gè)字節(jié),用BCD格式保存。星期天、星期一星期六的代碼為17。例如DT#2004-07-15-12:30:15.200為2004年7月15日12時(shí)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(定時(shí)器)和COUNTER(計(jì)數(shù)器):對(duì)應(yīng)的實(shí)參(actual parameter,實(shí)際參數(shù))應(yīng)為定時(shí)器或計(jì)數(shù)器的編號(hào),例如T3,C21。(2) BLOCK(塊):指定一個(gè)塊用作輸入和輸出,實(shí)參應(yīng)為同類型的塊。 (3) POINTER(指針):指針用地址作為實(shí)參,例如P#M50.0。(4) ANY:用于實(shí)參的數(shù)據(jù)類型未知或?qū)崊⒖梢允褂萌我鈹?shù)據(jù)類型的情況,占10個(gè)字節(jié)。3.2.5 系統(tǒng)存儲(chǔ)器1過程映像輸入/輸出(I/Q)在掃描循環(huán)開始時(shí),CPU讀取數(shù)字量輸入模塊的輸入信號(hào)的狀態(tài),并將它們存入過程映像輸入(process image input,PII)中。在掃描循環(huán)中,用戶程序計(jì)算輸出值,并將它們存入過程映像輸出表(process image output,PIQ)。在循環(huán)掃描結(jié)束時(shí)將過程映像輸出表的內(nèi)容寫入數(shù)字量輸出模塊。I和Q均可以按位、字節(jié)、字和雙字來存取,例如I0.0、IB0、IW0和ID0。與直接訪問I/O模塊相比有延遲,在一個(gè)掃描周期內(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)部存儲(chǔ)器標(biāo)志位(M)存儲(chǔ)器區(qū)3定時(shí)器(T)存儲(chǔ)器區(qū)時(shí)間值可以用二進(jìn)制或BCD碼方式讀取。4計(jì)數(shù)器(C)存儲(chǔ)器區(qū)計(jì)數(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有兩個(gè)32位累加器(ACCU1和ACCU2),S7-400有4個(gè)累加器(ACCU1ACCU4)。數(shù)據(jù)放在累加器的低端(右對(duì)齊)。2狀態(tài)字寄存器(16位)首次檢測(cè)位/FC, 邏輯運(yùn)算結(jié)果(RLO);狀態(tài)位STA不能用指令檢測(cè);OR位暫存邏輯“與”的操作結(jié)果(先與后或);圖3-9 狀態(tài)字的結(jié)構(gòu)算術(shù)運(yùn)算或比較指令執(zhí)行時(shí)出現(xiàn)錯(cuò)誤,溢出位OV被置1。OV位被置1時(shí)溢出狀態(tài)保持位OS位也被置1,OV位被清0時(shí)OS仍保持為1,用于指明前面的指令執(zhí)行過程中是否產(chǎn)生過錯(cuò)誤。條件碼 1(CC1)和條件碼0(CCO)綜合起來用于表示在累加器1中產(chǎn)生的算術(shù)運(yùn)算或邏輯運(yùn)算的結(jié)果與0的大小關(guān)系、比較指令的執(zhí)行結(jié)果或移位指令的移出位狀態(tài)。二進(jìn)制結(jié)果位(BR)對(duì)應(yīng)于梯形圖中的ENO,在一段既有位操作又有字操作的程序中,用于表示字操作結(jié)果是否正確。在梯形圖的方框指令中,BR位與ENO輸出的能流有對(duì)應(yīng)關(guān)系,用于表明方框指令是否被正確執(zhí)行:如果執(zhí)行出現(xiàn)了錯(cuò)誤,BR位為0,ENO也為 0;如果功能被正確執(zhí)行,BR位為 1,ENO也為 1。將下圖轉(zhuǎn)換為語句表時(shí),將會(huì)出現(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ù)塊的編號(hào)。3.3 位邏輯指令位邏輯指令用于二進(jìn)制數(shù)的邏輯運(yùn)算。位邏輯運(yùn)算的結(jié)果簡(jiǎn)稱為RLO。3.3.1 觸點(diǎn)指令1. 觸點(diǎn)與線圈A(And,與)指令來表示串聯(lián)的常開觸點(diǎn)。O (Or,或)指令來表示并聯(lián)的常開觸點(diǎn)。AN (And Not,與非)來表示串聯(lián)的常閉觸點(diǎn)。ON (Or Not)來表示并聯(lián)的常閉觸點(diǎn)。輸出指令“=”將RLO寫入地址位,與線圈相對(duì)應(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)換為語句表時(shí),局域變量L20.0是自動(dòng)分配的。A*B+C*D=Q (A+B)*(C+D)=Q4中線輸出指令 下面是圖3-14(b)中第一行對(duì)應(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檢測(cè)P、N觸點(diǎn)左邊的電路的邊沿A I0.3A(A I0.4BLD 100 /無操作,與顯示有關(guān)FN M0.1) = Q4.5 相當(dāng)于一個(gè)觸點(diǎn),檢測(cè)方框上面的元件的邊沿。M0.0等為邊沿存儲(chǔ)位,用于保持上一掃描周期的狀態(tài)。【例3-1】設(shè)計(jì)故障信息顯示電路,故障信號(hào)I0.0為1時(shí)Q4.0控制的指示燈以1Hz的頻率閃爍。操作人員按復(fù)位按鈕I0.1后,如果故障已經(jīng)消失,指示燈熄滅。如果沒有消失,指示燈轉(zhuǎn)為常亮,直至故障消失。設(shè)置CPU的屬性時(shí),在“Cycle/Clock Memory”標(biāo)簽頁令MB1為時(shí)鐘存儲(chǔ)器字節(jié),其中的M1.5提供周期為1s的時(shí)鐘脈沖。 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 定時(shí)器指令在CPU內(nèi)部,時(shí)間值以二進(jìn)制格式存放,占定時(shí)器字的09位??梢园聪铝械男问綄r(shí)間預(yù)置值裝入累加器的低位字:(1) 十六進(jìn)制數(shù)W#16#wxyz,其中的w是時(shí)間基準(zhǔn),xyz是BCD碼形式的時(shí)間值。時(shí)基代碼為二進(jìn)制數(shù)00,01,10和11時(shí),對(duì)應(yīng)的時(shí)基分別為10ms,100ms,1s和10s。(2) S5T#aH_bM_cS_Dms,例如S5T#18S。6脈沖定時(shí)器(Pulse Timer)類似于上升沿觸發(fā)的單穩(wěn)態(tài)電路。S5脈沖定時(shí)器:S為設(shè)置輸入端,TV為預(yù)置值輸入端,R為復(fù)位輸入端;Q為定時(shí)器位輸出端,BI輸出不帶時(shí)基的十六進(jìn)制格式,BCD輸出BCD格式的當(dāng)前時(shí)間值和時(shí)基。定時(shí)器中的S、R、Q為BOOL(位)變量,BI和BCD為WORD(字)變量,TV為S5TIME量。各變量均可以使用I、Q、M、L、D存儲(chǔ)區(qū),TV也可以使用定時(shí)時(shí)間常數(shù)S5T#。脈沖定時(shí)器線圈(SP):A I 1.2FR T0/允許定時(shí)器T1再起動(dòng)AI 0.0 /以下是圖3-27對(duì)應(yīng)的語句表L S5T#2s /預(yù)置值2s送入累加器1SP T0 /啟動(dòng)T0AI 0.1R T0 /復(fù)位T0L T0 /將T0的十六進(jìn)制時(shí)間當(dāng)前值裝入累加器1T MW10/將累加器1的內(nèi)容傳送到MW10LC T0 /將T0的BCD時(shí)間當(dāng)前值裝入累加器1.T MW12/將累加器1的內(nèi)容傳送到MW12A T0 /檢查T0的信號(hào)狀態(tài)= Q 4.0/T0的定時(shí)器位為1時(shí),Q4.0的線圈通電僅在語句表中使用的FR指令允許定時(shí)器再起動(dòng),即控制FR的RLO(I1.2)由0變?yōu)?狀態(tài)時(shí),重新裝入定時(shí)時(shí)間,定時(shí)器又從預(yù)置值開始定時(shí)。再起動(dòng)只是在定時(shí)器的起動(dòng)條件滿足(圖3-28中的I0.1=1)

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論