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

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

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

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

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

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

溫馨提示

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

評(píng)論

0/150

提交評(píng)論