輔助學習課件-S7-200可編程控制器指令系統(tǒng)_第1頁
輔助學習課件-S7-200可編程控制器指令系統(tǒng)_第2頁
輔助學習課件-S7-200可編程控制器指令系統(tǒng)_第3頁
輔助學習課件-S7-200可編程控制器指令系統(tǒng)_第4頁
輔助學習課件-S7-200可編程控制器指令系統(tǒng)_第5頁
已閱讀5頁,還剩169頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

S7-200可編程控制器指令集PLC課程組2/4/20231PLC指令集主要內容6.1用于描述指令的習慣用語6.2S7--200存儲器范圍及特性6.3位邏輯指令6.4時鐘指令6.5通訊指令6.6比較指令6.7轉換指令6.8計數(shù)器指令6.9高速計數(shù)器指令2/4/20232PLC指令集6.10脈沖輸出指令6.11數(shù)字運算指令6.12比例/積分/微分(PID)回路控制指令6.13中斷指令6.14邏輯操作指令6.15傳送指令6.16程序控制指令6.17移位和循環(huán)指令6.18字符串指令2/4/20233PLC指令集6.19表指令6.20定時器指令6.21子程序指令2/4/20234PLC指令集6.1用于描述指令的習慣用語圖6-1給出了對一條指令的典型描述,并指出了用于描述指令及其操作的不同區(qū)域。指令說明包括LAD、FBD和STL三種格式。操作數(shù)表列出了指令的操作數(shù),并給出每個操作數(shù)的有效數(shù)據(jù)類型,存儲區(qū)的區(qū)域及長度。EN/ENO操作數(shù)和數(shù)據(jù)類型沒有在指令操作數(shù)表中列出,因為這些操作數(shù)對于所有的LAD和FBD指令來說都是一樣的。對于LAD:EN和ENO是能流,為布爾數(shù)據(jù)類型。對于FBD:EN和ENO是I、Q、V、M、SM、S、T、C、L或者能流,為布爾數(shù)據(jù)類型。2/4/20235PLC指令集2/4/20236PLC指令集6.2S7--200存儲器范圍及特性2/4/20237PLC指令集2/4/20238PLC指令集6.3位邏輯指令觸點標準觸點常開觸點指令(LD、A和O)與常閉觸點指令(LDN、AN和ON)從存儲器或者過程映象寄存器中得到參考值。標準觸點指令從存儲器中得到參考值。(如果數(shù)據(jù)類型是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)在指令執(zhí)行時得到物理輸入值,但過程映像寄存器并不刷新。當物理輸入點狀態(tài)為1時,常開立即觸點閉合;當物理輸入點狀態(tài)為0時,常閉立即觸點閉合。常開立即指令LD、AND或OR將物理輸入值存入棧頂,而常閉立即指令LD、AND或OR將物理輸入的值取反,再存入棧頂。2/4/202312PLC指令集取反指令(NOT)取反指令(NOT)改變能流輸入的狀態(tài)(也就是說,它將棧頂值由0變?yōu)?,由1變?yōu)?)。正、負跳變指令(EU、ED)正跳變觸點指令(EU)檢測到每一次正跳變(由0到1),讓能流接通一個掃描周期。負跳變觸點指令(ED)檢測到每一次負跳變(由1到0),讓能流接通一個掃描周期。對于正跳變指令,一旦發(fā)現(xiàn)有正跳變發(fā)生(由0到1),該棧頂值被置為1,否則置0。對于負跳變指令,一旦發(fā)現(xiàn)有負跳變發(fā)生(由1到0),該棧頂值被置為1,否則置0。對于運行模式下編輯(在RUN模式下編輯應用程序),必須為正跳變指令和負跳變指令輸入?yún)?shù)。關于在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指令集線圈輸出(=)輸出指令(=)將新值寫入輸出點的過程映象寄存器。當輸出指令執(zhí)行時,S7--200將輸出過程映象寄存器中的位接通或者斷開。在LAD和FBD中,指定點的值等于能流。在STL中,棧頂?shù)闹祻椭频街付ㄎ?。立即輸出?I)當指令執(zhí)行時,立即輸出指令(=I)將新值同時寫到物理輸出點和相應的過程映象寄存器中。2/4/202319PLC指令集2/4/202320PLC指令集2/4/202321PLC指令集當立即輸出指令執(zhí)行時,物理輸出點立即被置為能流值。在STL中,立即指令將棧頂?shù)闹盗⒓磸椭频轿锢磔敵鳇c的指定位上?!癐”表示立即,當指令執(zhí)行時,新值會同時被寫到物理輸出和相應的過程映象寄存器。這一點不同于非立即指令,只把新值寫入過程映象寄存器。置位(S)和復位(R)置位(S)和復位(R)指令將從指定地址開始的N個點置位或者復位。可以一次置位或者復位1--255個點。2/4/202322PLC指令集如果復位指令指定的是一個定時器位(T)或計數(shù)器位(C),指令不但復位定時器或計數(shù)器位,而且清除定時器或計數(shù)器的當前值。2/4/202323PLC指令集立即置位和立即復位立即置位和立即復位指令將從指定地址開始的N個點立即置位或者立即復位??梢砸淮沃梦换驈臀?到128個點?!癐”表示立即,當指令執(zhí)行時,新值會同時被寫到物理輸出和相應的過程映象寄存器。這一點不同于非立即指令,只把新值寫入過程映像寄存器。2/4/202324PLC指令集2/4/202325PLC指令集2/4/202326PLC指令集2/4/202327PLC指令集邏輯堆棧指令棧裝載與(ALD)棧裝載與指令(ALD)對堆棧中第一層和第二層的值進行邏輯與操作,結果放入棧頂。執(zhí)行完棧裝載與指令之后,棧深度減1。棧裝載或(OLD)棧裝載或指令(OLD)對堆棧中第一層和第二層的值進行邏輯或操作,結果放入棧頂。執(zhí)行完棧裝載或指令之后,棧深度減1。2/4/202328PLC指令集邏輯推入棧(LPS)邏輯推入棧指令(LPS)復制棧頂?shù)闹担⑦@個值推入棧。棧底的值被推出并消失。邏輯讀棧(LRD)邏輯讀棧指令(LRD)復制堆棧中的第二個值到棧頂。堆棧沒有推入?;蛘邚棾鰲2僮?,但舊的棧頂值被新的復制值取代。邏輯彈出棧(LPP)邏輯彈出棧指令(LPP)彈出棧頂?shù)闹担褩5牡诙€棧值成為新的棧頂值。2/4/202329PLC指令集ENO與(AENO)ENO與指令(AENO)對ENO位和棧頂?shù)闹颠M行邏輯與操作,其產生的效果與LAD或者FBD中盒指令的ENO位相同。與操作結果成為新的棧頂。ENO是LAD和FBD中盒指令的布爾輸出。如果盒指令的EN輸入有能流并且執(zhí)行沒有錯誤,則ENO將能流傳遞給下一元素。您可以把ENO作為指令成功完成的使能標志位。ENO位被用作棧頂,影響能流和后續(xù)指令的執(zhí)行。STL中沒有EN輸入。條件指令要想執(zhí)行,棧頂值必須為邏輯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觸發(fā)器指令置位優(yōu)先觸發(fā)器是一個置位優(yōu)先的鎖存器。當置位信號(S1)和復位信號(R)都為真時,輸出為真。復位優(yōu)先觸發(fā)器是一個復位優(yōu)先的鎖存器。當置位信號(S)和復位信號(R1)都為真時,輸出為假。Bit參數(shù)用于指定被置位或者復位的布爾參數(shù)??蛇x的輸出反映Bit參數(shù)的信號狀態(tài)。表6-7中給出了例子程序的真值表。2/4/202334PLC指令集2/4/202335PLC指令集2/4/202336PLC指令集6.4時鐘指令讀實時時鐘(TODR)和寫實時時鐘(TODW)讀實時時鐘(TODR)指令從硬件時鐘中讀當前時間和日期,并把它裝載到一個8字節(jié),起始地址為T的時間緩沖區(qū)中。寫實時時鐘(TODW)指令將當前時間和日期寫入硬件時鐘,當前時鐘存儲在以地址T開始的8字節(jié)時間緩沖區(qū)中。您必須按照BCD碼的格式編碼所有的日期和時間值(例如:用16#97表示1997年)。圖6-4給出了時間緩沖區(qū)(T)的格式。2/4/202337PLC指令集時間日期(TOD)時鐘在電源掉電或內存丟失后,初始化為下列日期和時間:日期:01--Jan--90時間:00:00:00星期:星期日2/4/202338PLC指令集2/4/202339PLC指令集擴展讀實時時鐘(TODRX)擴展讀實時時鐘(TODRX)指令從PLC中讀取當前時間、日期和夏令時組態(tài),并裝載到從由T指定的地址開始的19字節(jié)緩沖區(qū)內。擴展寫實時時鐘(TODWX)擴展讀實時時鐘(TODWX)指令寫當前時間、日期和夏令時組態(tài)到PLC中由T指定的地址開始的19字節(jié)緩沖區(qū)內。必須按照BCD碼的格式編碼所有的日期和時間值(例如:用16#02表示2002年)。表6-9給出了19字節(jié)時間緩沖區(qū)(T)的格式。時間日期時鐘在電源掉電或內存丟失后,初始化下列日期和時間:2/4/202340PLC指令集日期:01--Jan--90時間:00:00:00星期:星期日2/4/202341PLC指令集2/4/202342PLC指令集6.5通訊指令通訊指令網絡讀寫指令網絡讀指令(NETR)初始化一個通訊操作,根據(jù)表(TBL)的定義,通過指定端口從遠程設備上采集數(shù)據(jù)。網絡寫指令(NETW)初始化一個通訊操作,根據(jù)表(TBL)的定義,通過指定端口向遠程設備寫數(shù)據(jù)。網絡讀指令可以從遠程站點讀取最多16個字節(jié)的信息,網絡寫指令可以向遠程站點寫最多16個字節(jié)的信息。在程序中,可以使用任意條網絡讀寫指令,但是在同一時間,最多只能有8條網絡讀寫指令被激活。例如,在所給的S7--200CPU中,可以有4條網絡讀指令和4條網絡寫指令,或者2條網絡讀指令和6條網絡寫指令在同一時間被激活。可以使用網絡讀寫向導程序。要啟動網絡讀寫向導程序,在命令菜單中選擇Tools>InstructionWizard,并且在指令向導窗口中選擇網絡讀寫。2/4/202343PLC指令集2/4/202344PLC指令集2/4/202345PLC指令集發(fā)送(XMT)和接收(RCV)指令發(fā)送指令(XMT)用于在自由口模式下依靠通訊口發(fā)送數(shù)據(jù)。接收指令(RCV)啟動或者終止接收信息功能。必須為接收操作指定開始和結束條件。從指定的通訊口接收到的信息被存儲在數(shù)據(jù)緩沖區(qū)(TBL)中。數(shù)據(jù)緩沖區(qū)的第一個數(shù)據(jù)指明了接收到的字節(jié)數(shù)。2/4/202346PLC指令集2/4/202347PLC指令集使用自由口模式控制串行通訊口通過編程,可以選擇自由口模式來控制S7--200的串行通訊口。當選擇了自由口模式,用戶程序通過使用接收中斷、發(fā)送中斷、發(fā)送指令和接收指令來控制通訊口的操作。當處于自由口模式時,通訊協(xié)議完全由梯形圖程序控制。SMB30(對于端口0)和SMB130(對于端口1,如果您的S7--200有兩個端口的話)被用于選擇波特率和校驗類型。當S7--200處于STOP模式時,自由口模式被禁止,重新建立正常的通訊(例如:編程設備的訪問)。2/4/202348PLC指令集在最簡單的情況下,可以只用發(fā)送指令(XMT)向打印機或者顯示器發(fā)送信息。其它例子包括與條碼閱讀器、稱重計和焊機的連接。在每種情況下,您都必須編寫程序,來支持在自由口模式下與S7--200通訊的設備所使用的協(xié)議。只有當S7--200處于RUN模式時,才能進行自由口通訊。要使能自由口模式,應該在SMB30(端口0)或者SMB130(端口1)的協(xié)議選擇區(qū)中設置01。處于自由口通訊模式時,不能與編程設備通訊。2/4/202349PLC指令集將PPI通訊轉變?yōu)樽杂煽谀J?/4/202350PLC指令集發(fā)送數(shù)據(jù)發(fā)送指令使您能夠發(fā)送一個字節(jié)或多個字節(jié)的緩沖區(qū),最多為255個。接收數(shù)據(jù)接收指令使您能夠接收一個字節(jié)或多個字節(jié)的緩沖區(qū),最多為255個。接收指令的啟動和結束條件接收指令使用接收信息控制字節(jié)(SMB87或SMB187)中的位來定義信息起始和結束條件。2/4/202351PLC指令集使用字符中斷控制接收數(shù)據(jù)為了完全適應對各種協(xié)議的支持,也可以使用字符中斷控制的方式接收數(shù)據(jù)。接收每個字符時都會產生中斷。在執(zhí)行與接收字符事件相連的中斷服務程序之前,接收到的字符存入SMB2中,校驗狀態(tài)(如果使能的話)存入SM3.0。SMB2是自由口接收字符緩沖區(qū)。在自由口模式下,每一個接收到的字符都會存放到這一位置,便于用戶程序訪問。SMB3用于自由口模式。它包含一個校驗錯誤標志位。當接收字符的同時檢測到校驗錯誤時,該位被置位。該字節(jié)的其它位被保留。利用校驗位去丟棄信息或向該信息發(fā)送否定應答。2/4/202352PLC指令集2/4/202353PLC指令集2/4/202354PLC指令集6.6比較指令數(shù)值比較比較指令用于比較兩個數(shù)值:IN1=IN2IN1>=IN2IN1<=IN2IN1>IN2IN1<IN2IN1<>IN2字節(jié)比較操作是無符號的。整數(shù)比較操作是有符號的。雙字比較操作是有符號的。實數(shù)比較操作是有符號的。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轉換指令標準轉換指令數(shù)字轉換字節(jié)轉為整數(shù)(BTI)、整數(shù)轉為字節(jié)(ITB)、整數(shù)轉為雙整數(shù)(ITD)、雙整數(shù)轉為整數(shù)(DTI)、雙整數(shù)轉為實數(shù)(DTR)、BCD碼轉為整數(shù)(BCDI)和整數(shù)轉為BCD碼(IBCD)。以上指令將輸入值IN轉換為指定的格式并存儲到由OUT指定的輸出值存儲區(qū)中。例如:可以將雙整數(shù)值轉為實數(shù)值;也可以在整數(shù)和BCD碼格式之間相互轉換。2/4/202360PLC指令集四舍五入(ROUND)和取整(TRUNC)四舍五入指令(ROUND)將一個實數(shù)轉為一個雙整數(shù)值,并將四舍五入的結果存入OUT指定的變量中。取整指令(TRUNC)將一個實數(shù)轉為一個雙整數(shù)值,并將實數(shù)的整數(shù)部分作為結果存入OUT指定的變量中。包絡段數(shù)段碼指令(SEG)允許您產生一個點陣,用于點亮七段碼顯示器的各個段。2/4/202361PLC指令集2/4/202362PLC指令集ASCII碼轉換指令有效的ASCII碼字符為十六進制的30到39和41到46。在ASCII碼和十六進制數(shù)之間相互轉換ASCII碼轉十六進制數(shù)指令(ATH)將一個長度為LEN從IN開始的ASCII碼字符串轉換成從OUT開始的十六進制數(shù)。十六進制數(shù)轉ASCII碼指令(HTA)將從輸入字節(jié)IN開始的十六進制數(shù),轉換成從OUT開始的ASCII碼字符串。被轉換的十六進制數(shù)的位數(shù)由長度LEN給出。能夠被轉換的ASCII碼字符串或者十六進制數(shù)的最大數(shù)量為255。有效ASCII碼輸入有效的ASCII碼輸入字符是0到9的十六進制數(shù)代碼值30到39,和大寫字符A到F的十六進制數(shù)代碼值41到46這些字母數(shù)字字符。2/4/202363PLC指令集將數(shù)值轉為ASCII碼整數(shù)轉ASCII碼(ITA)、雙整數(shù)轉ASCII碼(DTA)和實數(shù)轉ASCII碼(RTA)指令,分別將整數(shù)、雙整數(shù)或實數(shù)值轉換成ASCII碼字符。2/4/202364PLC指令集2/4/202365PLC指令集2/4/202366PLC指令集字符串轉換指令將數(shù)值轉換為字符串整數(shù)轉字符串(ITS)、雙整數(shù)轉字符串(DTS)和實數(shù)轉字符串(RTS)指令,將整數(shù)、雙整數(shù)或實數(shù)值(IN)轉換成ASCII碼字符串(OUT)。2/4/202367PLC指令集將子字符串轉換為數(shù)字值子字符串轉整數(shù)(STI)、子字符串轉雙整數(shù)(STD)和子字符串轉實數(shù)(STR)指令,將從偏移量INDX開始的字符串值IN轉換成整數(shù)/雙整數(shù)或實數(shù)值OUT。2/4/202368PLC指令集2/4/202369PLC指令集編碼和解碼指令編碼編碼指令(ENCO)將輸入字IN的最低有效位的位號寫入輸出字節(jié)OUT的最低有效“半字節(jié)”(4位)中。譯碼譯碼指令(DECO)根據(jù)輸入字節(jié)(IN)的低四位所表示的位號置輸出字(OUT)的相應位為1,輸出字的所有其他位都清0。2/4/202370PLC指令集2/4/202371PLC指令集6.8計數(shù)器指令SIMATIC計數(shù)器指令增計數(shù)器增計數(shù)指令(CTU)從當前計數(shù)值開始,在每一個(CU)輸入狀態(tài)從低到高時遞增計數(shù)。當CXX的當前值大于等于預置值PV時,計數(shù)器位CXX置位。當復位端(R)接通或者執(zhí)行復位指令后,計數(shù)器被復位。當它達到最大值(32,767)后,計數(shù)器停止計數(shù)。STL操作:H復位輸入:棧頂H計數(shù)輸入:其值被裝載在第二個堆棧中。2/4/202372PLC指令集減計數(shù)器減計數(shù)指令(CTD)從當前計數(shù)值開始,在每一個(CD)輸入狀態(tài)的低到高時遞減計數(shù)。當CXX的當前值等于0時,計數(shù)器位CXX置位。當裝載輸入端(LD)接通時,計數(shù)器位被復位,并將計數(shù)器的當前值設為預置值PV。當計數(shù)值到0時,計數(shù)器停止計數(shù),計數(shù)器位CXX接通。STL操作:H裝載輸入:棧頂H計數(shù)輸入:其值被裝載在第二個堆棧中。2/4/202373PLC指令集增/減計數(shù)器增/減計數(shù)指令(CTUD),在每一個增計數(shù)輸入(CU)的低到高時增計數(shù),在每一個減計數(shù)輸入(CD)的低到高時減計數(shù)。計數(shù)器的當前值CXX保存當前計數(shù)值。在每一次計數(shù)器執(zhí)行時,預置值PV與當前值作比較。當達到最大值(32767)時,在增計數(shù)輸入處的下一個上升沿導致當前計數(shù)值變?yōu)樽钚≈担?-32768)。當達到最小值(--32768)時,在減計數(shù)輸入端的下一個上升沿導致當前計數(shù)值變?yōu)樽畲笾担?2767)。當CXX的當前值大于等于預置值PV時,計數(shù)器位CXX置位。否則,計數(shù)器位關斷。當復位端(R)接通或者執(zhí)行復位指令后,計數(shù)器被復位。當達到預置值PV時,CTUD計數(shù)器停止計數(shù)。2/4/202374PLC指令集STL操作:H復位輸入:棧頂H減計數(shù)輸入:其值被裝載在第二棧位中。H增計數(shù)輸入:其值被裝載在第三棧位中。2/4/202375PLC指令集2/4/202376PLC指令集2/4/202377PLC指令集6.9高速計數(shù)器指令定義高速計數(shù)器定義高速計數(shù)器指令(HDEF)為指定的高速計數(shù)器(HSCx)選擇操作模式。模塊的選擇決定了高速計數(shù)器的時鐘、方向、啟動和復位功能。對于每一個高速計數(shù)器使用一條定義高速計數(shù)器指令。高速計數(shù)器高速計數(shù)器指令(HSC)在HSC特殊存儲器位狀態(tài)的基礎上配置和控制高速計數(shù)器。參數(shù)N指定高速計數(shù)器的標號。2/4/202378PLC指令集高速計數(shù)器可以被配置為12種模式中的任意一種,詳細情況可參考SIEMENSS7-200系統(tǒng)手冊。每一個計數(shù)器都有時鐘、方向控制、復位、啟動的特定輸入。對于雙相計數(shù)器,兩個時鐘都可以運行在最高頻率。在正交模式下,您可以選擇一倍速(1x)或者四倍速(4x)計數(shù)速率。所有計數(shù)器都可以運行在最高頻率下而互不影響。2/4/202379PLC指令集高速計數(shù)器編程可以使用指令向導來配置計數(shù)器。向導程序使用下列信息:計數(shù)器的類型和模式、計數(shù)器的預置值、計數(shù)器的初始值和計數(shù)的初始方向。要啟動HSC指令向導,可以在命令菜單窗口中選擇Tools>InstructionWizard,然后在向導窗口中選擇HSC指令。2/4/202380PLC指令集對高速計數(shù)器編程,必須完成下列基本操定義計數(shù)器和模式設置控制字節(jié)設置初始值設置預置值指定并使能中斷服務程序激活高速計數(shù)器高速計數(shù)器的編程示例省略。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數(shù)字運算指令加、減、乘、除指令加法減法IN1+IN2=OUTIN1--IN2=OUTLAD和FBDIN1+OUT=OUTOUT--IN1=OUTSTL整數(shù)加法(+I)或者整數(shù)減法(--I)指令,將兩個16位整數(shù)相加或者相減,產生一個16位結果。雙整數(shù)加法(+D)或者雙整數(shù)減法(--D)指令,將兩個32位整數(shù)相加或者相減,產生一個32位結果。實數(shù)加法(+R)和實數(shù)減法(--R)指令,將兩個32位實數(shù)相加或相減,產生一個32位實數(shù)結果。2/4/202383PLC指令集乘法除法IN1*IN2=OUTIN1/IN2=OUTLAD和FBDIN1*OUT=OUTOUT/IN1=OUTSTL整數(shù)乘法(*I)或者整數(shù)除法(/I)指令,將兩個16位整數(shù)相乘或者相除,產生一個16位結果。(對于除法,余數(shù)不被保留。)雙整數(shù)乘法(*D)或者雙整數(shù)除法(/D)指令,將兩個32位整數(shù)相乘或者相除,產生一個32位結果。(對于除法,余數(shù)不被保留。)實數(shù)乘法(*R)或實數(shù)除法(/R)指令,將兩個32位實數(shù)相乘或相除,產生一個32位實數(shù)結果。2/4/202384PLC指令集2/4/202385PLC指令集2/4/202386PLC指令集2/4/202387PLC指令集2/4/202388PLC指令集2/4/202389PLC指令集數(shù)學功能指令正弦、余弦和正切正弦(SIN)、余弦(COS)和正切(TAN)指令計算角度值IN的三角函數(shù)值,并將結果存放在OUT中。輸入角度值是弧度值。SIN(IN)=OUTCOS(IN)=OUTTAN(IN)=OUT要將角度從度數(shù)變?yōu)榛《?,可以使用MUL_R(*R)指令,將度數(shù)乘以1.745329E--2(接近π/180)即可。2/4/202390PLC指令集自然對數(shù)和自然指數(shù)自然對數(shù)指令(LN)計算輸入值IN的自然對數(shù),并將結果存放到OUT中。自然指數(shù)指令(EXP)計算輸入值IN的自然指數(shù)值,并將結果存放到OUT中。LN(IN)=OUTEXP(IN)=OUT平方根平方根指令(SQRT)計算實數(shù)(IN)的平方根,并將結果存放到OUT中。SQRT(IN)=OUT2/4/202391PLC指令集遞增和遞減指令遞增IN+1=OUTLAD和FBDOUT+1=OUTSTL遞減IN--1=OUTLAD和FBDOUT--1=OUTSTL遞增或者遞減指令將輸入IN加1或者減1,并將結果存放在OUT中。字節(jié)遞增(INCB)和字節(jié)遞減(DECB)操作是無符號的。字遞增(INCW)和字遞減(DECW)操作是有符號的。雙字遞增(INCD)和雙字遞減(DECD)操作是有符號的。2/4/202392PLC指令集2/4/202393PLC指令集6.12比例/積分/微分(PID)回路控制指令PID回路控制指令(PID)根據(jù)輸入和表(TBL)中的配置信息,對相應的LOOP執(zhí)行PID回路計算。2/4/202394PLC指令集6.13中斷指令中斷允許(ENI)和中斷禁止(DISI)中斷允許指令(ENI)全局地允許所有被連接的中斷事件。中斷禁止指令(DISI)全局地禁止處理所有中斷事件。當進入RUN模式時,初始狀態(tài)為禁止中斷。在RUN模式,您可以執(zhí)行全局中斷允許指令(ENI)允許所有中斷。全局中斷禁止指令(DISI)不允許處理中斷服務程序,但中斷事件仍然會排隊等候。2/4/202395PLC指令集中斷條件返回(CRETI)中斷條件返回指令(CRETI)用于根據(jù)前面的邏輯操作的條件,從中斷服務程序中返回。中斷連接(ATCH)中斷連接指令(ATCH)將中斷事件EVNT與中斷服務程序號INT相關聯(lián),并使能該中斷事件。中斷分離(DTCH)中斷分離指令(DTCH)將中斷事件EVNT與中斷服務程序之間的關聯(lián)切斷,并禁止該中斷事件。2/4/202396PLC指令集清除中斷事件(CLR—EVENT)S7--200支持的中斷類型S7--200支持下列類型的中斷服務程序:通訊口中斷:S7--200生成使程序可以控制通訊口的事件。

I/O中斷:S7--200對I/O點狀態(tài)的各種變化產生中斷事件。這些事件可以對高速計數(shù)器、脈沖輸出或輸入的上升或下降狀態(tài)做出響應。時基中斷:S7--200產生使程序在指定的間隔上起作用的事件。2/4/202397PLC指令集中斷優(yōu)先級和中斷隊列在各個指定的優(yōu)先級之內,CPU按先來先服務的原則處理中斷。任何時間點上,只有一個用戶中斷程序正在執(zhí)行。一旦中斷程序開始執(zhí)行,它要一直執(zhí)行到結束。而且不會被別的中斷程序,甚至是更高優(yōu)先級的中斷程序所打斷。當另一個中斷正在處理中,新出現(xiàn)的中斷需要排隊,等待處理。2/4/202398PLC指令集2/4/202399PLC指令集2/4/2023100PLC指令集2/4/2023101PLC指令集6.14邏輯操作指令取反指令字節(jié)、字和雙字取反字節(jié)取反(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指令集與、或和異或指令字節(jié)與、字與和雙字與字節(jié)與(ANDB)、字與(ANDW)和雙字與(ANDD)指令將輸入值IN1和IN2的相應位進行與操作,將結果存入OUT中。字節(jié)或、字或和雙字或字節(jié)或(ORB)、字或指令(ORW)和雙字或(ORD)指令將兩個輸入值IN1和IN2的相應位進行或操作,將結果存入OUT中。2/4/2023107PLC指令集字節(jié)異或、字異或和雙字異或字節(jié)異或(ROB)、字異或(ORW)和雙字異或(ORD)指令將兩個輸入值IN1和IN2的相應位進行異或操作,將結果存入OUT中。2/4/2023108PLC指令集2/4/2023109PLC指令集6.15傳送指令字節(jié)、字、雙字或者實數(shù)傳送字節(jié)傳送(MOVB)、字傳送(MOVW)、雙字傳送(MOVD)和實數(shù)傳送指令在不改變原值的情況下將IN中的值(MOVR)傳送到OUT。2/4/2023110PLC指令集字節(jié)立即傳送(讀和寫)字節(jié)立即傳送指令允許您在物理I/O和存儲器之間立即傳送一個字節(jié)數(shù)據(jù)。字節(jié)立即讀(BIR)指令讀物理輸入(IN),并將結果存入內存地址(OUT),但過程映像寄存器并不刷新。字節(jié)立即寫指令(BIW)從內存地址(IN)中讀取數(shù)據(jù),寫入物理輸出(OUT),同時刷新相應的過程映像區(qū)。2/4/2023111PLC指令集塊傳送指令字節(jié)、字、雙字的塊傳送字節(jié)塊傳送(BMB)、字塊傳送(BMW)和雙字塊傳送(BMD)指令傳送指定數(shù)量的數(shù)據(jù)到一個新的存儲區(qū),數(shù)據(jù)的起始地址IN,數(shù)據(jù)長度為N個字節(jié)、字或者雙字,新塊的起始地址為OUT。N的范圍從1到255。2/4/2023112PLC指令集2/4/2023113PLC指令集6.16程序控制指令條件結束條件結束指令(END)根據(jù)前面的邏輯關系終止當前掃描周期??梢栽谥鞒绦蛑惺褂脳l件結束指令,但不能在子程序或中斷服務程序中使用該命令。停止停止指令(STOP)導致CPU從RUN到STOP模式從而可以立即終止程序的執(zhí)行。如果STOP指令在中斷程序中執(zhí)行,那么該中斷立即終止,并且忽略所有掛起的中斷,繼續(xù)掃描程序的剩余部分。完成當前周期的剩余動作,包括主用戶程序的執(zhí)行,并在當前掃描的最后,完成從RUN到STOP模式的轉變。2/4/2023114PLC指令集看門狗復位看門狗復位指令(WDR)允許S7--200CPU的系統(tǒng)看門狗定時器被重新觸發(fā),這樣可以在不引起看門狗錯誤的情況下,增加此掃描所允許的時間。使用WDR指令時要小心,因為如果您用循環(huán)指令去阻止掃描完成或過度的延遲掃描完成的時間,那么在終止本次掃描之前,下列操作過程將被禁止:2/4/2023115PLC指令集通訊(自由端口方式除外)

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

SM位更新(SM0,SM5~SM29不能被更新)運行時間診斷由于掃描時間超過25秒,10ms和100ms定時器將不會正確累計時間。在中斷程序中的STOP指令帶數(shù)字量輸出的擴展模塊也包含一個看門狗定時器,如果模塊沒有被S7--200寫,則此看門狗定時器將關斷輸出。在擴展的掃描時間內,對每個帶數(shù)字量輸出的擴展模塊進行立即寫操作以保持正確的輸出。請參考這段描述之后的實例。2/4/2023116PLC指令集2/4/2023117PLC指令集For--Next循環(huán)指令FOR和NEXT指令可以描述需重復進行一定次數(shù)的循環(huán)體。每條FOR指令必須對應一條NEXT指令。For--Next循環(huán)嵌套(一個For--Next循環(huán)在另一個For--Next循環(huán)之內)深度可達8層。FOR--NEXT指令執(zhí)行FOR指令和NEXT指令之間的指令。必須指定計數(shù)值或者當前循環(huán)次數(shù)INDX、初始值(INIT)和終止值(FINAL)。NEXT指令標志著FOR循環(huán)的結束。2/4/2023118PLC指令集2/4/2023119PLC指令集跳轉指令跳轉到標號指令(JMP)執(zhí)行程序內標號N指定的程序分支。標號指令標記跳轉目的地的位置N??梢栽谥鞒绦?、子程序或者中斷服務程序中,使用跳轉指令。跳轉和與之相應的標號指令必須位于同一段程序代碼(無論是主程序、子程序還是中斷服務程序)。不能從主程序跳到子程序或中斷程序,同樣不能從子程序或中斷程序跳出??梢栽赟CR程序段中使用跳轉指令,但相應的標號指令必須也在同一個SCR段中。2/4/2023120PLC指令集2/4/2023121PLC指令集順控繼電器(SCR)指令SCR指令使得能夠按照自然工藝段在LAD、FBD或STL中編制狀態(tài)控制程序。只要應用中包含的一系列操作需要反復執(zhí)行,就可以使用SCR使程序更加結構化,以至于直接針對應用。這樣可以使得編程和調試更加快速和簡單。裝載SCR指令(LSCR)將S位的值裝載到SCR和邏輯堆棧中。SCR堆棧的結果值決定是否執(zhí)行SCR程序段。SCR堆棧的值會被復制到邏輯堆棧中,因此可以直接將盒或者輸出線圈連接到左側的能流線上而不經過中間觸點。2/4/2023122PLC指令集2/4/2023123PLC指令集分支控制在許多實例中,一個順序控制狀態(tài)流必須分成兩個或多個不同分支控制狀態(tài)流。當一個控制狀態(tài)流分離成多個分支時,所有的分支控制狀態(tài)流必須同時激活,如圖6-33所示。使用多條由相同轉移條件激活的SCRT指令,可以在一段SCR程序中實現(xiàn)控制流的分支,如下面的實例所示。2/4/2023124PLC指令集2/4/2023125PLC指令集2/4/2023126PLC指令集合并控制與分支控制的情況類似,兩個或者多個分支狀態(tài)流必須合并為一個狀態(tài)流。當多個狀態(tài)流匯集成一個時,我們稱之為合并。當控制流合并時,所有的控制流必須都完成,才能執(zhí)行下一個狀態(tài)。圖6-34給出了兩個控制流合并的示意圖。在SCR程序中,通過從狀態(tài)L轉到狀態(tài)L’,以及從狀態(tài)M轉到狀態(tài)M’的方法實現(xiàn)控制流的合并。當狀態(tài)L’、M’的SCR使能位為真時,即可激活狀態(tài)N,如下例所示。2/4/2023127PLC指令集2/4/2023128PLC指令集2/4/2023129PLC指令集診斷LED指令(DIAG_LED)如果輸入?yún)?shù)IN的值為零,就將診斷LED置為OFF。如果輸入?yún)?shù)IN的值大于零,就將診斷LED置為ON(黃色)。當系統(tǒng)塊中指定的條件為真或者用非零IN參數(shù)執(zhí)行DIAG_LED指令時,CPU發(fā)光二極管(LED)標注的SF/DIAG可以被配置用于顯示黃色。系統(tǒng)塊(配置LED)復選框選項:當有一項在CPU內被強制時,SF/DIAGLED為ON(黃色)當模塊有I/O錯誤時,SF/DIAGLED為ON(黃色)兩個配置LED選項都不選中,將使SF/DIAG黃光只受DIAG_LED指令控制。CPU系統(tǒng)故障(SF)用紅光指示。2/4/2023130PLC指令集2/4/2023131PLC指令集6.17移位和循環(huán)指令右移(SHR)和左移(SHL)指令移位指令將輸入值IN右移或左移N位,并將結果裝載到輸出OUT中。移位指令對移出的位自動補零。如果位數(shù)N大于或等于最大允許值(對于字節(jié)操作為8,對于字操作為16,對于雙字操作為32),那么移位操作的次數(shù)為最大允許值。如果移位次數(shù)大于0,溢出標志位(SM1.1)上就是最近移出的位值。如果移位操作的結果為0,零存儲器位(SM1.0)置位。字節(jié)操作是無符號的。對于字和雙字操作,當使用有符號數(shù)據(jù)類型時,符號位也被移動。2/4/2023132PLC指令集循環(huán)右移(ROR)和循環(huán)左移(ROL)指令循環(huán)移位指令將輸入值IN循環(huán)右移或者循環(huán)左移N位,并將輸出結果裝載到OUT中。循環(huán)移位是圓形的。如果位數(shù)N大于或者等于最大允許值(對于字節(jié)操作為8,對于字操作為16,對于雙字操作為32),S7--200在執(zhí)行循環(huán)移位之前,會執(zhí)行取模操作,得到一個有效的移位次數(shù)。移位位數(shù)的取模操作的結果,對于字節(jié)操作是0到7,對于字操作是0到15,而對于雙字操作是0到31。2/4/2023133PLC指令集2/4/2023134PLC指令集移位寄存器指令(SHRB)移位寄存器指令將一個數(shù)值移入移位寄存器中。移位寄存器指令提供了一種排列和控制產品流或者數(shù)據(jù)的簡單方法。使用該指令,每個掃描周期,整個移位寄存器移動一位。移位寄存器指令把輸入的DATA數(shù)值移入移位寄存器。其中,S_BIT指定移位寄存器的最低位,N指定移位寄存器的長度和移位方向(正向移位=N,反向移位=--N)。SHRB指令移出的每一位都被放入溢出標志位(SM1.1)。這條指令的執(zhí)行取決于最低有效位(S_BIT)和由長度(N)指定的位數(shù)。2/4/2023135PLC指令集2/4/2023136PLC指令集2/4/2023137PLC指令集字節(jié)交換指令(SWAP)字節(jié)交換指令用來交換輸入字IN的高字節(jié)和低字節(jié)。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)中增加一個數(shù)值(DATA)。表中第一個數(shù)是最大填表數(shù)(TL),第二個數(shù)是實際填表數(shù)(EC),指出已填入表的數(shù)據(jù)個數(shù)。新的數(shù)據(jù)填加在表中上一個數(shù)據(jù)的后面。每向表中填加一個新的數(shù)據(jù),EC會自動加1。一個表最多可以有100條數(shù)據(jù)。2/4/202314

溫馨提示

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

評論

0/150

提交評論