S7-200PLC的外形結(jié)構(gòu)
.狀態(tài)指示燈(LED)顯示CPU所處的工作狀態(tài)。
SF——System Fault(系統(tǒng)錯誤)
RUN——運行
STOP——停止
2.存儲卡接口可以插入存儲卡
3.通信接口可以連接RS-485總線的通信電纜
_ EMBED PBrush ___
4.頂部端子蓋下邊為輸出端子和PLC供電電源端子。輸出端子的運行狀態(tài)可以由頂部端子蓋下方一排指示燈顯示,ON狀態(tài)對應(yīng)指示燈亮。
_ EMBED PBrush ___
5.底部端子蓋下邊為輸入端子和傳感器電源端子。輸入端子的運行狀態(tài)可以由底部端子蓋上方一排指示燈顯示,ON狀態(tài)對應(yīng)指示燈亮。
6.前蓋下面有運行、停止開關(guān)和接口模塊插座。將開關(guān)撥向停止位置時,PLC處于停止?fàn)顟B(tài),此時可以對其編寫程序。將開關(guān)撥向運行位置時,PLC處于運行狀態(tài),此時不能對其編寫程序。將開關(guān)撥向監(jiān)控(Term)狀態(tài),可以運行程序,同時還可以監(jiān)視程序運行的狀態(tài)。接口插座用于連接擴展模塊,實現(xiàn)I/O擴展。
1.程序家族有哪些成員?
PLC的控制程序一般由主程序、子程序和中斷程序組成。西門子的S7-300/400將子程序分為功能(Function,或稱為函數(shù))和功能塊(Function Block)。
在每一個掃描循環(huán)周期,CPU都要調(diào)用一次主程序,用戶程序必須有一個并且只能有一個主程序。小型控制系統(tǒng)可以只有主程序。
中斷程序用于快速響應(yīng)中斷事件。在中斷事件發(fā)生時,CPU將停止執(zhí)行當(dāng)時正在處理的程序或任務(wù),去執(zhí)行用戶編寫的中斷程序。執(zhí)行完中斷程序后,繼續(xù)執(zhí)行被暫停執(zhí)行的程序或任務(wù)。
2.哪些情況需要使用子程序?
當(dāng)系統(tǒng)規(guī)模很大、控制要求復(fù)雜時,如果將全部控制任務(wù)放在主程序中,主程序?qū)浅?fù)雜,既難以調(diào)試,也難以閱讀。使用子程序可以將程序分成容易管理的小塊,使程序結(jié)構(gòu)簡單清晰,易于調(diào)試、查錯和維護。
子程序也可以用于需要多次反復(fù)執(zhí)行相同任務(wù)的地方,只需要編寫一次子程序,別的程序在需要的時候多次調(diào)用它,而無需重寫該程序。
3.怎樣調(diào)用子程序?
主程序可以調(diào)用子程序,子程序也可以嵌套調(diào)用別的子程序。嵌套調(diào)用的層數(shù)是有限制的,例如S7-200的最大嵌套深度為8級。
執(zhí)行完子程序后,返回調(diào)用它的程序中的調(diào)用指令的下一條指令。
4.每個掃描周期都會執(zhí)行子程序嗎?
子程序的調(diào)用可以是有條件的,在被調(diào)用期間,每個掃描周期都要執(zhí)行一次被調(diào)用的子程序。調(diào)用條件不滿足時不會執(zhí)行子程序中的指令,因此使用子程序可以減少掃描循環(huán)時間。
5.停止調(diào)用子程序后,子程序中的線圈處于什么狀態(tài)?
停止調(diào)用子程序后,不再執(zhí)行子程序中的指令。子程序中線圈對應(yīng)的編程元件如果沒有受到別的程序的控制,將保持子程序最后一次執(zhí)行后的狀態(tài)不變。即使控制這些線圈的觸點的狀態(tài)變化,該線圈對應(yīng)的元件的狀態(tài)也不會變化,因為這時根本就沒有執(zhí)行子程序中的指令。
6.怎樣實現(xiàn)子程序的無條件調(diào)用?
有的PLC的子程序調(diào)用指令不能直接接到左側(cè)的垂直“電源”線上,需要通過觸點電路來控制是否調(diào)用子程序,即子程序的調(diào)用是有條件的??梢杂靡恢睘镺N的特殊位元件(例如S7-200的SM0.0或FX系列的M8000)的常開觸點來實現(xiàn)子程序的無條件調(diào)用。
不同品牌的PLC的子程序大致可以分為兩種,一種子程序沒有輸入、輸出參數(shù)和局部變量,另一種則有。
1.什么是全局變量和局部變量?
以西門子的S7-200為例,輸入I、輸出Q、變量存儲器V、內(nèi)部存儲器位M、定時器T、計數(shù)器C等屬于全局變量,可以在符號表中為全局變量定義符號名。
程序組織單元(Program Organizational Unit)簡稱為POU,包括主程序、子程序和中斷程序。每個POU均有自己的64字節(jié)局部變量,局部變量用L(Local)來表示,局部變量只能在它所在的POU中使用。與此相反,全局變量可以在各POU中使用。
2.局部變量有哪些類型?
子程序可以使用下列局部變量:
1) TEMP (臨時變量)是暫時保存在局部數(shù)據(jù)區(qū)中的變量。只有在執(zhí)行該POU時,定義的臨時變量才被使用,POU執(zhí)行完后,不再保存臨時變量的數(shù)值。主程序和中斷程序的局部變量表中只有TEMP變量。
2) IN(輸入?yún)?shù))由調(diào)用它的POU提供的傳入子程序的輸入?yún)?shù)。
3) OUT(輸出參數(shù))是子程序的執(zhí)行結(jié)果,它被返回給調(diào)用它的POU。
4) IN_OUT(輸入_輸出參數(shù))的初始值由調(diào)用它的POU傳送給子程序,并用同一變量將子程序的執(zhí)行結(jié)果返回給調(diào)用它的POU。
主程序和中斷程序的局部變量表中只有臨時變量TEMP。
3.子程序的輸入、輸出參數(shù)有什么作用?
具有輸入、輸出參數(shù)和局部變量的子程序易于實現(xiàn)結(jié)構(gòu)化編程,對于長期生產(chǎn)同類設(shè)備或生產(chǎn)線的廠家尤為有用。編程人員為設(shè)備的各部件或工藝功能編寫了大量的通用的子程序。即使不知道子程序的內(nèi)部代碼,只要知道子程序的功能和輸入、輸出參數(shù)的意義,就可以用它們快速“組裝”出滿足不同的用戶要求的控制程序。就好像可以用數(shù)字集成電路芯片組成復(fù)雜的數(shù)字電路一樣。
如果子程序沒有輸入、輸出參數(shù),這種子程序沒有明確的軟件接口,使用起來很不方便。
4.局部變量有什么優(yōu)點?
1) 子程序如果沒有局部變量,它和調(diào)用它的程序之間只能通過全局變量來交換數(shù)據(jù),子程序內(nèi)部也只能使用全局變量。將它移植到別的項目時,需要對各POU使用的全局變量作統(tǒng)一安排,以保證不會出現(xiàn)地址沖突。當(dāng)程序很復(fù)雜,子程序很多時,這種地址分配是很花時間的。
如果子程序有局部變量,并且在子程序中只使用局部變量,不使用全局變量,因為與其他POU沒有地址沖突,不作任何改動,就可以將子程序移植到別的項目中去。
為了減少移植子程序的工作量,在子程序中應(yīng)盡量避免使用全局變量和全局符號。
2) 如果使用局部變量表中的臨時變量(TEMP),同一片物理存儲器可以在不同的程序中重復(fù)使用。
下面以S7-200為例,介紹子程序的編程和調(diào)用的過程。
1.創(chuàng)建子程序
生成項目時,自動生成一個子程序。打開程序編輯器,執(zhí)行“編輯”菜單中的命令“插入”→“子程序”,將自動生成和打開新的子程序。
2.生成局部變量
名為“模擬量計算”的子程序如下圖所示,在該子程序的局部變量表中,定義了3個輸入(IN)參數(shù),一個輸出(OUT)參數(shù),和名為“暫存1”的臨時(TEMP)變量。局部變量表最左邊的一列是自動分配的每個變量在局部存儲器(L)中的地址。
3.編寫子程序的梯形圖
局部變量表的下面是程序區(qū)(見上圖),輸入?yún)?shù)“轉(zhuǎn)換值”是來自模擬量輸入模塊的與模擬量成正比的轉(zhuǎn)換值,輸出參數(shù)“模擬值”是計算出的對應(yīng)的模擬量(例如壓力、溫度等)的工程值。子程序中變量名稱前的“#”表示該變量是局部變量,它是編程軟件自動添加的,輸入局部變量時不用輸入“#”號。特殊存儲器位SM0.0的常開觸點總是閉合。
4.子程序的調(diào)用
可以在主程序、其他子程序或中斷程序中調(diào)用子程序,調(diào)用子程序時將執(zhí)行子程序中的指令,直至子程序結(jié)束,然后返回調(diào)用它的程序中該子程序調(diào)用指令的下一條指令之處。
創(chuàng)建子程序后,在上圖左邊指令樹最下面的“調(diào)用子程序”文件夾中自動生成剛創(chuàng)建的子程序“模擬量計算”對應(yīng)的圖標(biāo)。
在梯形圖程序中插入子程序調(diào)用指令時,首先打開主程序,顯示出需要調(diào)用子程序的網(wǎng)絡(luò)。打開指令樹最下面的“調(diào)用子程序”文件夾,用鼠標(biāo)左鍵按住需要調(diào)用的子程序圖標(biāo),將它“拖”到程序編輯器中需要的位置。放開左鍵,子程序塊便被放置在該位置。
子程序方框中左邊的“轉(zhuǎn)換值”等是在子程序“模擬量計算”的變量聲明表中定義的輸入?yún)?shù),右邊的“模擬值”是輸出參數(shù)。它們被稱為子程序的形式參數(shù),簡稱為形參,形參在子程序內(nèi)部的程序中使用。調(diào)用子程序時,需要為每個形參指定實際的參數(shù)(簡稱為實參),例如為形參“轉(zhuǎn)換值”指定的實參為模擬量輸入字AIW2(見上圖)。
子程序調(diào)用指令中的實參的有效操作數(shù)為存儲器地址、常量、全局符號和調(diào)用指令所在的POU中的局部變量,不能指定被調(diào)用子程序中的局部變量。
CPU調(diào)用子程序時,輸入?yún)?shù)被復(fù)制到子程序的局部存儲器,子程序執(zhí)行完后,從局部存儲器復(fù)制輸出參數(shù)到指定的輸出參數(shù)地址。
西門子S7系列PLC的主要種類及應(yīng)用軟件
德國西門子(SIEMENS)公司生產(chǎn)的可編程序控制器在我國的應(yīng)用也相當(dāng)廣泛,在冶金、化工、印刷生產(chǎn)線等領(lǐng)域都有應(yīng)用。西門子(SIEMENS)公司的PLC產(chǎn)品包括LOGO,S7-200,S7-300,S7-400,工業(yè)網(wǎng)絡(luò),HMI人機界面,工業(yè)軟件等。
西門子S7系列PLC體積小、速度快、標(biāo)準(zhǔn)化,具有網(wǎng)絡(luò)通信能力,功能更強,可靠性更高。S7系列PLC產(chǎn)品可分為微型PLC(如S7-200),小規(guī)模性能要求的PLC(如S7-300)和中、高性能要求的PLC(如S7-400)等。
1.SIMATIC S7-200 PLC
S7-200 PLC是超小型化的PLC,它適用于各行各業(yè),各種場合中的自動檢測、監(jiān)測及控制等。S7-200 PLC的強大功能使其無論單機運行,或連成網(wǎng)絡(luò)都能實現(xiàn)復(fù)雜的控制功能。
S7-200PLC可提供4個不同的基本型號與8種CPU可供選擇使用。
2.SIMATIC S7-300 PLC
S7-300是模塊化小型PLC系統(tǒng),能滿足中等性能要求的應(yīng)用。各種單獨的模塊之間可進(jìn)行廣泛組合構(gòu)成不同要求的系統(tǒng)。與S7-200 PLC比較,S7-300 PLC采用模塊化結(jié)構(gòu),具備高速(0.6~0.1μs)的指令運算速度;用浮點數(shù)運算比較有效地實現(xiàn)了更為復(fù)雜的算術(shù)運算;一個帶標(biāo)準(zhǔn)用戶接口的軟件工具方便用戶給所有模塊進(jìn)行參數(shù)賦值;方便的人機界面服務(wù)已經(jīng)集成在S7-300操作系統(tǒng)內(nèi),人機對話的編程要求大大減少。SIMATIC人機界面(HMI)從S7-300中取得數(shù)據(jù),S7-300按用戶指定的刷新速度傳送這些數(shù)據(jù)。S7-300操作系統(tǒng)自動地處理數(shù)據(jù)的傳送;CPU的智能化的診斷系統(tǒng)連續(xù)監(jiān)控系統(tǒng)的功能是否正常、記錄錯誤和特殊系統(tǒng)事件(例如:超時,模塊更換,等等);多級口令保護可以使用戶高度、有效地保護其技術(shù)機密,防止未經(jīng)允許的復(fù)制和修改;S7-300 PLC設(shè)有操作方式選擇開關(guān),操作方式選擇開關(guān)像鑰匙一樣可以拔出,當(dāng)鑰匙拔出時,就不能改變操作方式,這樣就可防止非法刪除或改寫用戶程序。具備強大的通信功能,S7-300 PLC可通過編程軟件Step 7的用戶界面提供通信組態(tài)功能,這使得組態(tài)非常容易、簡單。S7-300 PLC具有多種不同的通信接口,并通過多種通信處理器來連接AS-I總線接口和工業(yè)以太網(wǎng)總線系統(tǒng);串行通信處理器用來連接點到點的通信系統(tǒng);多點接口(MPI)集成在CPU中,用于同時連接編程器、PC機、人機界面系統(tǒng)及其他SIMATIC S7/M7/C7等自動化控制系統(tǒng)。
3. SIMATIC S7-400 PLC
S7-400 PLC是用于中、高檔性能范圍的可編程序控制器。
S7-400 PLC采用模塊化無風(fēng)扇的設(shè)計,可靠耐用,同時可以選用多種級別(功能逐步升級)的CPU,并配有多種通用功能的模板,這使用戶能根據(jù)需要組合成不同的專用系統(tǒng)。當(dāng)控制系統(tǒng)規(guī)模擴大或升級時,只要適當(dāng)?shù)卦黾右恍┠0?,便能使系統(tǒng)升級和充分滿足需要。
4. 工業(yè)通訊網(wǎng)絡(luò)
通訊網(wǎng)絡(luò)是自動化系統(tǒng)的支柱,西門子的全集成自動化網(wǎng)絡(luò)平臺提供了從控制級一直到現(xiàn)場級的一致性通訊,“SIMATIC NET”是全部網(wǎng)絡(luò)系列產(chǎn)品的總稱,他們能在工廠的不同部門,在不同的自動化站以及通過不同的級交換數(shù)據(jù),有標(biāo)準(zhǔn)的接口并且相互之間完全兼容。
5. 人機界面(HMI)硬件
HMI硬件配合PLC使用,為用戶提供數(shù)據(jù)、圖形和事件顯示,主要有文本操作面板TD200(可顯示中文),OP3,OP7,OP17等;圖形/文本操作面板OP27,OP37等,觸摸屏操作面板TP7,TP27/37,TP170A/B等;SIMATIC面板型PC670等。個人計算機(PC)也可以作為HMI硬件使用。HMI硬件需要經(jīng)過軟件(如ProTool)組態(tài)才能配合PLC使用。
6. SIMATIC S7工業(yè)軟件
西門子的工業(yè)軟件分為三個不同的種類:
(1)編程和工程工具 編程和工程工具包括所有基于PLC或PC用于編程、組態(tài)、模擬和維護等控制所需的工具。STEP 7標(biāo)準(zhǔn)軟件包SIMATIC S7是用于S7-300/400,C7 PLC和SIMATIC WinAC基于PC控制產(chǎn)品的組態(tài)編程和維護的項目管理工具,STEP 7-Micro/WIN是在Windows平臺上運行的S7-200系列PLC的編程、在線仿真軟件。
(2)基于PC的控制軟件 基于PC的控制系統(tǒng)WinAC允許使用個人計算機作為可編程序控制器(PLC)運行用戶的程序,運行在安裝了Windows NT4.0操作系統(tǒng)的SIMATIC工控機或其它任何商用機。WinAC提供兩種PLC,一種是軟件PLC,在用戶計算機上作為視窗任務(wù)運行。另一種是插槽PLC(在用戶計算機上安裝一個PC卡),它具有硬件PLC的全部功能。WinAC與SIMATIC S7系列處理器完全兼容,其編程采用統(tǒng)一的SIMATIC編程工具(如STEP 7),編制的程序既可運行在WinAC上,也可運行在S7系列處理器上。
(3)人機界面軟件 人機界面軟件為用戶自動化項目提供人機界面(HMI)或SCADA系統(tǒng),支持大范圍的平臺。人機界面軟件有兩種,一種是應(yīng)用于機器級的ProTool,另一種是應(yīng)用于監(jiān)控級的WinCC。
ProTool適用于大部分HMI硬件的組態(tài),從操作員面板到標(biāo)準(zhǔn)PC都可以用集成在STEP 7中的ProTool有效地完成組態(tài)。ProTool/lite用于文本顯示的組態(tài),如:OP3,OP7,OP17,TD17等。ProTool/Pro用于組態(tài)標(biāo)準(zhǔn)PC和所有西門子HMI產(chǎn)品,ProTool/Pro不只是組態(tài)軟件,其運行版也用于Windows平臺的監(jiān)控系統(tǒng)。
WinCC是一個真正開放的,面向監(jiān)控與數(shù)據(jù)采集的SCADA(Supervisory Control and Data Acquisition)軟件,可在任何標(biāo)準(zhǔn)PC上運行。WinCC操作簡單,系統(tǒng)可靠性高,與STEP 7功能集成,可直接進(jìn)入PLC的硬件故障系統(tǒng),節(jié)省項目開發(fā)時間。它的設(shè)計適合于廣泛的應(yīng)用,可以連接到已存在的自動化環(huán)境中,有大量的通信接口和全面的過程信息和數(shù)據(jù)處理能力,其最新的WinCC5.0支持在辦公室通過IE瀏覽器動態(tài)監(jiān)控生產(chǎn)過程。
S7-200系列PLC其它常用指令
1.脈沖產(chǎn)生指令EU/ED的應(yīng)用
EU指令在EU指令前的邏輯運算結(jié)果由OFF到ON時就產(chǎn)生一個寬度為一個掃描周期的脈沖,驅(qū)動其后面的輸出線圈。
2.邏輯堆棧的操作
LPS為進(jìn)棧操作,LRD為讀棧操作,LPP為出棧操作。
S7-200系列PLC中有一個9層堆棧,用于處理邏輯運算結(jié)果,稱為邏輯堆棧。
3.NOT、NOP和MEND指令
NOT、NOP及MEND指令的形式及功能如表4-19所示。
表4-19 NOT、NOP及MEND指令的形式及功能
STL |
功能 |
操作數(shù) |
NOT |
邏輯結(jié)果取反 |
— |
NOP |
空操作 |
— |
MEND |
無條件結(jié)束 |
— |
NOT為邏輯結(jié)果取反指令,在復(fù)雜邏輯結(jié)果取反時為用戶提供方便。NOP為空操作,對程序沒有實質(zhì)影響。MEND為無條件結(jié)束指令,在編程結(jié)束時一定要寫上該指令,否則會出現(xiàn)編譯錯誤。調(diào)試程序時,在程序的適當(dāng)位置插入MEND指令可以實現(xiàn)程序的分段調(diào)試。
4.比較指令
比較指令是將兩個操作數(shù)按規(guī)定的條件作比較,條件成立時,觸點就閉合。比較運算符有:=、>=、<=、>、<和<>。
(1)字節(jié)比較 字節(jié)比較用于比較兩個字節(jié)型整數(shù)值INl和IN2的大小,字節(jié)比較是無符號的。比較式可以是LDB、AB或OB后直接加比較運算符構(gòu)成。如:LDB=、AB<>、OB>=等。
整數(shù)INl和IN2的尋址范圍:VB、IB、QB、MB、SB、SMB、LB、*VD、*AC、*LD和常數(shù)。
指令格式例如: LDB= VBl0,VBl2
(2)整數(shù)比較 整數(shù)比較用于比較兩個一字長整數(shù)值INl和IN2的大小,整數(shù)比較是有符號的(整數(shù)范圍為16#8000和16#7FFF之間)。比較式可以是LDW、AW或OW后直接加比較運算符構(gòu)成。如:LDW=、AW<>。OW>=等。
整數(shù)INl和IN2的尋址范圍:VW、IW、QW、MW、SW、SMW、LW、AIW、T、C、AC、*VD、*AC、*LD和常數(shù)。
指令格式例如: LDW= VWl0,VWl2
(3)雙字整數(shù)比較 雙字整數(shù)比較用于比較兩個雙字長整數(shù)值INl和IN2的大小,雙字整數(shù)比較是有符號的(雙字整數(shù)范圍為16#80000000和16#7FFFFFFF之間)。比較式可以是LDD、AD或OD后直接加比較運算符構(gòu)成。如:LDD=、AD<>、OD>=等。
雙字整數(shù)INl和IN2的尋址范圍:VD、ID、QD、MD、SD、SMD、LD、HC、AC、*VD、*AC、*LD和常數(shù)。
指令格式例如: LDD= VDl0,VDl2
(4)實數(shù)比較 實數(shù)比較用于比較兩個雙字長實數(shù)值INl和IN2的大小,實數(shù)比較是有符號的(負(fù)實數(shù)范圍為-1.175495E-38和-3.402823E+38,正實數(shù)范圍為+1.175495E-38和+3.402823E+38)。比較式可以是LDR、AR或OR后直接加比較運算符構(gòu)成。如:LDR=、AR<>、OR>=等。
實數(shù)INl和IN2的尋址范圍:VD、ID、QD、MD、SD、SMD、LD、AC、*VD、*AC、*LD和常數(shù)。
指令格式例如: LDR= VDl0,VDl2
供應(yīng)西門子中央處理單元6ES7312-5BE03-0AB0
與,或,非,與非,或非,異或,上升沿/下降沿觸發(fā)。
接通延時,鎖存接通延時,斷開延時,脈沖延時,鎖定延時,計數(shù)器(加計數(shù)/減計數(shù)),時間開關(guān),間隔延時繼電器,運行小時數(shù)計數(shù)器,觸發(fā)器,異步脈沖發(fā)生器,年時間開關(guān),舒適照明開關(guān)功能,隨機發(fā)生器,樓梯照明開關(guān)功能(符合 DIN 18015-2),邊沿觸發(fā)間隔延時繼電器,組合接通/斷開延時,模擬值比較器,模擬觸發(fā)器,模擬值變化觸發(fā)器,模擬看門狗,模擬放大器,移位寄存器,軟鍵功能,PI 控制器,斜坡功能,模擬復(fù)用器,PWM 功能,模擬算術(shù)運算功能,模擬算術(shù)運算功能錯誤檢測功能。
作為選項可提供的功能
用于 LOGO! 的其它功能8