《如何讀STL程序 西門子 PLC Step課件.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《如何讀STL程序 西門子 PLC Step課件.ppt(21頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、Automation and Drives如何讀STL程序: 如果讀程序時(shí)發(fā)現(xiàn)自己不明白的語言,可以:1,轉(zhuǎn)換成梯形圖:快捷鍵ctrl1,當(dāng)然大多數(shù)都轉(zhuǎn)換不過去;2,按下F1尋求幫助;3,下載此程序到模擬器中,單步觀察效果,看一看哪些寄存器發(fā)生改變。系統(tǒng)的邏輯錯(cuò)誤造成的停機(jī)往往是由于提示錯(cuò)誤前面的錯(cuò)誤引起的。 Automation and Drives STL指令及其結(jié)構(gòu): 語句指令: 操作碼 操作數(shù)執(zhí)行該操作所需要的信息 有些語句指令不帶操作數(shù),它們操作的對(duì)象是唯一的。 NOT /對(duì)邏輯操作結(jié)果(RLO)取反。 A I 0.1 /對(duì)輸入繼電器 I 0.1 進(jìn)行與操作 L MW10 /將字MW
2、10裝入累加器1定義要執(zhí)行的功能 Automation and Drives操作數(shù): 操作數(shù): 標(biāo)識(shí)符 標(biāo)識(shí)參數(shù) L M W 10表示操作數(shù)在該存儲(chǔ)區(qū)域內(nèi)的具體位置 主標(biāo)識(shí)符:表示操作數(shù)所在的存儲(chǔ)區(qū) 主要有:I(輸入映像區(qū)),Q(輸出映像區(qū)),M(位存儲(chǔ)區(qū)),PI(外部輸入),PQ(外部輸出),T(定時(shí)器),C(計(jì)數(shù)器),DB(數(shù)據(jù)塊),L(本地?cái)?shù)據(jù))等 輔助標(biāo)識(shí)符進(jìn)一步說明操作數(shù)的位數(shù)長度包括有:X(位),B(字節(jié)), W(字2字節(jié)), D(雙字4字節(jié)) 表示操作數(shù)存放區(qū)域及操作數(shù)位數(shù)(位、字節(jié)、字等) Automation and Drives操作數(shù)表示: 存儲(chǔ)區(qū)域 位字節(jié)字雙字輸入映像區(qū)
3、(I) I IB IW ID輸出映像區(qū)(Q) Q QB QW QD位存儲(chǔ)區(qū)(M) M MB MW MD外部輸入存儲(chǔ)區(qū)(PI) PIB PIW PID外部輸出存儲(chǔ)區(qū)(PQ) PQB PQW PQD數(shù)據(jù)塊(用“OPN DB”打開) DBX DBB DBW DBD數(shù)據(jù)塊(用“OPN DI”打開 ) DIX DIB DIW DID臨時(shí)堆棧(L) L LB LW LD Automation and Drives尋址方式 : SET /把 RLO (Result of Logic Operation)置“1” L 27 /把整數(shù)27裝人累加器1 L C#0100 /把 BCD碼常數(shù)0100裝入累加器1 :
4、對(duì)常數(shù)或常量的尋址方式,操作數(shù)本身包含在指令中 Automation and Drives編程、調(diào)試及故障排除現(xiàn)場設(shè)備詳細(xì)介紹系統(tǒng)及網(wǎng)絡(luò)介紹數(shù)據(jù)格式:7 6 5 4 3 2 1 010.7 10.6 10.5 10.4 10.3 10.2 10.1 10.0MB10MB11MB12MB13MB14 MW10MW12MW11 MD11MB15 MD12 MD10 Automation and Drives編程、調(diào)試及故障排除現(xiàn)場設(shè)備詳細(xì)介紹系統(tǒng)及網(wǎng)絡(luò)介紹實(shí)例:數(shù) 據(jù) 分 配 舉 例 Automation and Drives數(shù)字表示方法: BYTE: L B#16#10 L byte#16#10
5、WORD: L 2#1000000000000 L W#16#1000 L word#16#1000DWORD: L DW#16#A21234 L dword#16#A21234 INT: L 1D INT : L L#1REAL: L 1.234567e+13 TIME: L S5T#1H1M50S Automation and Drives尋址方式 : A I0 . 0 /對(duì)輸入位I0.0進(jìn)行“與”邏輯操作 S L20 . 0 /把本地?cái)?shù)據(jù)位L20.0置1 = M115 . 4 / 將RLO的內(nèi)容傳給位存儲(chǔ)區(qū)中的位M115.4 L DB1 . DBD 12 /把數(shù)據(jù)塊DB1雙字DBD12中
6、的內(nèi)容傳送給累加器1 /雙字表示32位,如浮點(diǎn)數(shù)為32為雙字直 接:在指令中直接給出操作數(shù)的存儲(chǔ)單元地址 Automation and Drives尋址方式 : 存 儲(chǔ) 器:標(biāo)識(shí)參數(shù)由一個(gè)存儲(chǔ)器給出,存儲(chǔ)器的內(nèi)容對(duì)應(yīng)該標(biāo)識(shí)參數(shù)的值(該值又稱為地址指針) 這種尋址方式能動(dòng)態(tài)改變操作數(shù)存儲(chǔ)器的地址,常用于程序循環(huán)過程中的尋址。A IMD 2 /對(duì)由MD 2指出的輸入位進(jìn)行“與”邏輯操作,如: MD 2值為 /2#0000 0000 0000 0000 0000 0000 0101 0110表示I 10. 6 L IBDID 4 /將由雙字DID 4指出的輸入字節(jié)裝入累加器1,如:DID 4值為 /
7、2#0000 0000 0000 0000 0000 0000 0101 0000表示對(duì)IB10操作OPN DBMW 2 /打開由字MW2指出的數(shù)據(jù)塊,如MW2為3,則打開DB3 Automation and Drives尋址方式 : 寄 存 器:在S7中有兩個(gè)地址寄存器(AR1和AR2) 地址寄存器的內(nèi)容 偏移量 地址指針L P#8.6 /將P#8.6裝入A 1LAR1 /將累加器1的內(nèi)容傳送至地址寄存器1L P#10.0 /將P#10.0裝入A1LAR2 /將累加器1的內(nèi)容傳送至地址寄存器2A IAR1,P#1.0 /AR1+偏移量(9.6) = QAR2,P#4.1 /AR1+偏移量(1
8、4.1)LAR1 P#STAT53 / 把指針指向STAT53 L 0 / 把0裝入ACCU1T DIW AR1,P#0.0 /把地址寄存器內(nèi)指向起始地址區(qū)的數(shù)據(jù)賦值 Automation and Drives在線監(jiān)視 很多時(shí)候需要在線監(jiān)視的。 在線監(jiān)視的情況如圖,各個(gè)寄存器的情況詳見下頁。 Automation and Drives系統(tǒng)的內(nèi)部寄存器: S7 CPU的寄存器有(7個(gè)):累加器 32位累加器1 (ACCU1) 主累加器2 (ACCU2) 輔2個(gè)32位累加器*地址寄存器 32位地址寄存器1 (AR1)地址寄存器2 (AR2)2個(gè)32位地址寄存器*數(shù)據(jù)塊地址寄存器 32位共享數(shù)據(jù)塊
9、DB 背景數(shù)據(jù)塊 DI 2個(gè)32位數(shù)據(jù)塊地址寄存器 狀態(tài)字寄存器 16位狀態(tài)位 1個(gè)16位狀態(tài)字寄存器* Automation and Drives系統(tǒng)存儲(chǔ)區(qū): S7 300 CPU有 三 個(gè) 基 本 存 儲(chǔ) 區(qū) :外設(shè)I/O存儲(chǔ)區(qū) P輸出(映像區(qū)) Q輸入(映像區(qū)) I位存儲(chǔ)區(qū) M定時(shí)器 T計(jì)數(shù)器 C存放操作數(shù)據(jù)(I/O、位存儲(chǔ)、定時(shí)器等)物理上是CPU的RAM ,存儲(chǔ)區(qū)的大小因CPU型號(hào)而異。臨時(shí)本地?cái)?shù)據(jù)存儲(chǔ)區(qū)(L堆棧)可執(zhí)行用戶程序:邏輯塊(OB、FB、FC)數(shù)據(jù)塊(DB)存放CPU運(yùn)行時(shí),所執(zhí)行的用戶程序單元邏輯塊(OB、FB、FC)、數(shù)據(jù)塊(DB)的復(fù)制件;存放臨時(shí)本地?cái)?shù)據(jù),這部分存
10、儲(chǔ)區(qū)稱L堆棧(主要是存放用戶程序的臨時(shí)變量)物理上是CPU模塊的部分RAM 動(dòng)態(tài)裝載存儲(chǔ)區(qū):存放用戶程序存放用戶程序 物理上是CPU的部分RAM、EEPROM、外置FEPROM等 Automation and Drives 名 稱 存儲(chǔ)區(qū) 存 儲(chǔ) 區(qū) 功 能 輸入(I) 過程輸入映像表 每個(gè)掃描周期開始,讀取過程輸入值,記錄輸入映像表訪問方式:位、字節(jié)、字、雙字 輸出(O) 過程輸出映像表 掃描周期結(jié)束,輸出映像表內(nèi)容輸出端口訪問方式:位、字節(jié)、字、雙字 外設(shè)輸入(PI)外設(shè)輸出(PO) 外設(shè)輸入/輸出 外設(shè)存儲(chǔ)區(qū)允許直接訪問現(xiàn)場設(shè)備訪問方式:字節(jié)、字、雙字(不能訪問位) 位存儲(chǔ)區(qū)(M) 中間
11、的變量存放程序運(yùn)行的中間結(jié)果,訪問方式:位、字節(jié)、字、雙字 定時(shí)器(T) 定時(shí)器 計(jì)時(shí)時(shí)鐘訪問該存儲(chǔ)區(qū)中的計(jì)時(shí)單元定時(shí)器指令可以訪問該存儲(chǔ)區(qū)和計(jì)時(shí)單元 計(jì)數(shù)器(C) 計(jì)數(shù)器 計(jì)數(shù)器指令可以訪問該存儲(chǔ)區(qū) 臨時(shí)本地?cái)?shù)據(jù)存儲(chǔ)區(qū)(L) L堆棧 在FC、OB塊運(yùn)行時(shí),塊變量聲明表中臨時(shí)變量存放在該存儲(chǔ)區(qū)。 數(shù)據(jù)塊(DB) 數(shù)據(jù)塊 DB塊存放數(shù)據(jù)信息,可被所有邏輯塊訪問(共享數(shù)據(jù)塊)或被FB塊特定占用(背景數(shù)據(jù)塊使用DI訪問) 1,外設(shè)訪問(P)不通過映像區(qū);2,有些變頻器等超出了映像區(qū)的范圍所以,只能使用外設(shè)訪問(P) ;3,外設(shè)訪問(P)在程序執(zhí)行到此位置時(shí)進(jìn)行讀寫操作,而普通的輸入輸出,則在程序開始
12、讀入,結(jié)束輸出; Automation and Drives狀態(tài)字: 15 8 7 6 5 4 3 2 1 0 BR CC1 CC0 OS OV OR STA RLO FC狀態(tài)字表示CPU執(zhí)行指令時(shí)所具有的狀態(tài),用戶程序可以訪問和檢測狀態(tài)字,并可以根據(jù)狀態(tài)字中的某些位決定程序的走向和進(jìn)程。 Automation and Drives邏輯操作結(jié)果(RLO): Result of Logic Operation, RLO位 置 : 狀 態(tài) 字 位 “ 1”作 用 : 存 儲(chǔ) 位 邏 輯 指 令 或 算 術(shù) 比 較 指 令 的 結(jié) 果 。無法判斷RLO的數(shù)值時(shí),可以查看FC位的情況。在某行按下F1,
13、就知道該指令是否影響RLO。見下頁 Automation and DrivesSTA STA表示被操作的數(shù)據(jù)的當(dāng)前狀態(tài),0或者1;僅表示布爾量;非布爾量的數(shù)值以ACCU累加器表示例如第一句為 AN I0.0 I0.0 現(xiàn)在為0,則STA為0;但是執(zhí)行完畢后RLO為1。 Automation and DrivesFC/RLO的變化示例: 語句表 實(shí)際狀態(tài) 檢測結(jié)果 RLO FC說明 0 FC0:下一條指令開始新邏輯串 A I 0.0 1 1 1 1首次檢測結(jié)果存放RLO,F(xiàn)C置1 AN I 0.1 0 1 1 1檢測結(jié)果與RLO運(yùn)算,結(jié)果存RLO =Q1.0 1 0 RLO賦值給Q1.0,F(xiàn)C清
14、0 I0.0 I0.1 Q1.0 Automation and DrivesDI 和 DB 的區(qū)別 訪問背景數(shù)據(jù)塊時(shí),使用DI;當(dāng)然也可以使用DB訪問背景數(shù)據(jù)塊; DI的作用體現(xiàn)在:再單個(gè)FB里面調(diào)用了除背景數(shù)據(jù)塊外的其他數(shù)據(jù)塊時(shí),可以用DB進(jìn)行操作,而背景數(shù)據(jù)塊可以使用DI進(jìn)行操作。如右圖:可以O(shè)PN DB DBMS /以后所有的DB*操作均是對(duì)應(yīng)DB4,而所有的DI*操作均對(duì)應(yīng)DB433CDB交換數(shù)據(jù)塊內(nèi)容,例如把背景數(shù)據(jù)塊里面的內(nèi)容與共享數(shù)據(jù)塊交換,可以訪問共享數(shù)據(jù)塊,進(jìn)行操作處理。 Automation and DrivesL 的對(duì)應(yīng) 好多程序里面直接使用L變量,此時(shí)你可以上Temp里面查看,尋求對(duì)應(yīng)關(guān)系,如果找不到對(duì)應(yīng)關(guān)系也無所謂,當(dāng)一個(gè)臨時(shí)變量使好了,出了這個(gè)塊就什么都沒了。