自動化PLC課件-S7-300PLC編程基礎(chǔ)及指令系統(tǒng)_第1頁
自動化PLC課件-S7-300PLC編程基礎(chǔ)及指令系統(tǒng)_第2頁
自動化PLC課件-S7-300PLC編程基礎(chǔ)及指令系統(tǒng)_第3頁
自動化PLC課件-S7-300PLC編程基礎(chǔ)及指令系統(tǒng)_第4頁
自動化PLC課件-S7-300PLC編程基礎(chǔ)及指令系統(tǒng)_第5頁
已閱讀5頁,還剩83頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

S7-300使用STEP7軟件編程,STEP7是S7-300/400PLC的通用編程軟件。STEP7標(biāo)準(zhǔn)版配備了梯形圖(LAD)、語句表(STL)及功能塊圖(FBD)三種編程語言,各語言中的部分指令在STEP7中可互相轉(zhuǎn)換。此外,可選擇的編程語言軟件還支持順序功能圖(Graph)、結(jié)構(gòu)文本(SCL)、連續(xù)功能圖(CFC,部分CPU模塊支持)等。第4節(jié)S7-300PLC編程基礎(chǔ)及指令系統(tǒng)

一、編程語言1)位(bit)

BOOL型。其值為0或1。2)字節(jié)(Byte)

BYTE型,8位二進(jìn)制數(shù),值為0~255。3)字(Word)

WORD型。相鄰兩個字節(jié)組成一個字,表示16位無符號數(shù)(含BCD碼),值為0~65535(對于BCD碼為0~9999)。二、基本數(shù)據(jù)類型及CPU內(nèi)部寄存器

1.基本數(shù)據(jù)類型MB0MB1015MW0字與字節(jié)關(guān)系:4)雙字(DoubleWord)

DWORD型。相鄰兩個字組成一個雙字,表示32位無符號數(shù)(含BCD),其值范圍為0~4294967295。5)字符(Character)

CHAR型,表示一個ASCII字符(8位)。6)16位整數(shù)(Integer)

INT型,表示16位有符號數(shù)。其值范圍為-32768~32767。MB1MB2031MB0MB3MD0MW0MW2雙字、字與字節(jié)關(guān)系:7)32位整數(shù)(DoubleInteger)

DINT型,表示32位有符號數(shù)。其值范圍為-2147483648~2147483647。8)32位浮點數(shù)(Real)

REAL型。表示32位IEEE745標(biāo)準(zhǔn)格式的浮點數(shù)(實數(shù))。其值為±1.175495E-38~±3.402823E+38。9)S5時間(S5Time)

S5TIMER型,表示16位S5時間常數(shù)。其格式為S5T#aHbMcSdMS。(a、b、c、d對應(yīng)時、分、秒、毫秒。10)IEC時間(Time)

TIME型,表示32位IEC格式時間(有符號)。其值為-T#24D20H31M23S648MS~ T#24D20H31M23S648MS。11)IEC日期(Date)

DATE型,表示16位IEC格式日期。其值為D#1990-1-1~D#2168-12-31.12)24小時制時間(24hTime_Of_Day)

