




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
S7-200可編程控制器指令集PLC課程組2/4/20231PLC指令集主要內容6.1用于描述指令的習慣用語6.2S7--200存儲器范圍及特性6.3位邏輯指令6.4時鐘指令6.5通訊指令6.6比較指令6.7轉換指令6.8計數器指令6.9高速計數器指令2/4/20232PLC指令集6.10脈沖輸出指令6.11數字運算指令6.12比例/積分/微分(PID)回路控制指令6.13中斷指令6.14邏輯操作指令6.15傳送指令6.16程序控制指令6.17移位和循環指令6.18字符串指令2/4/20233PLC指令集6.19表指令6.20定時器指令6.21子程序指令2/4/20234PLC指令集6.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或者能流,為布爾數據類型。2/4/20235PLC指令集2/4/20236PLC指令集6.2S7--200存儲器范圍及特性2/4/20237PLC指令集2/4/20238PLC指令集6.3位邏輯指令觸點標準觸點常開觸點指令(LD、A和O)與常閉觸點指令(LDN、AN和ON)從存儲器或者過程映象寄存器中得到參考值。標準觸點指令從存儲器中得到參考值。(如果數據類型是I或Q,則也可從過程映象寄存器中得到參考值。)當位值為1時,常開觸點閉合;當位值為0時,常閉觸點閉合。在FBD中,與和或操作的輸入可以最多擴展到32個。在STL中,常開指令LD、AND或OR或將相應地址位的位值存入棧頂;而常閉指令LD、AND或OR則將相應地址位的位值取反,再存入棧頂。2/4/20239PLC指令集2/4/202310PLC指令集2/4/202311PLC指令集立即觸點立即觸點并不依賴于S7--200的掃描周期刷新,它會立即刷新。常開立即觸點指令(LDI、AI和OI)和常閉立即觸點指令(LDNI、ANI和ONI)在指令執行時得到物理輸入值,但過程映像寄存器并不刷新。當物理輸入點狀態為1時,常開立即觸點閉合;當物理輸入點狀態為0時,常閉立即觸點閉合。常開立即指令LD、AND或OR將物理輸入值存入棧頂,而常閉立即指令LD、AND或OR將物理輸入的值取反,再存入棧頂。2/4/202312PLC指令集取反指令(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的詳細資料。2/4/202313PLC指令集2/4/202314PLC指令集如圖6-2中所示,S7--200用邏輯堆棧來決定控制邏輯。在本例中,“iv0”到“iv7”表示邏輯堆棧的初始值,“nv”表示指令提供的一個新值,S0表示邏輯堆棧中存儲的計算值。2/4/202315PLC指令集2/4/202316PLC指令集2/4/202317PLC指令集2/4/202318PLC指令集線圈輸出(=)輸出指令(=)將新值寫入輸出點的過程映象寄存器。當輸出指令執行時,S7--200將輸出過程映象寄存器中的位接通或者斷開。在LAD和FBD中,指定點的值等于能流。在STL中,棧頂的值復制到指定位。立即輸出(=I)當指令執行時,立即輸出指令(=I)將新值同時寫到物理輸出點和相應的過程映象寄存器中。2/4/202319PLC指令集2/4/202320PLC指令集2/4/202321PLC指令集當立即輸出指令執行時,物理輸出點立即被置為能流值。在STL中,立即指令將棧頂的值立即復制到物理輸出點的指定位上。“I”表示立即,當指令執行時,新值會同時被寫到物理輸出和相應的過程映象寄存器。這一點不同于非立即指令,只把新值寫入過程映象寄存器。置位(S)和復位(R)置位(S)和復位(R)指令將從指定地址開始的N個點置位或者復位。可以一次置位或者復位1--255個點。2/4/202322PLC指令集如果復位指令指定的是一個定時器位(T)或計數器位(C),指令不但復位定時器或計數器位,而且清除定時器或計數器的當前值。2/4/202323PLC指令集立即置位和立即復位立即置位和立即復位指令將從指定地址開始的N個點立即置位或者立即復位。可以一次置位或復位1到128個點。“I”表示立即,當指令執行時,新值會同時被寫到物理輸出和相應的過程映象寄存器。這一點不同于非立即指令,只把新值寫入過程映像寄存器。2/4/202324PLC指令集2/4/202325PLC指令集2/4/202326PLC指令集2/4/202327PLC指令集邏輯堆棧指令棧裝載與(ALD)棧裝載與指令(ALD)對堆棧中第一層和第二層的值進行邏輯與操作,結果放入棧頂。執行完棧裝載與指令之后,棧深度減1。棧裝載或(OLD)棧裝載或指令(OLD)對堆棧中第一層和第二層的值進行邏輯或操作,結果放入棧頂。執行完棧裝載或指令之后,棧深度減1。2/4/202328PLC指令集邏輯推入棧(LPS)邏輯推入棧指令(LPS)復制棧頂的值,并將這個值推入棧。棧底的值被推出并消失。邏輯讀棧(LRD)邏輯讀棧指令(LRD)復制堆棧中的第二個值到棧頂。堆棧沒有推入棧或者彈出棧操作,但舊的棧頂值被新的復制值取代。邏輯彈出棧(LPP)邏輯彈出棧指令(LPP)彈出棧頂的值,堆棧的第二個棧值成為新的棧頂值。2/4/202329PLC指令集ENO與(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個值到棧頂。棧底的值被推出并消失。2/4/202330PLC指令集如圖6-3中所示,S7--200用邏輯堆棧來決定控制邏輯。在本例中,“iv0”到“iv7”表示邏輯堆棧的初始值,“nv”表示指令提供的一個新值,而“S0”表示邏輯堆棧中存儲的計算值。2/4/202331PLC指令集2/4/202332PLC指令集2/4/202333PLC指令集RS觸發器指令置位優先觸發器是一個置位優先的鎖存器。當置位信號(S1)和復位信號(R)都為真時,輸出為真。復位優先觸發器是一個復位優先的鎖存器。當置位信號(S)和復位信號(R1)都為真時,輸出為假。Bit參數用于指定被置位或者復位的布爾參數。可選的輸出反映Bit參數的信號狀態。表6-7中給出了例子程序的真值表。2/4/202334PLC指令集2/4/202335PLC指令集2/4/202336PLC指令集6.4時鐘指令讀實時時鐘(TODR)和寫實時時鐘(TODW)讀實時時鐘(TODR)指令從硬件時鐘中讀當前時間和日期,并把它裝載到一個8字節,起始地址為T的時間緩沖區中。寫實時時鐘(TODW)指令將當前時間和日期寫入硬件時鐘,當前時鐘存儲在以地址T開始的8字節時間緩沖區中。您必須按照BCD碼的格式編碼所有的日期和時間值(例如:用16#97表示1997年)。圖6-4給出了時間緩沖區(T)的格式。2/4/202337PLC指令集時間日期(TOD)時鐘在電源掉電或內存丟失后,初始化為下列日期和時間:日期:01--Jan--90時間:00:00:00星期:星期日2/4/202338PLC指令集2/4/202339PLC指令集擴展讀實時時鐘(TODRX)擴展讀實時時鐘(TODRX)指令從PLC中讀取當前時間、日期和夏令時組態,并裝載到從由T指定的地址開始的19字節緩沖區內。擴展寫實時時鐘(TODWX)擴展讀實時時鐘(TODWX)指令寫當前時間、日期和夏令時組態到PLC中由T指定的地址開始的19字節緩沖區內。必須按照BCD碼的格式編碼所有的日期和時間值(例如:用16#02表示2002年)。表6-9給出了19字節時間緩沖區(T)的格式。時間日期時鐘在電源掉電或內存丟失后,初始化下列日期和時間:2/4/202340PLC指令集日期:01--Jan--90時間:00:00:00星期:星期日2/4/202341PLC指令集2/4/202342PLC指令集6.5通訊指令通訊指令網絡讀寫指令網絡讀指令(NETR)初始化一個通訊操作,根據表(TBL)的定義,通過指定端口從遠程設備上采集數據。網絡寫指令(NETW)初始化一個通訊操作,根據表(TBL)的定義,通過指定端口向遠程設備寫數據。網絡讀指令可以從遠程站點讀取最多16個字節的信息,網絡寫指令可以向遠程站點寫最多16個字節的信息。在程序中,可以使用任意條網絡讀寫指令,但是在同一時間,最多只能有8條網絡讀寫指令被激活。例如,在所給的S7--200CPU中,可以有4條網絡讀指令和4條網絡寫指令,或者2條網絡讀指令和6條網絡寫指令在同一時間被激活。可以使用網絡讀寫向導程序。要啟動網絡讀寫向導程序,在命令菜單中選擇Tools>InstructionWizard,并且在指令向導窗口中選擇網絡讀寫。2/4/202343PLC指令集2/4/202344PLC指令集2/4/202345PLC指令集發送(XMT)和接收(RCV)指令發送指令(XMT)用于在自由口模式下依靠通訊口發送數據。接收指令(RCV)啟動或者終止接收信息功能。必須為接收操作指定開始和結束條件。從指定的通訊口接收到的信息被存儲在數據緩沖區(TBL)中。數據緩沖區的第一個數據指明了接收到的字節數。2/4/202346PLC指令集2/4/202347PLC指令集使用自由口模式控制串行通訊口通過編程,可以選擇自由口模式來控制S7--200的串行通訊口。當選擇了自由口模式,用戶程序通過使用接收中斷、發送中斷、發送指令和接收指令來控制通訊口的操作。當處于自由口模式時,通訊協議完全由梯形圖程序控制。SMB30(對于端口0)和SMB130(對于端口1,如果您的S7--200有兩個端口的話)被用于選擇波特率和校驗類型。當S7--200處于STOP模式時,自由口模式被禁止,重新建立正常的通訊(例如:編程設備的訪問)。2/4/202348PLC指令集在最簡單的情況下,可以只用發送指令(XMT)向打印機或者顯示器發送信息。其它例子包括與條碼閱讀器、稱重計和焊機的連接。在每種情況下,您都必須編寫程序,來支持在自由口模式下與S7--200通訊的設備所使用的協議。只有當S7--200處于RUN模式時,才能進行自由口通訊。要使能自由口模式,應該在SMB30(端口0)或者SMB130(端口1)的協議選擇區中設置01。處于自由口通訊模式時,不能與編程設備通訊。2/4/202349PLC指令集將PPI通訊轉變為自由口模式2/4/202350PLC指令集發送數據發送指令使您能夠發送一個字節或多個字節的緩沖區,最多為255個。接收數據接收指令使您能夠接收一個字節或多個字節的緩沖區,最多為255個。接收指令的啟動和結束條件接收指令使用接收信息控制字節(SMB87或SMB187)中的位來定義信息起始和結束條件。2/4/202351PLC指令集使用字符中斷控制接收數據為了完全適應對各種協議的支持,也可以使用字符中斷控制的方式接收數據。接收每個字符時都會產生中斷。在執行與接收字符事件相連的中斷服務程序之前,接收到的字符存入SMB2中,校驗狀態(如果使能的話)存入SM3.0。SMB2是自由口接收字符緩沖區。在自由口模式下,每一個接收到的字符都會存放到這一位置,便于用戶程序訪問。SMB3用于自由口模式。它包含一個校驗錯誤標志位。當接收字符的同時檢測到校驗錯誤時,該位被置位。該字節的其它位被保留。利用校驗位去丟棄信息或向該信息發送否定應答。2/4/202352PLC指令集2/4/202353PLC指令集2/4/202354PLC指令集6.6比較指令數值比較比較指令用于比較兩個數值:IN1=IN2IN1>=IN2IN1<=IN2IN1>IN2IN1<IN2IN1<>IN2字節比較操作是無符號的。整數比較操作是有符號的。雙字比較操作是有符號的。實數比較操作是有符號的。2/4/202355PLC指令集對于LAD和FBD:當比較結果為真時,比較指令使觸點閉合(LAD)或者輸出接通(FBD)。對于STL:當比較結果為真時,對1進行LD,A或O操作,并置入棧頂。2/4/202356PLC指令集2/4/202357PLC指令集2/4/202358PLC指令集字符串比較字符串比較指令比較兩個字符串的ASCII碼字符:IN1=IN2IN1<>IN2當比較結果為真時,比較指令使觸點閉合(LAD)或者輸出接通(FBD),或者對1進行LD,A或O操作,并置入棧頂(STL)。2/4/202359PLC指令集6.7轉換指令標準轉換指令數字轉換字節轉為整數(BTI)、整數轉為字節(ITB)、整數轉為雙整數(ITD)、雙整數轉為整數(DTI)、雙整數轉為實數(DTR)、BCD碼轉為整數(BCDI)和整數轉為BCD碼(IBCD)。以上指令將輸入值IN轉換為指定的格式并存儲到由OUT指定的輸出值存儲區中。例如:可以將雙整數值轉為實數值;也可以在整數和BCD碼格式之間相互轉換。2/4/202360PLC指令集四舍五入(ROUND)和取整(TRUNC)四舍五入指令(ROUND)將一個實數轉為一個雙整數值,并將四舍五入的結果存入OUT指定的變量中。取整指令(TRUNC)將一個實數轉為一個雙整數值,并將實數的整數部分作為結果存入OUT指定的變量中。包絡段數段碼指令(SEG)允許您產生一個點陣,用于點亮七段碼顯示器的各個段。2/4/202361PLC指令集2/4/202362PLC指令集ASCII碼轉換指令有效的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這些字母數字字符。2/4/202363PLC指令集將數值轉為ASCII碼整數轉ASCII碼(ITA)、雙整數轉ASCII碼(DTA)和實數轉ASCII碼(RTA)指令,分別將整數、雙整數或實數值轉換成ASCII碼字符。2/4/202364PLC指令集2/4/202365PLC指令集2/4/202366PLC指令集字符串轉換指令將數值轉換為字符串整數轉字符串(ITS)、雙整數轉字符串(DTS)和實數轉字符串(RTS)指令,將整數、雙整數或實數值(IN)轉換成ASCII碼字符串(OUT)。2/4/202367PLC指令集將子字符串轉換為數字值子字符串轉整數(STI)、子字符串轉雙整數(STD)和子字符串轉實數(STR)指令,將從偏移量INDX開始的字符串值IN轉換成整數/雙整數或實數值OUT。2/4/202368PLC指令集2/4/202369PLC指令集編碼和解碼指令編碼編碼指令(ENCO)將輸入字IN的最低有效位的位號寫入輸出字節OUT的最低有效“半字節”(4位)中。譯碼譯碼指令(DECO)根據輸入字節(IN)的低四位所表示的位號置輸出字(OUT)的相應位為1,輸出字的所有其他位都清0。2/4/202370PLC指令集2/4/202371PLC指令集6.8計數器指令SIMATIC計數器指令增計數器增計數指令(CTU)從當前計數值開始,在每一個(CU)輸入狀態從低到高時遞增計數。當CXX的當前值大于等于預置值PV時,計數器位CXX置位。當復位端(R)接通或者執行復位指令后,計數器被復位。當它達到最大值(32,767)后,計數器停止計數。STL操作:H復位輸入:棧頂H計數輸入:其值被裝載在第二個堆棧中。2/4/202372PLC指令集減計數器減計數指令(CTD)從當前計數值開始,在每一個(CD)輸入狀態的低到高時遞減計數。當CXX的當前值等于0時,計數器位CXX置位。當裝載輸入端(LD)接通時,計數器位被復位,并將計數器的當前值設為預置值PV。當計數值到0時,計數器停止計數,計數器位CXX接通。STL操作:H裝載輸入:棧頂H計數輸入:其值被裝載在第二個堆棧中。2/4/202373PLC指令集增/減計數器增/減計數指令(CTUD),在每一個增計數輸入(CU)的低到高時增計數,在每一個減計數輸入(CD)的低到高時減計數。計數器的當前值CXX保存當前計數值。在每一次計數器執行時,預置值PV與當前值作比較。當達到最大值(32767)時,在增計數輸入處的下一個上升沿導致當前計數值變為最小值(--32768)。當達到最小值(--32768)時,在減計數輸入端的下一個上升沿導致當前計數值變為最大值(32767)。當CXX的當前值大于等于預置值PV時,計數器位CXX置位。否則,計數器位關斷。當復位端(R)接通或者執行復位指令后,計數器被復位。當達到預置值PV時,CTUD計數器停止計數。2/4/202374PLC指令集STL操作:H復位輸入:棧頂H減計數輸入:其值被裝載在第二棧位中。H增計數輸入:其值被裝載在第三棧位中。2/4/202375PLC指令集2/4/202376PLC指令集2/4/202377PLC指令集6.9高速計數器指令定義高速計數器定義高速計數器指令(HDEF)為指定的高速計數器(HSCx)選擇操作模式。模塊的選擇決定了高速計數器的時鐘、方向、啟動和復位功能。對于每一個高速計數器使用一條定義高速計數器指令。高速計數器高速計數器指令(HSC)在HSC特殊存儲器位狀態的基礎上配置和控制高速計數器。參數N指定高速計數器的標號。2/4/202378PLC指令集高速計數器可以被配置為12種模式中的任意一種,詳細情況可參考SIEMENSS7-200系統手冊。每一個計數器都有時鐘、方向控制、復位、啟動的特定輸入。對于雙相計數器,兩個時鐘都可以運行在最高頻率。在正交模式下,您可以選擇一倍速(1x)或者四倍速(4x)計數速率。所有計數器都可以運行在最高頻率下而互不影響。2/4/202379PLC指令集高速計數器編程可以使用指令向導來配置計數器。向導程序使用下列信息:計數器的類型和模式、計數器的預置值、計數器的初始值和計數的初始方向。要啟動HSC指令向導,可以在命令菜單窗口中選擇Tools>InstructionWizard,然后在向導窗口中選擇HSC指令。2/4/202380PLC指令集對高速計數器編程,必須完成下列基本操定義計數器和模式設置控制字節設置初始值設置預置值指定并使能中斷服務程序激活高速計數器高速計數器的編程示例省略。2/4/202381PLC指令集6.10脈沖輸出指令脈沖輸出指令(PLS)用于在高速輸出(Q0.0和Q0.1)上控制脈沖串輸出(PTO)和脈寬調制(PWM)功能。請參閱資料光盤上應用示例中使用PLS指令進行PTO/PWM操作的程序。見應用示例7、22、23、30和50。2/4/202382PLC指令集6.11數字運算指令加、減、乘、除指令加法減法IN1+IN2=OUTIN1--IN2=OUTLAD和FBDIN1+OUT=OUTOUT--IN1=OUTSTL整數加法(+I)或者整數減法(--I)指令,將兩個16位整數相加或者相減,產生一個16位結果。雙整數加法(+D)或者雙整數減法(--D)指令,將兩個32位整數相加或者相減,產生一個32位結果。實數加法(+R)和實數減法(--R)指令,將兩個32位實數相加或相減,產生一個32位實數結果。2/4/202383PLC指令集乘法除法IN1*IN2=OUTIN1/IN2=OUTLAD和FBDIN1*OUT=OUTOUT/IN1=OUTSTL整數乘法(*I)或者整數除法(/I)指令,將兩個16位整數相乘或者相除,產生一個16位結果。(對于除法,余數不被保留。)雙整數乘法(*D)或者雙整數除法(/D)指令,將兩個32位整數相乘或者相除,產生一個32位結果。(對于除法,余數不被保留。)實數乘法(*R)或實數除法(/R)指令,將兩個32位實數相乘或相除,產生一個32位實數結果。2/4/202384PLC指令集2/4/202385PLC指令集2/4/202386PLC指令集2/4/202387PLC指令集2/4/202388PLC指令集2/4/202389PLC指令集數學功能指令正弦、余弦和正切正弦(SIN)、余弦(COS)和正切(TAN)指令計算角度值IN的三角函數值,并將結果存放在OUT中。輸入角度值是弧度值。SIN(IN)=OUTCOS(IN)=OUTTAN(IN)=OUT要將角度從度數變為弧度,可以使用MUL_R(*R)指令,將度數乘以1.745329E--2(接近π/180)即可。2/4/202390PLC指令集自然對數和自然指數自然對數指令(LN)計算輸入值IN的自然對數,并將結果存放到OUT中。自然指數指令(EXP)計算輸入值IN的自然指數值,并將結果存放到OUT中。LN(IN)=OUTEXP(IN)=OUT平方根平方根指令(SQRT)計算實數(IN)的平方根,并將結果存放到OUT中。SQRT(IN)=OUT2/4/202391PLC指令集遞增和遞減指令遞增IN+1=OUTLAD和FBDOUT+1=OUTSTL遞減IN--1=OUTLAD和FBDOUT--1=OUTSTL遞增或者遞減指令將輸入IN加1或者減1,并將結果存放在OUT中。字節遞增(INCB)和字節遞減(DECB)操作是無符號的。字遞增(INCW)和字遞減(DECW)操作是有符號的。雙字遞增(INCD)和雙字遞減(DECD)操作是有符號的。2/4/202392PLC指令集2/4/202393PLC指令集6.12比例/積分/微分(PID)回路控制指令PID回路控制指令(PID)根據輸入和表(TBL)中的配置信息,對相應的LOOP執行PID回路計算。2/4/202394PLC指令集6.13中斷指令中斷允許(ENI)和中斷禁止(DISI)中斷允許指令(ENI)全局地允許所有被連接的中斷事件。中斷禁止指令(DISI)全局地禁止處理所有中斷事件。當進入RUN模式時,初始狀態為禁止中斷。在RUN模式,您可以執行全局中斷允許指令(ENI)允許所有中斷。全局中斷禁止指令(DISI)不允許處理中斷服務程序,但中斷事件仍然會排隊等候。2/4/202395PLC指令集中斷條件返回(CRETI)中斷條件返回指令(CRETI)用于根據前面的邏輯操作的條件,從中斷服務程序中返回。中斷連接(ATCH)中斷連接指令(ATCH)將中斷事件EVNT與中斷服務程序號INT相關聯,并使能該中斷事件。中斷分離(DTCH)中斷分離指令(DTCH)將中斷事件EVNT與中斷服務程序之間的關聯切斷,并禁止該中斷事件。2/4/202396PLC指令集清除中斷事件(CLR—EVENT)S7--200支持的中斷類型S7--200支持下列類型的中斷服務程序:通訊口中斷:S7--200生成使程序可以控制通訊口的事件。
I/O中斷:S7--200對I/O點狀態的各種變化產生中斷事件。這些事件可以對高速計數器、脈沖輸出或輸入的上升或下降狀態做出響應。時基中斷:S7--200產生使程序在指定的間隔上起作用的事件。2/4/202397PLC指令集中斷優先級和中斷隊列在各個指定的優先級之內,CPU按先來先服務的原則處理中斷。任何時間點上,只有一個用戶中斷程序正在執行。一旦中斷程序開始執行,它要一直執行到結束。而且不會被別的中斷程序,甚至是更高優先級的中斷程序所打斷。當另一個中斷正在處理中,新出現的中斷需要排隊,等待處理。2/4/202398PLC指令集2/4/202399PLC指令集2/4/2023100PLC指令集2/4/2023101PLC指令集6.14邏輯操作指令取反指令字節、字和雙字取反字節取反(INVB)、字取反(INVW)和雙字取反(INVD)指令將輸入IN取反的結果存入OUT中。使ENO=0的錯誤條件:H0006(間接尋址)受影響的SM標志位:HSM1.0(結果為0)2/4/2023102PLC指令集2/4/2023103PLC指令集2/4/2023104PLC指令集2/4/2023105PLC指令集2/4/2023106PLC指令集與、或和異或指令字節與、字與和雙字與字節與(ANDB)、字與(ANDW)和雙字與(ANDD)指令將輸入值IN1和IN2的相應位進行與操作,將結果存入OUT中。字節或、字或和雙字或字節或(ORB)、字或指令(ORW)和雙字或(ORD)指令將兩個輸入值IN1和IN2的相應位進行或操作,將結果存入OUT中。2/4/2023107PLC指令集字節異或、字異或和雙字異或字節異或(ROB)、字異或(ORW)和雙字異或(ORD)指令將兩個輸入值IN1和IN2的相應位進行異或操作,將結果存入OUT中。2/4/2023108PLC指令集2/4/2023109PLC指令集6.15傳送指令字節、字、雙字或者實數傳送字節傳送(MOVB)、字傳送(MOVW)、雙字傳送(MOVD)和實數傳送指令在不改變原值的情況下將IN中的值(MOVR)傳送到OUT。2/4/2023110PLC指令集字節立即傳送(讀和寫)字節立即傳送指令允許您在物理I/O和存儲器之間立即傳送一個字節數據。字節立即讀(BIR)指令讀物理輸入(IN),并將結果存入內存地址(OUT),但過程映像寄存器并不刷新。字節立即寫指令(BIW)從內存地址(IN)中讀取數據,寫入物理輸出(OUT),同時刷新相應的過程映像區。2/4/2023111PLC指令集塊傳送指令字節、字、雙字的塊傳送字節塊傳送(BMB)、字塊傳送(BMW)和雙字塊傳送(BMD)指令傳送指定數量的數據到一個新的存儲區,數據的起始地址IN,數據長度為N個字節、字或者雙字,新塊的起始地址為OUT。N的范圍從1到255。2/4/2023112PLC指令集2/4/2023113PLC指令集6.16程序控制指令條件結束條件結束指令(END)根據前面的邏輯關系終止當前掃描周期。可以在主程序中使用條件結束指令,但不能在子程序或中斷服務程序中使用該命令。停止停止指令(STOP)導致CPU從RUN到STOP模式從而可以立即終止程序的執行。如果STOP指令在中斷程序中執行,那么該中斷立即終止,并且忽略所有掛起的中斷,繼續掃描程序的剩余部分。完成當前周期的剩余動作,包括主用戶程序的執行,并在當前掃描的最后,完成從RUN到STOP模式的轉變。2/4/2023114PLC指令集看門狗復位看門狗復位指令(WDR)允許S7--200CPU的系統看門狗定時器被重新觸發,這樣可以在不引起看門狗錯誤的情況下,增加此掃描所允許的時間。使用WDR指令時要小心,因為如果您用循環指令去阻止掃描完成或過度的延遲掃描完成的時間,那么在終止本次掃描之前,下列操作過程將被禁止:2/4/2023115PLC指令集通訊(自由端口方式除外)
I/O更新(立即I/O除外)強制更新
SM位更新(SM0,SM5~SM29不能被更新)運行時間診斷由于掃描時間超過25秒,10ms和100ms定時器將不會正確累計時間。在中斷程序中的STOP指令帶數字量輸出的擴展模塊也包含一個看門狗定時器,如果模塊沒有被S7--200寫,則此看門狗定時器將關斷輸出。在擴展的掃描時間內,對每個帶數字量輸出的擴展模塊進行立即寫操作以保持正確的輸出。請參考這段描述之后的實例。2/4/2023116PLC指令集2/4/2023117PLC指令集For--Next循環指令FOR和NEXT指令可以描述需重復進行一定次數的循環體。每條FOR指令必須對應一條NEXT指令。For--Next循環嵌套(一個For--Next循環在另一個For--Next循環之內)深度可達8層。FOR--NEXT指令執行FOR指令和NEXT指令之間的指令。必須指定計數值或者當前循環次數INDX、初始值(INIT)和終止值(FINAL)。NEXT指令標志著FOR循環的結束。2/4/2023118PLC指令集2/4/2023119PLC指令集跳轉指令跳轉到標號指令(JMP)執行程序內標號N指定的程序分支。標號指令標記跳轉目的地的位置N。可以在主程序、子程序或者中斷服務程序中,使用跳轉指令。跳轉和與之相應的標號指令必須位于同一段程序代碼(無論是主程序、子程序還是中斷服務程序)。不能從主程序跳到子程序或中斷程序,同樣不能從子程序或中斷程序跳出。可以在SCR程序段中使用跳轉指令,但相應的標號指令必須也在同一個SCR段中。2/4/2023120PLC指令集2/4/2023121PLC指令集順控繼電器(SCR)指令SCR指令使得能夠按照自然工藝段在LAD、FBD或STL中編制狀態控制程序。只要應用中包含的一系列操作需要反復執行,就可以使用SCR使程序更加結構化,以至于直接針對應用。這樣可以使得編程和調試更加快速和簡單。裝載SCR指令(LSCR)將S位的值裝載到SCR和邏輯堆棧中。SCR堆棧的結果值決定是否執行SCR程序段。SCR堆棧的值會被復制到邏輯堆棧中,因此可以直接將盒或者輸出線圈連接到左側的能流線上而不經過中間觸點。2/4/2023122PLC指令集2/4/2023123PLC指令集分支控制在許多實例中,一個順序控制狀態流必須分成兩個或多個不同分支控制狀態流。當一個控制狀態流分離成多個分支時,所有的分支控制狀態流必須同時激活,如圖6-33所示。使用多條由相同轉移條件激活的SCRT指令,可以在一段SCR程序中實現控制流的分支,如下面的實例所示。2/4/2023124PLC指令集2/4/2023125PLC指令集2/4/2023126PLC指令集合并控制與分支控制的情況類似,兩個或者多個分支狀態流必須合并為一個狀態流。當多個狀態流匯集成一個時,我們稱之為合并。當控制流合并時,所有的控制流必須都完成,才能執行下一個狀態。圖6-34給出了兩個控制流合并的示意圖。在SCR程序中,通過從狀態L轉到狀態L’,以及從狀態M轉到狀態M’的方法實現控制流的合并。當狀態L’、M’的SCR使能位為真時,即可激活狀態N,如下例所示。2/4/2023127PLC指令集2/4/2023128PLC指令集2/4/2023129PLC指令集診斷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)用紅光指示。2/4/2023130PLC指令集2/4/2023131PLC指令集6.17移位和循環指令右移(SHR)和左移(SHL)指令移位指令將輸入值IN右移或左移N位,并將結果裝載到輸出OUT中。移位指令對移出的位自動補零。如果位數N大于或等于最大允許值(對于字節操作為8,對于字操作為16,對于雙字操作為32),那么移位操作的次數為最大允許值。如果移位次數大于0,溢出標志位(SM1.1)上就是最近移出的位值。如果移位操作的結果為0,零存儲器位(SM1.0)置位。字節操作是無符號的。對于字和雙字操作,當使用有符號數據類型時,符號位也被移動。2/4/2023132PLC指令集循環右移(ROR)和循環左移(ROL)指令循環移位指令將輸入值IN循環右移或者循環左移N位,并將輸出結果裝載到OUT中。循環移位是圓形的。如果位數N大于或者等于最大允許值(對于字節操作為8,對于字操作為16,對于雙字操作為32),S7--200在執行循環移位之前,會執行取模操作,得到一個有效的移位次數。移位位數的取模操作的結果,對于字節操作是0到7,對于字操作是0到15,而對于雙字操作是0到31。2/4/2023133PLC指令集2/4/2023134PLC指令集移位寄存器指令(SHRB)移位寄存器指令將一個數值移入移位寄存器中。移位寄存器指令提供了一種排列和控制產品流或者數據的簡單方法。使用該指令,每個掃描周期,整個移位寄存器移動一位。移位寄存器指令把輸入的DATA數值移入移位寄存器。其中,S_BIT指定移位寄存器的最低位,N指定移位寄存器的長度和移位方向(正向移位=N,反向移位=--N)。SHRB指令移出的每一位都被放入溢出標志位(SM1.1)。這條指令的執行取決于最低有效位(S_BIT)和由長度(N)指定的位數。2/4/2023135PLC指令集2/4/2023136PLC指令集2/4/2023137PLC指令集字節交換指令(SWAP)字節交換指令用來交換輸入字IN的高字節和低字節。2/4/2023138PLC指令集6.18字符串指令字符串指令字符串長度字符串長度指令(SLEN)返回IN中指定的字符串的長度值。字符串復制字符串復制指令(SCPY)將IN中指定的字符串復制到OUT中。字符串連接字符串連接指令(SCAT)將IN中指定的字符串連接到OUT中指定字符串的后面。2/4/2023139PLC指令集2/4/2023140PLC指令集從字符串中復制子字符串從字符串中復制子字符串指令(SSCPY)從INDX指定的字符號開始,將IN中存儲的字符串中的N個字符復制到OUT中。2/4/2023141PLC指令集字符串搜索字符串搜索指令(SFND)在IN1字符串中尋找IN2字符串。由OUT指定搜索的起始位置。如果在IN1中找到了與IN2中字符串相匹配的一段字符,則OUT中會存入這段字符中首個字符的位置。如果沒有找到,OUT被清0。字符搜索字符搜索指令(CFND)在IN1字符串中尋找IN2字符串中的任意字符。由OUT指定搜索的起始位置。如果找到了匹配的字符,字符的位置被寫入OUT中。如果沒有找到,OUT被清0。2/4/2023142PLC指令集2/4/2023143PLC指令集2/4/2023144PLC指令集6.19表指令填表ATT指令向表(TBL)中增加一個數值(DATA)。表中第一個數是最大填表數(TL),第二個數是實際填表數(EC),指出已填入表的數據個數。新的數據填加在表中上一個數據的后面。每向表中填加一個新的數據,EC會自動加1。一個表最多可以有100條數據。2/4/202314
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新疆政法學院《中國傳統文化經典著作選讀》2023-2024學年第二學期期末試卷
- 淮北師范大學《細胞生物學專題》2023-2024學年第二學期期末試卷
- 惠州衛生職業技術學院《食品工程制圖》2023-2024學年第二學期期末試卷
- 山西省呂梁市交城縣2025屆數學三下期末檢測試題含解析
- 石家莊工程職業學院《管理系統工程》2023-2024學年第二學期期末試卷
- 江蘇省蘇州市常熟市2024-2025學年六年級下學期小升初數學考前押題卷含解析
- 上海大學市北附屬中學2025年高考信息卷語文試題含解析
- 黑龍江省牡丹江管理局北斗星協會達標名校2025屆下學期初三語文試題第一次質量檢測試題考試試卷含解析
- 山東省棗莊八中東校2024-2025學年高三第二次質量監測物理試題含解析
- 永善縣2025屆三下數學期末經典模擬試題含解析
- 【精選】人教版四年級下冊數學《脫式計算》(含簡便運算)專項練習題
- 血液透析操作流程(共5篇)
- 脊柱常見病變的影像診斷
- 紀錄片賞析完整版
- GB/T 30103.1-2013冷庫熱工性能試驗方法第1部分:溫度和濕度檢測
- GB/T 21385-2008金屬密封球閥
- GB/T 211-2017煤中全水分的測定方法
- (紅皮書)水利水電工程施工質量評定表
- 工序標準工時及產能計算表
- 處分通報范文員工處分通報范文4篇
- 汽車品牌馬自達課件
評論
0/150
提交評論