S7-200可编程控制器指令集课件_第1页
S7-200可编程控制器指令集课件_第2页
S7-200可编程控制器指令集课件_第3页
S7-200可编程控制器指令集课件_第4页
S7-200可编程控制器指令集课件_第5页
已阅读5页,还剩165页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

S7-200可編程控制器指令集

2025-3-16PLC指令集16.1用於描述指令的習慣用語圖6-1給出了對一條指令的典型描述,並指出了用於描述指令及其操作的不同區域。指令說明包括LAD、FBD和STL三種格式。運算元表列出了指令的運算元,並給出每個運算元的有效數據類型,存儲區的區域及長度。EN/ENO運算元和數據類型沒有在指令運算元表中列出,因為這些運算元對於所有的LAD和FBD指令來說都是一樣的。對於LAD:EN和ENO是能流,為布爾數據類型。對於FBD:EN和ENO是I、Q、V、M、SM、S、T、C、L或者能流,為布爾數據類型。2025-3-16PLC指令集22025-3-16PLC指令集36.2S7--200記憶體範圍及特性2025-3-16PLC指令集42025-3-16PLC指令集56.3位邏輯指令觸點標準觸點常開觸點指令(LD、A和O)與常閉觸點指令(LDN、AN和ON)從記憶體或者過程映象寄存器中得到參考值。標準觸點指令從記憶體中得到參考值。(如果數據類型是I或Q,則也可從過程映象寄存器中得到參考值。)當位值為1時,常開觸點閉合;當位值為0時,常閉觸點閉合。在FBD中,與和或操作的輸入可以最多擴展到32個。在STL中,常開指令LD、AND或OR或將相應地址位的位值存入棧頂;而常閉指令LD、AND或OR則將相應地址位的位值取反,再存入棧頂。2025-3-16PLC指令集62025-3-16PLC指令集72025-3-16PLC指令集8立即觸點立即觸點並不依賴於S7--200的掃描週期刷新,它會立即刷新。常開立即觸點指令(LDI、AI和OI)和常閉立即觸點指令(LDNI、ANI和ONI)在指令執行時得到物理輸入值,但過程映像寄存器並不刷新。當物理輸入點狀態為1時,常開立即觸點閉合;當物理輸入點狀態為0時,常閉立即觸點閉合。常開立即指令LD、AND或OR將物理輸入值存入棧頂,而常閉立即指令LD、AND或OR將物理輸入的值取反,再存入棧頂。2025-3-16PLC指令集9取反指令(NOT)取反指令(NOT)改變能流輸入的狀態(也就是說,它將棧頂值由0變為1,由1變為0)。正、負跳變指令(EU、ED)正跳變觸點指令(EU)檢測到每一次正跳變(由0到1),讓能流接通一個掃描週期。負跳變觸點指令(ED)檢測到每一次負跳變(由1到0),讓能流接通一個掃描週期。對於正跳變指令,一旦發現有正跳變發生(由0到1),該棧頂值被置為1,否則置0。對於負跳變指令,一旦發現有負跳變發生(由1到0),該棧頂值被置為1,否則置0。對於運行模式下編輯(在RUN模式下編輯應用程式),必須為正跳變指令和負跳變指令輸入參數。關於在RUN模式下編輯程式的更多資訊參見SIEMENS的詳細資料。2025-3-16PLC指令集102025-3-16PLC指令集11如圖6-2中所示,S7--200用邏輯堆疊來決定控制邏輯。在本例中,“iv0”到“iv7”表示邏輯堆疊的初始值,“nv”表示指令提供的一個新值,S0表示邏輯堆疊中存儲的計算值。2025-3-16PLC指令集122025-3-16PLC指令集132025-3-16PLC指令集142025-3-16PLC指令集15線圈輸出(=)輸出指令(=)將新值寫入輸出點的過程映象寄存器。當輸出指令執行時,S7--200將輸出過程映象寄存器中的位接通或者斷開。在LAD和FBD中,指定點的值等於能流。在STL中,棧頂的值複製到指定位。立即輸出(=I)當指令執行時,立即輸出指令(=I)將新值同時寫到物理輸出點和相應的過程映象寄存器中。2025-3-16PLC指令集162025-3-16PLC指令集172025-3-16PLC指令集18當立即輸出指令執行時,物理輸出點立即被置為能流值。在STL中,立即指令將棧頂的值立即複製到物理輸出點的指定位上。“I”表示立即,當指令執行時,新值會同時被寫到物理輸出和相應的過程映象寄存器。這一點不同於非立即指令,只把新值寫入過程映象寄存器。置位(S)和複位(R)置位(S)和複位(R)指令將從指定地址開始的N個點置位或者複位。可以一次置位或者複位1--255個點。2025-3-16PLC指令集19如果複位指令指定的是一個定時器位(T)或計數器位(C),指令不但複位定時器或計數器位,而且清除定時器或計數器的當前值。2025-3-16PLC指令集20立即置位和立即複位立即置位和立即複位指令將從指定地址開始的N個點立即置位或者立即複位。可以一次置位或複位1到128個點。“I”表示立即,當指令執行時,新值會同時被寫到物理輸出和相應的過程映象寄存器。這一點不同於非立即指令,只把新值寫入過程映像寄存器。2025-3-16PLC指令集212025-3-16PLC指令集222025-3-16PLC指令集232025-3-16PLC指令集24邏輯堆疊指令棧裝載與(ALD)棧裝載與指令(ALD)對堆疊中第一層和第二層的值進行邏輯與操作,結果放入棧頂。執行完棧裝載與指令之後,棧深度減1。棧裝載或(OLD)棧裝載或指令(OLD)對堆疊中第一層和第二層的值進行邏輯或操作,結果放入棧頂。執行完棧裝載或指令之後,棧深度減1。2025-3-16PLC指令集25邏輯推入棧(LPS)邏輯推入棧指令(LPS)複製棧頂的值,並將這個值推入棧。棧底的值被推出並消失。邏輯讀棧(LRD)邏輯讀棧指令(LRD)複製堆疊中的第二個值到棧頂。堆疊沒有推入棧或者彈出棧操作,但舊的棧頂值被新的複製值取代。邏輯彈出棧(LPP)邏輯彈出棧指令(LPP)彈出棧頂的值,堆疊的第二個棧值成為新的棧頂值。2025-3-16PLC指令集26ENO與(AENO)ENO與指令(AENO)對ENO位和棧頂的值進行邏輯與操作,其產生的效果與LAD或者FBD中盒指令的ENO位相同。與操作結果成為新的棧頂。ENO是LAD和FBD中盒指令的布爾輸出。如果盒指令的EN輸入有能流並且執行沒有錯誤,則ENO將能流傳遞給下一元素。您可以把ENO作為指令成功完成的使能標誌位。ENO位被用作棧頂,影響能流和後續指令的執行。STL中沒有EN輸入。條件指令要想執行,棧頂值必須為邏輯1。在STL中也沒有ENO輸出。但是在STL中,那些與LAD和FBD中具有ENO輸出的指令相應的指令,存在一個特殊的ENO位。它可以被AENO指令訪問。裝入堆疊(LDS)裝入堆疊指令(LDS)複製堆疊中的第N個值到棧頂。棧底的值被推出並消失。2025-3-16PLC指令集27如圖6-3中所示,S7--200用邏輯堆疊來決定控制邏輯。在本例中,“iv0”到“iv7”表示邏輯堆疊的初始值,“nv”表示指令提供的一個新值,而“S0”表示邏輯堆疊中存儲的計算值。2025-3-16PLC指令集282025-3-16PLC指令集292025-3-16PLC指令集30RS觸發器指令置位優先觸發器是一個置位優先的鎖存器。當置位信號(S1)和複位信號(R)都為真時,輸出為真。複位優先觸發器是一個複位優先的鎖存器。當置位信號(S)和複位信號(R1)都為真時,輸出為假。Bit參數用於指定被置位或者複位的布爾參數。可選的輸出反映Bit參數的信號狀態。表6-7中給出了例子程式的真值表。2025-3-16PLC指令集312025-3-16PLC指令集322025-3-16PLC指令集336.4時鐘指令讀即時時鐘(TODR)和寫實時時鐘(TODW)讀即時時鐘(TODR)指令從硬體時鐘中讀當前時間和日期,並把它裝載到一個8位元組,起始地址為T的時間緩衝區中。寫實時時鐘(TODW)指令將當前時間和日期寫入硬體時鐘,當前時鐘存儲在以地址T開始的8位元組時間緩衝區中。您必須按照BCD碼的格式編碼所有的日期和時間值(例如:用16#97表示1997年)。圖6-4給出了時間緩衝區(T)的格式。2025-3-16PLC指令集34時間日期(TOD)時鐘在電源掉電或記憶體丟失後,初始化為下列日期和時間:日期:01--Jan--90時間:00:00:00星期:星期日2025-3-16PLC指令集352025-3-16PLC指令集362025-3-16PLC指令集37日期:01--Jan--90時間:00:00:00星期:星期日2025-3-16PLC指令集382025-3-16PLC指令集396.5通訊指令通訊指令網路讀寫指令網路讀指令(NETR)初始化一個通訊操作,根據表(TBL)的定義,通過指定端口從遠程設備上採集數據。網路寫指令(NETW)初始化一個通訊操作,根據表(TBL)的定義,通過指定端口向遠程設備寫數據。網路讀指令可以從遠程站點讀取最多16個位元組的資訊,網路寫指令可以向遠程站點寫最多16個位元組的資訊。在程式中,可以使用任意條網路讀寫指令,但是在同一時間,最多只能有8條網路讀寫指令被啟動。例如,在所給的S7--200CPU中,可以有4條網路讀指令和4條網路寫指令,或者2條網路讀指令和6條網路寫指令在同一時間被啟動。可以使用網路讀寫嚮導程式。要啟動網路讀寫嚮導程式,在命令菜單中選擇Tools>InstructionWizard,並且在指令嚮導窗口中選擇網路讀寫。2025-3-16PLC指令集402025-3-16PLC指令集412025-3-16PLC指令集42發送(XMT)和接收(RCV)指令發送指令(XMT)用於在自由口模式下依靠通訊口發送數據。接收指令(RCV)啟動或者終止接收資訊功能。必須為接收操作指定開始和結束條件。從指定的通訊口接收到的資訊被存儲在數據緩衝區(TBL)中。數據緩衝區的第一個數據指明了接收到的位元組數。2025-3-16PLC指令集432025-3-16PLC指令集44使用自由口模式控制串行通訊口通過編程,可以選擇自由口模式來控制S7--200的串行通訊口。當選擇了自由口模式,用戶程式通過使用接收中斷、發送中斷、發送指令和接收指令來控制通訊口的操作。當處於自由口模式時,通訊協議完全由梯形圖程式控制。SMB30(對於端口0)和SMB130(對於端口1,如果您的S7--200有兩個端口的話)被用於選擇串列傳輸速率和校驗類型。當S7--200處於STOP模式時,自由口模式被禁止,重新建立正常的通訊(例如:編程設備的訪問)。2025-3-16PLC指令集45在最簡單的情況下,可以只用發送指令(XMT)向印表機或者顯示器發送資訊。其他例子包括與條碼閱讀器、稱重計和焊機的連接。在每種情況下,您都必須編寫程式,來支持在自由口模式下與S7--200通訊的設備所使用的協議。只有當S7--200處於RUN模式時,才能進行自由口通訊。要使能自由口模式,應該在SMB30(端口0)或者SMB130(端口1)的協議選擇區中設置01。處於自由口通訊模式時,不能與編程設備通訊。2025-3-16PLC指令集462025-3-16PLC指令集47發送數據發送指令使您能夠發送一個位元組或多個位元組的緩衝區,最多為255個。接收數據接收指令使您能夠接收一個位元組或多個位元組的緩衝區,最多為255個。接收指令的啟動和結束條件接收指令使用接收資訊控制位元組(SMB87或SMB187)中的位來定義資訊起始和結束條件。2025-3-16PLC指令集48使用字元中斷控制接收數據為了完全適應對各種協議的支持,也可以使用字元中斷控制的方式接收數據。接收每個字元時都會產生中斷。在執行與接收字元事件相連的中斷服務程式之前,接收到的字元存入SMB2中,校驗狀態(如果使能的話)存入SM3.0。SMB2是自由口接收字元緩衝區。在自由口模式下,每一個接收到的字元都會存放到這一位置,便於用戶程式訪問。SMB3用於自由口模式。它包含一個校驗錯誤標誌位。當接收字元的同時檢測到校驗錯誤時,該位被置位。該位元組的其他位被保留。利用校驗位去丟棄資訊或向該資訊發送否定應答。2025-3-16PLC指令集492025-3-16PLC指令集502025-3-16PLC指令集516.6比較指令數值比較比較指令用於比較兩個數值:IN1=IN2IN1>=IN2IN1<=IN2IN1>IN2IN1<IN2IN1<>IN2位元組比較操作是無符號的。整數比較操作是有符號的。雙字比較操作是有符號的。實數比較操作是有符號的。2025-3-16PLC指令集52對於LAD和FBD:當比較結果為真時,比較指令使觸點閉合(LAD)或者輸出接通(FBD)。對於STL:當比較結果為真時,對1進行LD,A或O操作,並置入棧頂。2025-3-16PLC指令集532025-3-16PLC指令集542025-3-16PLC指令集55字串比較字串比較指令比較兩個字串的ASCII碼字元:IN1=IN2IN1<>IN2當比較結果為真時,比較指令使觸點閉合(LAD)或者輸出接通(FBD),或者對1進行LD,A或O操作,並置入棧頂(STL)。2025-3-16PLC指令集566.7轉換指令標準轉換指令數字轉換位元組轉為整數(BTI)、整數轉為位元組(ITB)、整數轉為雙整數(ITD)、雙整數轉為整數(DTI)、雙整數轉為實數(DTR)、BCD碼轉為整數(BCDI)和整數轉為BCD碼(IBCD)。以上指令將輸入值IN轉換為指定的格式並存儲到由OUT指定的輸出值存儲區中。例如:可以將雙整數值轉為實數值;也可以在整數和BCD碼格式之間相互轉換。2025-3-16PLC指令集57四捨五入(ROUND)和取整(TRUNC)四捨五入指令(ROUND)將一個實數轉為一個雙整數值,並將四捨五入的結果存入OUT指定的變數中。取整指令(TRUNC)將一個實數轉為一個雙整數值,並將實數的整數部分作為結果存入OUT指定的變數中。包絡段數段碼指令(SEG)允許您產生一個點陣,用於點亮七段碼顯示器的各個段。2025-3-16PLC指令集582025-3-16PLC指令集59ASCII碼轉換指令有效的ASCII碼字元為十六進制的30到39和41到46。在ASCII碼和十六進制數之間相互轉換ASCII碼轉十六進制數指令(ATH)將一個長度為LEN從IN開始的ASCII碼字串轉換成從OUT開始的十六進制數。十六進制數轉ASCII碼指令(HTA)將從輸入位元組IN開始的十六進制數,轉換成從OUT開始的ASCII碼字串。被轉換的十六進制數的位數由長度LEN給出。能夠被轉換的ASCII碼字串或者十六進制數的最大數量為255。有效ASCII碼輸入有效的ASCII碼輸入字元是0到9的十六進制數代碼值30到39,和大寫字元A到F的十六進制數代碼值41到46這些字母數字字元。2025-3-16PLC指令集60將數值轉為ASCII碼整數轉ASCII碼(ITA)、雙整數轉ASCII碼(DTA)和實數轉ASCII碼(RTA)指令,分別將整數、雙整數或實數值轉換成ASCII碼字元。2025-3-16PLC指令集612025-3-16PLC指令集622025-3-16PLC指令集63字串轉換指令將數值轉換為字串整數轉字串(ITS)、雙整數轉字串(DTS)和實數轉字串(RTS)指令,將整數、雙整數或實數值(IN)轉換成ASCII碼字串(OUT)。2025-3-16PLC指令集64將子字串轉換為數字值子字串轉整數(STI)、子字串轉雙整數(STD)和子字串轉實數(STR)指令,將從偏移量INDX開始的字串值IN轉換成整數/雙整數或實數值OUT。2025-3-16PLC指令集652025-3-16PLC指令集66編碼和解碼指令編碼編碼指令(ENCO)將輸入字IN的最低有效位的位號寫入輸出位元組OUT的最低有效“半位元組”(4位)中。解碼解碼指令(DECO)根據輸入位元組(IN)的低四位所表示的位號置輸出字(OUT)的相應位為1,輸出字的所有其他位都清0。2025-3-16PLC指令集672025-3-16PLC指令集686.8計數器指令SIMATIC計數器指令增計數器增計數指令(CTU)從當前計數值開始,在每一個(CU)輸入狀態從低到高時遞增計數。當CXX的當前值大於等於預置值PV時,計數器位CXX置位。當複位端(R)接通或者執行複位指令後,計數器被複位。當它達到最大值(32,767)後,計數器停止計數。STL操作:H複位輸入:棧頂H計數輸入:其值被裝載在第二個堆疊中。2025-3-16PLC指令集69減計數器減計數指令(CTD)從當前計數值開始,在每一個(CD)輸入狀態的低到高時遞減計數。當CXX的當前值等於0時,計數器位CXX置位。當裝載輸入端(LD)接通時,計數器位被複位,並將計數器的當前值設為預置值PV。當計數值到0時,計數器停止計數,計數器位CXX接通。STL操作:H裝載輸入:棧頂H計數輸入:其值被裝載在第二個堆疊中。2025-3-16PLC指令集70增/減計數器增/減計數指令(CTUD),在每一個增計數輸入(CU)的低到高時增計數,在每一個減計數輸入(CD)的低到高時減計數。計數器的當前值CXX保存當前計數值。在每一次計數器執行時,預置值PV與當前值作比較。當達到最大值(32767)時,在增計數輸入處的下一個上升沿導致當前計數值變為最小值(--32768)。當達到最小值(--32768)時,在減計數輸入端的下一個上升沿導致當前計數值變為最大值(32767)。當CXX的當前值大於等於預置值PV時,計數器位CXX置位。否則,計數器位關斷。當複位端(R)接通或者執行複位指令後,計數器被複位。當達到預置值PV時,CTUD計數器停止計數。2025-3-16PLC指令集71STL操作:H複位輸入:棧頂H減計數輸入:其值被裝載在第二棧位中。H增計數輸入:其值被裝載在第三棧位中。2025-3-16PLC指令集722025-3-16PLC指令集732025-3-16PLC指令集746.9高速計數器指令定義高速計數器定義高速計數器指令(HDEF)為指定的高速計數器(HSCx)選擇操作模式。模組的選擇決定了高速計數器的時鐘、方向、啟動和複位功能。對於每一個高速計數器使用一條定義高速計數器指令。高速計數器高速計數器指令(HSC)在HSC特殊記憶體位狀態的基礎上配置和控制高速計數器。參數N指定高速計數器的標號。2025-3-16PLC指令集75高速計數器可以被配置為12種模式中的任意一種,詳細情況可參考SIEMENSS7-200系統手冊。每一個計數器都有時鐘、方向控制、複位、啟動的特定輸入。對於雙相計數器,兩個時鐘都可以運行在最高頻率。在正交模式下,您可以選擇一倍速(1x)或者四倍速(4x)計數速率。所有計數器都可以運行在最高頻率下而互不影響。2025-3-16PLC指令集76高速計數器編程可以使用指令嚮導來配置計數器。嚮導程式使用下列資訊:計數器的類型和模式、計數器的預置值、計數器的初始值和計數的初始方向。要啟動HSC指令嚮導,可以在命令菜單窗口中選擇Tools>InstructionWizard,然後在嚮導窗口中選擇HSC指令。2025-3-16PLC指令集77對高速計數器編程,必須完成下列基本操定義計數器和模式設置控制位元組設置初始值設置預置值指定並使能中斷服務程式啟動高速計數器高速計數器的編程示例省略。2025-3-16PLC指令集786.10脈衝輸出指令脈衝輸出指令(PLS)用於在高速輸出(Q0.0和Q0.1)上控制脈衝串輸出(PTO)和脈寬調製(PWM)功能。請參閱資料光碟上應用示例中使用PLS指令進行PTO/PWM操作的程式。見應用示例7、22、23、30和50。2025-3-16PLC指令集796.11數字運算指令加、減、乘、除指令加法減法IN1+IN2=OUTIN1--IN2=OUTLAD和FBDIN1+OUT=OUTOUT--IN1=OUTSTL整數加法(+I)或者整數減法(--I)指令,將兩個16位整數相加或者相減,產生一個16位結果。雙整數加法(+D)或者雙整數減法(--D)指令,將兩個32位整數相加或者相減,產生一個32位結果。實數加法(+R)和實數減法(--R)指令,將兩個32位實數相加或相減,產生一個32位實數結果。2025-3-16PLC指令集80乘法除法IN1*IN2=OUTIN1/IN2=OUTLAD和FBDIN1*OUT=OUTOUT/IN1=OUTSTL整數乘法(*I)或者整數除法(/I)指令,將兩個16位整數相乘或者相除,產生一個16位結果。(對於除法,餘數不被保留。)雙整數乘法(*D)或者雙整數除法(/D)指令,將兩個32位整數相乘或者相除,產生一個32位結果。(對於除法,餘數不被保留。)實數乘法(*R)或實數除法(/R)指令,將兩個32位實數相乘或相除,產生一個32位實數結果。2025-3-16PLC指令集812025-3-16PLC指令集822025-3-16PLC指令集832025-3-16PLC指令集842025-3-16PLC指令集852025-3-16PLC指令集86數學功能指令正弦、余弦和正切正弦(SIN)、余弦(COS)和正切(TAN)指令計算角度值IN的三角函數值,並將結果存放在OUT中。輸入角度值是弧度值。SIN(IN)=OUTCOS(IN)=OUTTAN(IN)=OUT要將角度從度數變為弧度,可以使用MUL_R(*R)指令,將度數乘以1.745329E--2(接近π/180)即可。2025-3-16PLC指令集87自然對數和自然指數自然對數指令(LN)計算輸入值IN的自然對數,並將結果存放到OUT中。自然指數指令(EXP)計算輸入值IN的自然指數值,並將結果存放到OUT中。LN(IN)=OUTEXP(IN)=OUT平方根平方根指令(SQRT)計算實數(IN)的平方根,並將結果存放到OUT中。SQRT(IN)=OUT2025-3-16PLC指令集88遞增和遞減指令遞增IN+1=OUTLAD和FBDOUT+1=OUTSTL遞減IN--1=OUTLAD和FBDOUT--1=OUTSTL遞增或者遞減指令將輸入IN加1或者減1,並將結果存放在OUT中。位元組遞增(INCB)和位元組遞減(DECB)操作是無符號的。字遞增(INCW)和字遞減(DECW)操作是有符號的。雙字遞增(INCD)和雙字遞減(DECD)操作是有符號的。2025-3-16PLC指令集892025-3-16PLC指令集906.12比例/積分/微分(PID)回路控制指令PID回路控制指令(PID)根據輸入和表(TBL)中的配置資訊,對相應的LOOP執行PID回路計算。2025-3-16PLC指令集916.13中斷指令中斷允許(ENI)和中斷禁止(DISI)中斷允許指令(ENI)全局地允許所有被連接的中斷事件。中斷禁止指令(DISI)全局地禁止處理所有中斷事件。當進入RUN模式時,初始狀態為禁止中斷。在RUN模式,您可以執行全局中斷允許指令(ENI)允許所有中斷。全局中斷禁止指令(DISI)不允許處理中斷服務程式,但中斷事件仍然會排隊等候。2025-3-16PLC指令集92中斷條件返回(CRETI)中斷條件返回指令(CRETI)用於根據前面的邏輯操作的條件,從中斷服務程式中返回。中斷連接(ATCH)中斷連接指令(ATCH)將中斷事件EVNT與中斷服務程式號INT相關聯,並使能該中斷事件。中斷分離(DTCH)中斷分離指令(DTCH)將中斷事件EVNT與中斷服務程式之間的關聯切斷,並禁止該中斷事件。2025-3-16PLC指令集93清除中斷事件(CLR—EVENT)S7--200支持的中斷類型S7--200支持下列類型的中斷服務程式:通訊口中斷:S7--200生成使程式可以控制通訊口的事件。

I/O中斷:S7--200對I/O點狀態的各種變化產生中斷事件。這些事件可以對高速計數器、脈衝輸出或輸入的上升或下降狀態做出回應。時基中斷:S7--200產生使程式在指定的間隔上起作用的事件。2025-3-16PLC指令集94中斷優先順序和中斷佇列在各個指定的優先順序之內,CPU按先來先服務的原則處理中斷。任何時間點上,只有一個用戶中斷程式正在執行。一旦中斷程式開始執行,它要一直執行到結束。而且不會被別的中斷程式,甚至是更高優先順序的中斷程式所打斷。當另一個中斷正在處理中,新出現的中斷需要排隊,等待處理。2025-3-16PLC指令集952025-3-16PLC指令集962025-3-16PLC指令集972025-3-16PLC指令集986.14邏輯操作指令取反指令位元組、字和雙字取反位元組取反(INVB)、字取反(INVW)和雙字取反(INVD)指令將輸入IN取反的結果存入OUT中。使ENO=0的錯誤條件:H0006(間接尋址)受影響的SM標誌位:HSM1.0(結果為0)2025-3-16PLC指令集992025-3-16PLC指令集1002025-3-16PLC指令集1012025-3-16PLC指令集1022025-3-16PLC指令集103與、或和異或指令位元組與、字與和雙字與位元組與(ANDB)、字與(ANDW)和雙字與(ANDD)指令將輸入值IN1和IN2的相應位進行與操作,將結果存入OUT中。位元組或、字或和雙字或位元組或(ORB)、字或指令(ORW)和雙字或(ORD)指令將兩個輸入值IN1和IN2的相應位進行或操作,將結果存入OUT中。2025-3-16PLC指令集104位元組異或、字異或和雙字異或位元組異或(ROB)、字異或(ORW)和雙字異或(ORD)指令將兩個輸入值IN1和IN2的相應位進行異或操作,將結果存入OUT中。2025-3-16PLC指令集1052025-3-16PLC指令集1066.15傳送指令位元組、字、雙字或者實數傳送位元組傳送(MOVB)、字傳送(MOVW)、雙字傳送(MOVD)和實數傳送指令在不改變原值的情況下將IN中的值(MOVR)傳送到OUT。2025-3-16PLC指令集107位元組立即傳送(讀和寫)位元組立即傳送指令允許您在物理I/O和記憶體之間立即傳送一個位元組數據。位元組立即讀(BIR)指令讀物理輸入(IN),並將結果存入記憶體地址(OUT),但過程映像寄存器並不刷新。位元組立即寫指令(BIW)從記憶體地址(IN)中讀取數據,寫入物理輸出(OUT),同時刷新相應的過程映像區。2025-3-16PLC指令集108塊傳送指令位元組、字、雙字的塊傳送位元組塊傳送(BMB)、字塊傳送(BMW)和雙字塊傳送(BMD)指令傳送指定數量的數據到一個新的存儲區,數據的起始地址IN,數據長度為N個位元組、字或者雙字,新塊的起始地址為OUT。N的範圍從1到255。2025-3-16PLC指令集1092025-3-16PLC指令集1106.16程式控制指令條件結束條件結束指令(END)根據前面的邏輯關係終止當前掃描週期。可以在主程序中使用條件結束指令,但不能在副程式或中斷服務程式中使用該命令。停止停止指令(STOP)導致CPU從RUN到STOP模式從而可以立即終止程式的執行。如果STOP指令在中斷程式中執行,那麼該中斷立即終止,並且忽略所有掛起的中斷,繼續掃描程式的剩餘部分。完成當前週期的剩餘動作,包括主用戶程式的執行,並在當前掃描的最後,完成從RUN到STOP模式的轉變。2025-3-16PLC指令集111看門狗複位看門狗複位指令(WDR)允許S7--200CPU的系統看門狗定時器被重新觸發,這樣可以在不引起看門狗錯誤的情況下,增加此掃描所允許的時間。使用WDR指令時要小心,因為如果您用迴圈指令去阻止掃描完成或過度的延遲掃描完成的時間,那麼在終止本次掃描之前,下列操作過程將被禁止:2025-3-16PLC指令集112通訊(自由端口方式除外)

I/O更新(立即I/O除外)強制更新

SM位更新(SM0,SM5~SM29不能被更新)運行時間診斷由於掃描時間超過25秒,10ms和100ms定時器將不會正確累計時間。在中斷程式中的STOP指令帶數字量輸出的擴展模組也包含一個看門狗定時器,如果模組沒有被S7--200寫,則此看門狗定時器將關斷輸出。在擴展的掃描時間內,對每個帶數字量輸出的擴展模組進行立即寫操作以保持正確的輸出。請參考這段描述之後的實例。2025-3-16PLC指令集1132025-3-16PLC指令集114For--Next迴圈指令FOR和NEXT指令可以描述需重複進行一定次數的循環體。每條FOR指令必須對應一條NEXT指令。For--Next迴圈嵌套(一個For--Next迴圈在另一個For--Next迴圈之內)深度可達8層。FOR--NEXT指令執行FOR指令和NEXT指令之間的指令。必須指定計數值或者當前迴圈次數INDX、初始值(INIT)和終止值(FINAL)。NEXT指令標誌著FOR迴圈的結束。2025-3-16PLC指令集1152025-3-16PLC指令集116跳轉指令跳轉到標號指令(JMP)執行程式內標號N指定的程式分支。標號指令標記跳轉目的地的位置N。可以在主程序、副程式或者中斷服務程式中,使用跳轉指令。跳轉和與之相應的標號指令必須位於同一段程式代碼(無論是主程序、副程式還是中斷服務程式)。不能從主程序跳到副程式或中斷程式,同樣不能從副程式或中斷程式跳出。可以在SCR程式段中使用跳轉指令,但相應的標號指令必須也在同一個SCR段中。2025-3-16PLC指令集1172025-3-16PLC指令集118順控繼電器(SCR)指令SCR指令使得能夠按照自然工藝段在LAD、FBD或STL中編制狀態控制程式。只要應用中包含的一系列操作需要反復執行,就可以使用SCR使程式更加結構化,以至於直接針對應用。這樣可以使得編程和調試更加快速和簡單。裝載SCR指令(LSCR)將S位的值裝載到SCR和邏輯堆疊中。SCR堆疊的結果值決定是否執行SCR程式段。SCR堆疊的值會被複製到邏輯堆疊中,因此可以直接將盒或者輸出線圈連接到左側的能流線上而不經過中間觸點。2025-3-16PLC指令集1192025-3-16PLC指令集120分支控制在許多實例中,一個順序控制狀態流必須分成兩個或多個不同分支控制狀態流。當一個控制狀態流分離成多個分支時,所有的分支控制狀態流必須同時啟動,如圖6-33所示。使用多條由相同轉移條件啟動的SCRT指令,可以在一段SCR程式中實現控制流的分支,如下面的實例所示。2025-3-16PLC指令集1212025-3-16PLC指令集1222025-3-16PLC指令集123合併控制與分支控制的情況類似,兩個或者多個分支狀態流必須合併為一個狀態流。當多個狀態流彙集成一個時,我們稱之為合併。當控制流合併時,所有的控制流必須都完成,才能執行下一個狀態。圖6-34給出了兩個控制流合併的示意圖。在SCR程式中,通過從狀態L轉到狀態L’,以及從狀態M轉到狀態M’的方法實現控制流的合併。當狀態L’、M’的SCR使能位為真時,即可啟動狀態N,如下例所示。2025-3-16PLC指令集1242025-3-16PLC指令集1252025-3-16PLC指令集126診斷LED指令(DIAG_LED)如果輸入參數IN的值為零,就將診斷LED置為OFF。如果輸入參數IN的值大於零,就將診斷LED置為ON(黃色)。當系統塊中指定的條件為真或者用非零IN參數執行DIAG_LED指令時,CPU發光二極體(LED)標注的SF/DIAG可以被配置用於顯示黃色。系統塊(配置LED)複選框選項:當有一項在CPU內被強制時,SF/DIAGLED為ON(黃色)當模組有I/O錯誤時,SF/DIAGLED為ON(黃色)兩個配置LED選項都不選中,將使SF/DIAG黃光只受DIAG_LED指令控制。CPU系統故障(SF)用紅光指示。2025-3-16PLC指令集1272025-3-16PLC指令集1286.17移位和迴圈指令右移(SHR)和左移(SHL)指令移位指令將輸入值IN右移或左移N位,並將結果裝載到輸出OUT中。移位指令對移出的位自動補零。如果位數N大於或等於最大允許值(對於位元組操作為8,對於字操作為16,對於雙字操作為32),那麼移位操作的次數為最大允許值。如果移位次數大於0,溢出標誌位(SM1.1)上就是最近移出的位值。如果移位操作的結果為0,零記憶體位(SM1.0)置位。位元組操作是無符號的。對於字和雙字操作,當使用有符號數據類型時,符號位也被移動。2025-3-16PLC指令集129迴圈右移(ROR)和迴圈左移(ROL)指令迴圈移位指令將輸入值IN迴圈右移或者迴圈左移N位,並將輸出結果裝載到OUT中。迴圈移位是圓形的。如果位數N大於或者等於最大允許值(對於位元組操作為8,對於字操作為16,對於雙字操作為32),S7--200在執行迴圈移位之前,會執行取模操作,得到一個有效的移位次數。移位位數的取模操作的結果,對於位元組操作是0到7,對於字操作是0到15,而對於雙字操作是0到31。2025-3-16PLC指令集1302025-3-16PLC指令集131移位寄存器指令(SHRB)移位寄存器指令將一個數值移入移位寄存器中。移位寄存器指令提供了一種排列和控制產品流或者數據的簡單方法。使用該指令,每個掃描週期,整個移位寄存器移動一位。移位寄存器指令把輸入的DATA數值移入移位寄存器。其中,S_BIT指定移位寄存器的最低位,N指定移位寄存器的長度和移位方向(正向移位=N,反向移位=--N)。SHRB指令移出的每一位都被放入溢出標誌位(SM1.1)。這條指令的執行取決於最低有效位(S_BIT)和由長度(N)指定的位數。2025-3-16PLC指令集1322025-3-16PLC指令集1332025-3-16PLC指令集134位元組交換指令(SWAP)位元組交換指令用來交換輸入字IN的高位元組和低位元組。2025-3-16PLC指令集1356.18字串指令字串指令字串長度字串長度指令(SLEN)返回IN中指定的字串的長度值。字串複製字串複製指令(SCPY)將IN中指定的字串複製到OUT中。字串連接字串連接指令(SCAT)將IN中指定的字串連接到OUT中指定字串的後面。2025-3-16PLC指令集1362025-3-16PLC指令集137從字串中複製子字串從字串中複製子字串指令(SSCPY)從INDX指定的字元號開始,將IN中存儲的字串中的N個字元複製到OUT中。2025-3-16PLC指令集138字串搜索字串搜索指令(SFND)在IN1字串中尋找IN2字串。由OUT指定搜索的起始位置。如果在IN1中找到了與IN2中字串相匹配的一段字元,則OUT中會存入這段字元中首個字元的位置。如果沒有找到,OUT被清0。字元搜索字元搜索指令(CFND)在IN1字串中尋找IN2字串中的任意字元。由OUT指定搜索的起始位置。如果找到了匹配的字元,字元的位置被寫入OUT中。如果沒有找到,OUT被清0。2025-3-16PLC指令集1392025-3-16PLC指令集1402025-3-16PLC指令集1416.19表指令填表ATT指令向表(TBL)中增加一個數值(DATA)。表中第一個數是最大填表數(TL),第二個數是實際填表數(EC),指出已填入表的數據個數。新的數據填加在表中上一個數據的後面。每向表中填加一個新的數據,EC會自動加1。一個表最多可以有100條數據。2025-3-16PLC指令集1422025-3-16PLC指令集1432025-3-16PLC指令集144先

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论