TIME_OF_DATE型,32位24小時制格式時間。其值為TOD#0:0:0.0~TOD#23:59:59.9992.常數(shù)表示方法(常用部分)16位10進(jìn)制整數(shù)及32位浮點數(shù)常數(shù)輸入時不需加字頭。如123,-123,123.4,-123.4。浮點常數(shù)為整數(shù)值時,需加小數(shù)點。如123.0。標(biāo)識符號說明示例2#2進(jìn)制常數(shù)2#0011_1001B#16#W#16#DW#16#16進(jìn)制字節(jié)常數(shù)16進(jìn)制字常數(shù)16進(jìn)制雙字常數(shù)B#16#A6W#16#7F06DW#16#FFFF_FFFFL#32位整數(shù)常數(shù)L#1235678S5T#S5時間常數(shù)(16位)S5T#1M5S100MSC#計數(shù)器常數(shù)(3位BCD碼,0~999)C#2151)累加器(ACCU1、ACCU2)兩個32位累加器,可對字節(jié)、字、雙字進(jìn)行處理。2)狀態(tài)字寄存器16位狀態(tài)字寄存器用于存儲CPU執(zhí)行指令的狀態(tài)。第0位(FC):首次檢測位。為0時表示一個邏輯網(wǎng)絡(luò)的開始。第1位(RLO):邏輯運算結(jié)果位。用于存儲執(zhí)行位邏輯或比較指令的結(jié)果。狀態(tài)為1時表示邏輯運算結(jié)果為1或比較結(jié)果成立。015781234569OROVOSCC0CC1BR未使用FCRLOSTA3.CPU內(nèi)部寄存器簡介第2位(STA):狀態(tài)位。執(zhí)行位邏輯指令時,STA總是與該位的值一致。第3位(OR):或位。在先邏輯“與”后邏輯“或”的邏輯運算中,OR位暫存邏輯“與”的操作結(jié)果。第4位(OV):溢出位。算術(shù)運算或浮點數(shù)比較指令執(zhí)行出錯時置1。后續(xù)同類指令執(zhí)行正常時,該位清0。第5位(OS):溢出狀態(tài)保持位。OV置1時,OS置1,OV清0時,OS仍保持為1。(只能由JOS、塊調(diào)用、塊結(jié)束指令復(fù)位)第6位和第7位(CC0、CC1):條件碼0和條件碼1。兩位結(jié)合用于表示算術(shù)運算或邏輯運算的結(jié)果與0的大小關(guān)系,以及比較指令的執(zhí)行結(jié)果或移位指令的移出狀態(tài)。第8位(BR):二進(jìn)制結(jié)果位。用于表示字操作的結(jié)果是否正確。1—正確,0—錯誤。3)地址寄存器(AR1和AR2)兩個32位地址寄存器用于寄存器間接尋址。4)數(shù)據(jù)塊地址寄存器

S7-300PLC中有兩個數(shù)據(jù)塊地址寄存器,一個用于共享數(shù)據(jù)塊,一個用于背景數(shù)據(jù)塊,均為32寄存器。寄存器中存有數(shù)據(jù)塊編號及數(shù)據(jù)塊長度。三、用戶程序結(jié)構(gòu)簡介S7-300PLC的用戶程序由程序塊(或稱為邏輯塊)和數(shù)據(jù)塊組成。程序塊包括組織塊OB、系統(tǒng)功能塊SFB、系統(tǒng)功能SFC、功能塊FB、功能FC等。

OB由操作系統(tǒng)調(diào)用,其它塊由OB調(diào)用。

OB可調(diào)用SFB、FB、SFC、FC。

FB、FC可調(diào)用SFB、FB、SFC、FC數(shù)據(jù)塊為程序塊提供相應(yīng)的數(shù)據(jù),包擴(kuò)共享數(shù)據(jù)塊和背景數(shù)據(jù)塊。

對于一些簡單的應(yīng)用,可將用戶程序填寫在OB1(循環(huán)組織塊)中。OB1中的程序在每個掃描周期執(zhí)行一次,且可采用梯形圖(LAD)、功能塊圖(FBD)、語句表(STL)來編寫程序。另一類較為常用的組織塊是循環(huán)中斷組織塊(如OB35),該類組織塊是按照在CPU模塊中設(shè)置的中斷時間間隔循環(huán)執(zhí)行的。即:每隔所設(shè)置的時間間隔執(zhí)行一次。關(guān)于其它類程序或數(shù)據(jù)塊,將在后續(xù)課程中介紹。要填加各種邏輯塊時,可在SIMATIC管理器中的Insert菜單下選擇“S7塊(S7Block)”中的相應(yīng)選項來生成。插入塊編程窗口四、符號表(Symbols)

用于定義符號變量,這樣在編程時可以使用相應(yīng)的符號代替直接地址變量,以便于編程及增強程序的可讀性。符號變量使用符號表編輯器(SymbolEditor)生成或編輯。包括符號名稱、對應(yīng)的絕對地址、數(shù)據(jù)類型以及說明等。符號表編輯器窗口五、S7-PLCSIM仿真軟件簡介

1、S7-PLCSIM的主要功能仿真軟件S7-PLCSIM是STEP7的一個插件,用于模擬實際PLC,以便于程序的開發(fā)和調(diào)試。1)可在計算機(jī)上對S7-300/400PLC的用戶程序進(jìn)行離線仿真與調(diào)試。2)可以模擬PLC的輸入/輸出存儲區(qū),通過仿真窗口可改變輸入變量狀態(tài),從而控制程序的運行,并通過觀察輸出狀態(tài)監(jiān)視運行結(jié)果等。3)

可實現(xiàn)定時、計數(shù)器的監(jiān)視和修改。4)

可模擬對位存儲器(M)、外設(shè)輸入/輸出(PI、PQ)、以及數(shù)據(jù)塊中數(shù)據(jù)(DB)的讀寫操作。2、S7-PLCSIM的使用

按實際系統(tǒng)要求生成項目并進(jìn)行硬件組態(tài),編寫用戶程序。然后,在SIMATIC管理器工具條中,點擊“Simulasionon/off”,啟動仿真器。將編譯后的硬件組態(tài)及用戶程序下載到PLC仿真器中。然后,將仿真PLC置為P-RUN或RUN狀態(tài)。兩者區(qū)別是P-RUN狀態(tài)下,用戶可以下載程序及修改內(nèi)部存儲區(qū),RUN狀態(tài)下則不能。兩種狀態(tài)下,用戶程序均可運行。系統(tǒng)運行后,可使用其監(jiān)控功能監(jiān)控運行狀態(tài)及結(jié)果。啟動仿真器仿真器窗口即作為仿真PLC運行控制窗口,又可作為操作及監(jiān)控窗口??稍谄渲胁迦敫鞣N變量監(jiān)控窗口,并可設(shè)置或監(jiān)控變量狀態(tài)?!獭瘫硎驹撐粻顟B(tài)為1,空白表示狀態(tài)為0。對應(yīng)的梯形圖(LAD)監(jiān)控窗口1)“與”和“與非”操作“與”是以常開點開始的串聯(lián)邏輯行,或者是串聯(lián)單個常開點。對于程序行開始處,先檢測對應(yīng)點的狀態(tài),為0時,RLO=0,為1時RLO=1;對于其它串聯(lián)點,則將對應(yīng)點的狀態(tài)與RLO進(jìn)行與運算,結(jié)果存于RLO中?!芭c非”是以常閉點開始的串聯(lián)邏輯行,或者是串聯(lián)單個常閉點。對于程序行開始處,先檢測對應(yīng)點的狀態(tài),為0時,RLO=1,為1時RLO=0;對于其它串聯(lián)點,則將對應(yīng)點狀態(tài)取非后,再與RLO進(jìn)行與運算,結(jié)果存于RLO中。六、指令系統(tǒng)

1.位邏輯指令指令的可尋址區(qū)是I區(qū)、Q區(qū)、M區(qū)、DB塊內(nèi)的BOOL點、定時器T和計數(shù)器C的狀態(tài)點,以及臨時狀態(tài)點,即各類Bool型數(shù)據(jù)。例如:I0.0I0.1I0.0M0.3LAD指令STL指令A(yù)I0.0AI0.1AI0.0ANM0.3I0.1Q0.0ANQ0.0AI0.12)“或”和“或非”操作“或”是以常開點開始的并聯(lián)邏輯行,或者是并聯(lián)單個常開點。對于程序行開始處,先檢測對應(yīng)點的狀態(tài),為0時,RLO=0,為1時RLO=1;對于其它并聯(lián)點,則將對應(yīng)點狀態(tài)與RLO進(jìn)行或運算,結(jié)果存于RLO中。

指令的可尋址區(qū)同前面1)中的說明。例如:

LAD指令STL指令OM0.0OI0.0M0.0I0.0“或非”是以常閉點開始的并聯(lián)邏輯行,或者是并聯(lián)單個常閉點。對于程序行開始處,先檢測對應(yīng)點的狀態(tài),為0時,RLO=1,為1時RLO=0;對于其它并聯(lián)點,則將對應(yīng)點狀態(tài)取非后,再與RLO進(jìn)行或運算,結(jié)果存于RLO中。指令的可尋址區(qū)同前面1)中的說明。例如:

OI0.0ONQ0.1I0.0Q0.1LAD指令STL指令3)“非”操作

RLO取“非”。4)輸出操作將邏輯運算結(jié)果(RLO)輸出至指定存儲位。存儲位可以是Q區(qū)、M區(qū)、DB塊內(nèi)的BOOL點,以及臨時狀態(tài)點。例如:|NOT|LAD指令STL指令NOTLAD指令STL指令()Q0.0=Q0.05)“與”操作嵌套開始及結(jié)束

由于程序按先“與”后“或”次序執(zhí)行,當(dāng)需要先進(jìn)行“或”操作時,使用該指令。

A(開始

)結(jié)束例如:LADSTL指令I(lǐng)0.0I0.1Q4.1()Q4.1A(OI0.0OQ4.1)ANI0.1=Q4.1A(ONI0.0OI0.2

)

A(OI0.1ONI0.3

)ANC2=Q4.3STL指令I(lǐng)0.0I0.2I0.3I0.1C2()Q4.3LAD6)邏輯行“或”操作(O)

由于程序按先“與”后“或”次序執(zhí)行,當(dāng)出現(xiàn)邏輯行“或”操作時,使用不帶地址的O指令。例如:ANI0.0AI0.1OAI0.2ANI0.3=Q4.2LADSTL指令I(lǐng)0.0I0.2I0.3I0.1()Q4.27)復(fù)位(R)、置位(S)操作、

對應(yīng)點的置0或置1。8)上升沿檢測(P)和下降沿檢測(N)

RLO上升沿檢測和下降沿檢測。RQ1.2STL指令LAD指令SM1.2STL指令LAD指令FPM1.2STL指令LAD指令(P)M1.2FNM1.2STL指令LAD指令(N)M1.2(R)Q1.2(S)M1.29)RLO狀態(tài)保存至BR(SAVE)10)地址下降沿(NEG)和上升沿檢測(POS)SAVESTL指令LAD指令A(yù)I0.0BLD100FNM1.0=Q0.0STL指令LAD指令A(yù)I0.0BLD100FPM1.0=Q0.0NEGM_BITQI0.0M1.0()Q0.0POSM_BITQI0.0M1.0()Q0.0(SAVE)11)RS觸發(fā)器、SR觸發(fā)器置位優(yōu)先觸發(fā)器(RS)和復(fù)位優(yōu)先觸發(fā)器(SR)。

AI0.0RM0.1AI0.1SM0.1LADSTL指令

AI0.0SM0.2AI0.1RM0.2I0.0I0.1RSRQSM0.1I0.0I0.1SRSQRM0.2這些指令是STL指令,無對應(yīng)的梯形圖指令。STL編程及一些梯形圖轉(zhuǎn)為STL指令時會用到。1)裝入指令(L、LC)裝入指令L將源操作數(shù)裝入累加器1中,累加器1中的原有數(shù)據(jù)移入累加器2中。當(dāng)源操作數(shù)為BCD數(shù)時,使用LC。如:LMW0;LCT02)傳送指令(T)傳送指令T將累加器1中的內(nèi)容傳送至目的存儲器中,累加器1的內(nèi)容不變。如:TMD102.裝入指令與傳送指令1)定時器S7-300PLC提供了五種定時器,分別是接通延時定時器(S_ODT)、斷開延時定時器(S_OFFDT)、脈沖定時器(S_PULSE)、擴(kuò)展脈沖定時器(S_PEXT)、以及保持型接通延時定時器(S_ODTS)。S7-300PLC支持的定時器數(shù)量與CPU型號有關(guān)(256~2048個),而采用梯形圖編程時只支持256個定時器(T0~T256)。3.定時/計數(shù)指令(常用部分)接通延時定時器(S_ODT)S—啟動端R—復(fù)位端TV—定時時間(10ms~9990s)Q—輸出端BI—16進(jìn)制當(dāng)前值BCD—BCD碼當(dāng)前值S5T#3SI0.2I0.1()Q4.0MW10MW12T1S_ODTSQTVBIBCDRI0.1I0.2當(dāng)前值Q4.03s關(guān)于定時時間:PLC的定時時間由定時器的時基和定時時間常數(shù)確定,S7-300PLC的有四種時基,分0~3型,對應(yīng)的時基分別為10ms、100ms、1s和10s。各種時基下的時間常數(shù)設(shè)置范圍均為0~999。梯形圖編程時定時時間采用S5時間格式(S5T#aHbMcSdMS

)表示。例如:S5T#35s900ms。STL編程時除可采用S5時間格式外,還可采用W#16#nxxx格式(n—0~3,xxx—1~999),例如:W#16#1359最高定時精度為10ms,即最短定時時間為10ms。最長定時時間為9990s,精度為10s。當(dāng)采用S5時間格式設(shè)置定時時間時,系統(tǒng)按上述時間范圍自動選擇時基。類型時基時間范圍S5時間0型10ms0.01s~9.99sST5#10ms~9s990ms1型100ms10.0s~99.9sST5#10s~1m39s900ms2型1s100s~999sST5#1m40s~16m39s3型10s1000s~9990sST5#16m40s~2h46m30s定時器指令使用示例:A I0.1L S5T#3SSD T1A I0.2R T1L T1T MW10LC T1T MW12A T1= Q4.0A T1= M1.0S5T#3SI0.2I0.1()Q4.0MW10MW12T1S_ODTSQTVBIBCDRT1M1.0()程序段1:程序段2:R端BI端BCD端Q端啟動控制與常數(shù)設(shè)置端程序段2程序段1:

程序段2:某端不使用時,用NOP0代替。例如:A I0.1L S5T#3SSD T1A I0.2R T1NOP0LC T1T MW12NOP0A T1= M1.0R端BI端不使用BCD端Q端不使用啟動控制與常數(shù)設(shè)置端程序段2程序段1:程序段2:S5T#3SI0.2I0.1MW12T1S_ODTSQTVBIBCDRT1M1.0()程序段1:程序段2:斷開延時定時器(S_OFFDT)各端說明同前S5T#3SI0.2I0.1()Q4.0MW10MW12T1S_OFFDTSQTVBIBCDRI0.1I0.2當(dāng)前值Q4.03s脈沖定時器(S_PULSE)S—啟動端R—復(fù)位端TV—定時時間(10ms~9990s)Q—輸出端BI—16進(jìn)制當(dāng)前值BCD—BCD碼當(dāng)前值S5T#3SI0.2I0.1()Q4.0MW10MW12T1S_PULSESQTVBIBCDRI0.1I0.2當(dāng)前值Q4.03s擴(kuò)展脈沖定時器(S_PEXT)S—啟動端R—復(fù)位端TV—定時時間(10ms~9990s)Q—輸出端BI—16進(jìn)制當(dāng)前值BCD—BCD碼當(dāng)前值S5T#3SI0.2I0.1()Q4.0MW10MW12T1S_PEXTSQTVBIBCDRI0.1I0.2當(dāng)前值Q4.03s保持型接通延時定時器(S_ODTS)S—啟動端R—復(fù)位端TV—定時時間(10ms~9990s)Q—輸出端BI—16進(jìn)制當(dāng)前值BCD—BCD碼當(dāng)前值S5T#3SI0.2I0.1()Q4.0MW10MW12T1S_ODTSSQTVBIBCDRI0.1I0.2當(dāng)前值Q4.03s定時器指令簡化形式:當(dāng)不使用強制復(fù)位端及不顯示當(dāng)前值時,可使用定時器簡化形式指令。例如:A I0.1L S5T#3SSD T1I0.1T1(SD)S5T#3SI0.1T2(SF)S5T#5SA I0.1L S5T#5SSF T2S5T#3SI0.1T1S_ODTSQTVBIBCDRS5T#5SI0.1T2S_OFFDTSQTVBIBCDR2)計數(shù)器減計數(shù)器(S_CD)設(shè)定值為0~999。CD—計數(shù)端S—計數(shù)設(shè)置端PV—計數(shù)設(shè)定值R—復(fù)位端Q—輸出端CV—16進(jìn)制當(dāng)前值CV_BCD—BCD碼 當(dāng)前值。C#3I0.3I0.1()Q4.0MW10MW12S_CDCDQPVCVCV_BCDRI0.2SC10計數(shù)當(dāng)前值不為零時,計數(shù)器狀態(tài)輸出為1(ON),否則為0(OFF)。計數(shù)設(shè)置端S為1時,將計數(shù)設(shè)定值(PV端規(guī)定)送如計數(shù)器。然后,計數(shù)端(CD端)每接通一次,計數(shù)值減1。當(dāng)計數(shù)值減為0時,計數(shù)器狀態(tài)輸出由1(ON)變?yōu)?(OFF)。復(fù)位端(R端)為1(ON)時,計數(shù)器復(fù)位。再次啟動計數(shù)前,需再次通過S端設(shè)置。減計數(shù)器指令應(yīng)用示例AI0.1CDC10BLD101AI0.2LC#3SC10AI0.3RC10LC10TMW10LCC10TMW12AC10=Q4.0AC10=Q4.2C#3I0.3I0.1()Q4.0MW10MW12S_CDCDQPVCVCV_BCDRI0.2SC10Network1:Q4.2()C10Network2:CD端S端R端BCD端CV端Q端Network1:Network2:程序段2某端不使用時,用NOP0代替。例如:AI0.1CDC10BLD101AI0.2LC#3SC10AI0.3RC10LC10TMW10NOP0AC10=Q4.0AC10=Q4.2C#3I0.3I0.1()Q4.0MW10S_CDCDQPVCVCV_BCDRI0.2SC10Network1:Q4.2()C10Network2:CD端S端R端BCD端不使用CV端Q端Network1:Network2:程序段2加計數(shù)器(S_CU)計數(shù)值為0時,狀態(tài)輸出為0,否則為1。計數(shù)范圍為0~999CU—計數(shù)端S—計數(shù)設(shè)置端PV—計數(shù)值R—復(fù)位端Q—輸出端CV—16進(jìn)制當(dāng)前值CV_BCD—BCD碼 當(dāng)前值。C#3I0.3I0.1()Q4.0MW10MW12S_CUCUQPVCVCV_BCDRI0.2SC10加減計數(shù)器(S_CUD)計數(shù)值為0時,狀態(tài)輸出為0,否則為1。計數(shù)范圍為0~999CU—加計數(shù)端CD—減計數(shù)端S—計數(shù)設(shè)置端PV—計數(shù)值R—復(fù)位端Q—輸出端CV—16進(jìn)制當(dāng)前值CV_BCD—BCD碼 當(dāng)前值。C#3I0.3I0.1()Q4.0MW10MW12S_CUDCUQPVCVCV_BCDRI0.2SC10I0.0CD1)延時接通,延時斷開I0.0Q4.16s3sI0.0T0(SD)S5T#3SQ4.1()T0Q4.1T1Q4.1I0.0T1(SD)S5T#6S4.位邏輯及定時/計數(shù)器指令應(yīng)用2)振蕩器(脈沖發(fā)生器)S5T#3ST2T1S_ODTSQTVBIBCDRS5T#1ST2S_ODTSQTVBIBCDRI0.0I0.0Q4.01s3s3s1s()Q4.0T13)定時器T0T1(SD)S5T#10MN2T1T2T2(SD)S5T#1HN4C0T2C#3S_CDCDQPVCVCV_BCDRI0.0SN3I0.0T0(SD)S5T#5SN1()Q4.0N5C0I0.04)一般閃光報警系統(tǒng)S5T#500MST0T1(SD)N2T0Q4.0()N3M0.1I0.2I0.0I0.1M0.1()N4M0.1I0.0I0.0Q4.1()N5M0.1I0.0為報警信號I0.1為確認(rèn)按鈕I0.2為試燈按鈕閃爍程序報警燈控制警鈴控制確認(rèn)信號I0.0T0(SD)S5T#500MSN1T1M0.11)梯形圖中的跳轉(zhuǎn)指令無條件跳轉(zhuǎn)和條件跳轉(zhuǎn)指令JMP

條件跳轉(zhuǎn)為邏輯運算結(jié)果RLO=1時跳轉(zhuǎn)。RLO=0跳轉(zhuǎn)指令JMPN(JMP)LABEL(JMP)LABELI0.2條件跳轉(zhuǎn)無條件跳轉(zhuǎn)(JMPN)LABELI0.25.跳轉(zhuǎn)指令

標(biāo)號LABELLABEL為首字符為字母的標(biāo)識符。2)STL指令中的部分跳轉(zhuǎn)指令無條件跳轉(zhuǎn):JU根據(jù)上一指令語句生成的邏輯運算結(jié)果(RLO)來跳轉(zhuǎn):JC(RLO=1跳轉(zhuǎn))、JCN(RLO=0跳轉(zhuǎn))根據(jù)計算結(jié)果來跳轉(zhuǎn):

JZ(等于0跳轉(zhuǎn))、JN(不等于0跳轉(zhuǎn))

JP(大于0跳轉(zhuǎn))、JM(小于0跳轉(zhuǎn))

JPZ(大于等于0跳轉(zhuǎn))、JMZ(小于等于0跳轉(zhuǎn))跳轉(zhuǎn)指令使用示例:

A

I

0.4JC

LAB1AI0.5=Q4.1LAB1:AI0.5=Q4.2I0.4LAB1(JMP)N1I0.5Q4.1()N2LAB1N3I0.5Q4.2()梯形圖中的傳送指令:MOVE—移動ENENOINOUTMOVEIN端和OUT端可以是所有長度為8、16或32位的基本數(shù)據(jù)類型,且IN端還可以是各類常數(shù)。當(dāng)EN端(使能端)為1時,將IN端數(shù)據(jù)傳入OUT端,且使ENO=1。6.移動指令移動指令使用示例: A(

A I0.1 JNB _001 L 100 T MW4 SET SAVE CLR_001:A BR

)┆

//如RLO=0,則跳至標(biāo)號_001處,且BR=RLO。//將常數(shù)100裝入累加器1低字//將累加器1低字內(nèi)容傳至MW4//將RLO置1//將RLO存入BR位(執(zhí)行正確時為1)//將RLO置為0//檢測二進(jìn)制結(jié)果位,為1時,RLO=1。ENENOINOUTMOVE100MW4I0.1ENENOINOUTMOVEMB8IB2()Q4.0注:第2個MOVE的STL指令略比較指令用于比較累加器1與累加器2中的數(shù)據(jù)大小,被比較的兩個數(shù)的數(shù)據(jù)類型應(yīng)相同。數(shù)據(jù)類型可以是整數(shù)(I)、雙字整數(shù)(D)或浮點數(shù)(R、即實數(shù))如果比較條件滿足,則RLO為1,否則為0。比較條件包括==、<>、>、<、>=、<=。

CPU狀態(tài)寄存器中的CC0和CC1位用來表示兩個數(shù)的大于、小于和等于關(guān)系(00相等、01為小于、10為大于、11為被0除或非法浮點數(shù))。7.比較指令語句表指令

?I整數(shù)比較

?D雙字整數(shù)比較

?R浮點數(shù)比較“?”可以是==、<>、>、<、>=、<=。梯形圖指令I(lǐng)N2CMP?IIN1IN2CMP?DIN1IN2CMP?RIN1比較指令使用示例:IN2CMP<=IIN1MW2I0.1MW4()Q4.0AI0.1A(LMW2LMW4<=I)=Q4.01)整數(shù)運算指令單字加、減、乘、除指令:+I、-I、*I、/IENENOIN2OUTADD_IIN1ENENOIN2OUTSUB_IIN1ENENOIN2OUTMUL_IIN1ENENOIN2OUTDIV_IIN18.算數(shù)運算指令整數(shù)運算指令使用示例:A(AI0.1JNB_001L10LMW4+ITMW6ANOVSAVECLR_001:

ABR

)

JNB_002

L

MW6

L

MW8

-I

T

MW10ANOVSAVECLR_002:ABR=Q4.0

JNB_002

L

MW6

L

MW8

-I

T

MW10_002:NOP0

ENENOIN2OUTADD_IIN110I0.1MW4()Q4.0MW6ENENOIN2OUTSUB_IIN1MW6MW8MW10(有Q4.0時)(無Q4.0時)雙字加、減、乘、除指令+D、-D、*D、/DENENOIN2OUTADD_DIIN1ENENOIN2OUTSUB_DIIN1ENENOIN2OUTMUL_DIIN1ENENOIN2OUTDIV_DIIN1雙字整數(shù)運算指令使用示例:ENENOIN2OUTMUL_DIIN1MD20I0.1L#10MD24A(AI0.1JNB_001LMD20LL#10*DTMD24ANOVSAVECLR_001:

ABR

)

JNB_002

L

MD24

L

L#3

/D

T

MD28_002:NOP0

ENENOIN2OUTDIV_DIIN1MD24L#3MD282)浮點數(shù)加、減、乘、除指令+R、-R、*R、/RENENOIN2OUTADD_RIN1ENENOIN2OUTSUB_RIN1ENENOIN2OUTMUL_RIN1ENENOIN2OUTDIV_RIN1浮點數(shù)運算指令使用示例:ENENOIN2OUTADD_RIN1MD2012.5MD10ENENOIN2OUTMUL_RIN1MD1010.0MD14 A( LMD20 L1.250000e+001 +R TMD10 ANOV SAVE CLR

A

BR

)

JNB_001

L

MD10

L

1.000000e+001

*R

T

MD14_001:NOP0

浮點數(shù)的其它運算包括取絕對值(ABS)、平方(SQR)、開平方(SQRT)、自然指數(shù)(EXP)、自然對數(shù)(LN)、正弦(SIN)、余弦(COS)、正切(TAN)、反正弦(ASIN)、反余弦(ACOS)、反正切(ATAN)(各角度為弧度單位),例如ENENOINOUTABSENENOINOUTSQRTENENOINOUTEXPENENOINOUTLNENENOINOUTSINENENOINOUTSQR單字左移(SHL_W)、單字右移(SHR_W)雙字左移(SHL_DW)、雙字右移(SHR_DW)移出位丟失,補位位為0,例如SHL_W:ENOENOUTINNXXX_XXEN 使能輸入ENO 使能輸出IN 要移位的值N 要移動的位數(shù)(WORD)OUT 移位指令的結(jié)果150D09.移位/循環(huán)移位指令雙字循環(huán)左移(ROL_DW)雙字循環(huán)右移(ROR_DW)ENOENOUTINNXXX_XXEN 使能輸入ENO 使能輸出IN 要移位的值N 要移動的位數(shù)(WORD)OUT 移位指令的結(jié)果310ROR_DWD310ROL_DWD移位類指令使用示例:ENOENOUTINNSHL_WQW0I0.1MW0QW0(P)ENENOINOUTMOVE1QW0I0.02M3.0IN2CMP==IIN1ENENOINOUTMOVEMW0QW01ENENOINOUTMOVEQW00I0.0I0.1STL程序A(AI0.0JNB_001L1TQW0SETSAVECLR_001:ABR)JNB_002L2TMW0_002:NOP0A(AI0.1FPM3.0JNB_003LMW0LQW0SLWTQW0SETSAVECLR_003:ABR)A(LQW0L0==I)JNB_004L1TQW0_004:NOP0Network1:Network2:單字“與”(WAND_W)、雙字“與”(WAND_DW)單字“或”(WOR_W)、雙字“或”(WOR_DW)單字“異或”(WXOR_W)雙字“異或”(WXOR_DW)ENOENOUTIN1IN2XXXX_XXEN 使能輸入ENO 使能輸出IN1

邏輯運算第1個值IN2

邏輯運算第2個值OUT 邏輯運算的結(jié)果10.字邏輯運算指令字邏輯指令使用示例:ENENOIN2OUTWOR_WIN1MW0MW2MW4ENENOIN2OUTWAND_WIN1MW4MW6MW8A(LMW0LMW2OWTMW4SETSAVECLR

ABR)JNB_001LMW4LMW6AWTMW8_001:NOP0包括整數(shù)、BCD、浮點數(shù)之間的轉(zhuǎn)換,以及取反、求補、取整等。BCD_IBCD碼轉(zhuǎn)換為整型(STL:BTI)I_BCD整型轉(zhuǎn)換為BCD碼(STL:ITB)BCD_DIBCD碼轉(zhuǎn)換為長整型(STL:BTD)I_DI

整型轉(zhuǎn)換為長整型(STL:ITD)DI_BCD長整型轉(zhuǎn)換為BCD碼(STL:DTB)DI_R

整型轉(zhuǎn)換為浮點型(STL:DTR)INV_I整數(shù)求反碼(STL:INVI)INV_DI長整數(shù)求反碼(STL:INVD)11.轉(zhuǎn)換指令NEG_I對整數(shù)求補碼(STL:NEGI)NEG_DI對長整數(shù)求補碼(STL:NEGD)NEG_R浮點數(shù)取反(STL:NEGR)ROUND

舍入取整為長整型(STL:RND)TRUNC截取長整數(shù)部分(STL:TRUNC)CEIL向上取整(STL:RND+)FLOOR向下取整

(STL:RND-)ENOENOUTINXXXXEN 使能輸入ENO 使能輸出IN 輸入數(shù)據(jù)OUT 結(jié)果轉(zhuǎn)換指令使用示例:ENENOOUTI_DIIN1MW0MD2ENENOOUTDI_RIN1MD2MD6A(LMW0ITDTMD2SETSAVECLRABR)JNB_001LMD2DTRTMD6_001:NOP0狀態(tài)位指令屬于位邏輯指令,用于對狀態(tài)字的位進(jìn)行處理。二進(jìn)制結(jié)果位(BR)被置位(即信號狀態(tài)為1)。數(shù)學(xué)運算函數(shù)發(fā)生溢出(OV)或存儲溢出(OS)。數(shù)學(xué)運算函數(shù)的結(jié)果是無序的(UO)。數(shù)學(xué)運算函數(shù)的結(jié)果與0的關(guān)系有:

==0、<>0、>0、<0、>=0、<=0。可以采用是常開或常閉點,如同地址接點,例如:BR>0OV==012.狀態(tài)位指令狀態(tài)位指令使用示例:ENENOIN2OUTSUB_RIN1MD1010.1MD14>=0()Q4.0

A(LMD10L1.010000e+001-RTMD14ANOVSAVECLRABR)

A>=0=Q4.0運算結(jié)果未溢出時,OV=0。1)邏輯塊指令邏輯塊包括功能(FC)、功能塊(FB)、系統(tǒng)功能(SFC)、系統(tǒng)功能塊(SFB),相當(dāng)于子程序或函數(shù)。邏輯塊指令包括邏輯塊結(jié)束、邏輯塊調(diào)用等指

溫馨提示

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

最新文檔

評論

0/150

提交評論