第3章S7-300指令系統(tǒng)及編程_第1頁
第3章S7-300指令系統(tǒng)及編程_第2頁
第3章S7-300指令系統(tǒng)及編程_第3頁
第3章S7-300指令系統(tǒng)及編程_第4頁
第3章S7-300指令系統(tǒng)及編程_第5頁
已閱讀5頁,還剩110頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第三章S7-300指令系統(tǒng)

第一節(jié)STEP7的數(shù)據(jù)類型和指令結(jié)構(gòu)

第二節(jié)

位邏輯指令

第三節(jié)

數(shù)據(jù)傳送與轉(zhuǎn)換指令

第四節(jié)

運算指令

第五節(jié)

移位指令

第六節(jié)

控制指令

第七節(jié)S7-300的標(biāo)準(zhǔn)系統(tǒng)功能模塊簡介

習(xí)題與思考題

第一節(jié)STEP7的數(shù)據(jù)類型和指令結(jié)構(gòu)一、STEP7的數(shù)據(jù)類型

1、基本數(shù)據(jù)類型

①布爾型1位②字節(jié)型8位B#16#00~FF③字型16位W#16#0000~FFFF、C#0~999、B#(0,0)~(255,255)④雙字型32位DW#16#00000000~FFFFFFFF⑤字符型8位⑥整數(shù)型16位

-32768~+32767

⑦雙整數(shù)型32位L#-214783648~214783647⑧實數(shù)32位

上限:±3.402823e+38

下限:±1.175495e-38

⑨時間TIME32位T#24D_20H_31M_23S_647MS

⑩時間DATE32位D#1990_1_1~D#2168_12_31

系統(tǒng)時間32位S5T#0H_0M_0S_0MS~S5T#2H_46M_30S_0MS

2、復(fù)式數(shù)據(jù)類型

數(shù)據(jù)類型說

明日期_時間DTDATE_AND_TIME定義64位空間。時間信息對應(yīng)的BCD碼存儲格式:字節(jié)0:年,字節(jié)1:月,字節(jié)2:日,字節(jié)3:小時,字節(jié)4:分,字節(jié)5:秒,字節(jié)6和字節(jié)7的高位:毫秒,字節(jié)7的低位:星期幾。字符串STRING字符串的默認(rèn)大小為256字節(jié)(254個字符和雙字節(jié)字頭)。如:(STRING[7]‘SIEMENS’)。數(shù)組ARRAY定義一種數(shù)據(jù)格式的多維數(shù)組。如:“ARRAY[1..2,1..3]OFINT”表示2×3的整數(shù)數(shù)組。構(gòu)造STRUCT定義多種數(shù)據(jù)類型組合的數(shù)組。3、參數(shù)數(shù)據(jù)類型

用于向FB和FC傳送參數(shù)。STEP7提供的參數(shù)類型:(1)TIMER(定時器)和COUNTER(計數(shù)器)用定時器或計數(shù)器的編號作為實參(actualparameter,實際參數(shù)),占2個字節(jié)。如T3、C21。(2)BLOCK(塊)指定一個塊用作輸入和輸出,實參應(yīng)為同類型的塊,占2個字節(jié)。如FB20、FC101、DB12、SDB11。(3)POINTER(指針)用地址指針作為實參,占6個字節(jié)。如P#M50.0。(4)ANY用于實參的數(shù)據(jù)類型未知或?qū)崊⒖梢允褂萌我鈹?shù)據(jù)類型的情況,占10個字節(jié)。如P#M30.0,byte10,或P#M60.0,word5。

二、STEP7的指令結(jié)構(gòu)1、指令梯形邏輯指令LAD、語句指令STL和功能塊圖指令FBD。

①梯形邏輯指令A(yù)(OI0.0OQ4.0)ANI0.1=Q4.0AI0.2LS5T#20SSDT0LMW10TQW60NOP0與或與與輸出②語句指令

③功能塊圖指令FBD。

2、操作數(shù)指令是由一個操作碼和一個操作數(shù)組成,

助記符:表示指令的功能指令碼:是指令的代碼操作數(shù):提供指令執(zhí)行的對象或數(shù)據(jù)。AMW10

I:輸入映像存儲區(qū)Q:輸出映像存儲區(qū)M:位存儲區(qū)PI:外部輸入PQ:外部輸出T:定時器C:計數(shù)器DB:數(shù)據(jù)塊L:本地數(shù)據(jù)

M為主標(biāo)識符W為輔助標(biāo)識符操作數(shù)X(位)B(字節(jié))W(字)D(雙字)操作碼3、存儲區(qū)功能

輸入位I0.0輸入字節(jié)IB0輸入字IW0輸入雙字ID0

輸出位Q4.0輸出字節(jié)QB4輸出字QW4輸出雙字QD4

存儲器位M10.0存儲器字節(jié)MB10存儲器字MW10存儲器雙字MD10

數(shù)據(jù)位DBX10.0數(shù)據(jù)字節(jié)DBB10數(shù)據(jù)字DBW10數(shù)據(jù)雙字DBD10數(shù)據(jù)位DIX10.0數(shù)據(jù)字節(jié)DIB10數(shù)據(jù)字DIW10數(shù)據(jù)雙字DID10

外部輸入字節(jié)PIB288外部輸入字PIW288外部輸入雙字PID288

外部輸出字節(jié)PQB288外部輸出字PQW288外部輸出雙字PQD288臨時本地數(shù)據(jù)位L臨時本地數(shù)據(jù)字節(jié)LB臨時本地數(shù)據(jù)字LW臨時本地數(shù)據(jù)雙字LD

4、狀態(tài)字

二進(jìn)制結(jié)果位

條件碼1和條件碼0溢出狀態(tài)保持位

溢出位

或位

狀態(tài)位

邏輯操作結(jié)果位

首位檢測位

該位存儲邏輯指令或比較指令的結(jié)果。

在先邏輯“與”后邏輯“或”的邏輯塊中,OR位暫存邏輯“與”的操作結(jié)果。

當(dāng)算術(shù)運算或浮點數(shù)比較指令執(zhí)行時出現(xiàn)錯誤OV位被置1。

保存OV位的狀態(tài),用于說明先前的某些指令執(zhí)行過程中是否出現(xiàn)過錯誤。

如果執(zhí)行出現(xiàn)錯誤,BR位為0,ENO也為0;反之,BR位為1,ENO也為1。

CC1、CC0真值表CC1CC0算術(shù)運算比較指令移位和循環(huán)移位指令字邏輯指令00結(jié)果=0累加器2=累加器1移出位=0結(jié)果=001結(jié)果<0累加器2<累加器1——10結(jié)果>0累加器2>累加器1—結(jié)果<>011—移出為=1—三、STEP7的尋址方式STEP7有四種尋址方式:立即尋址、存儲器直接尋址、存儲器間接尋址和寄存器間接尋址。

1、立即尋址是指在指令中直接給出操作數(shù)。L34LDW#16#1111_22222、存儲器直接尋址

是指在指令中直接給出操作數(shù)的存儲單元地址。

AI0.0=Q4.0LC1TMW10

3、存儲器間接尋址存儲器間接尋址是指操作數(shù)存儲在由指針給出的存儲單元中。其中,地址指針可以是字或雙字,當(dāng)對I、Q、M使用雙字指針時,必須確保指針中的位編號為“0”。

L+6//將整數(shù)6裝入累加器1TMW1//將累加器1的內(nèi)容傳送給存儲字MW1OPNDB[MW1]//打開由MW1指出的數(shù)據(jù)塊,即打開數(shù)據(jù)塊DB6LP#8.7//將2#0000_0000_0000_0000_0000_0000_0100_0111裝入累加器1;

TMD1//將累加器1中的內(nèi)容傳送給存儲字MD1;

AI[MD1]//對輸入位I8.7進(jìn)行邏輯“與”操作;4、寄存器間接尋址

寄存器間接尋址是指操作數(shù)存儲在由地址寄存器與偏移量之和形成的地址指針?biāo)o出的存儲單元中。在S7中有兩個地址寄存器AR1和AR2。使用寄存器指針格式訪問字節(jié)、字或雙字時,必須確保指針中位地址的編號為0。寄存器間接尋址有兩種形式:區(qū)域內(nèi)寄存器間接尋址和區(qū)域間寄存器間接尋址。

如:P#I8.52#10000001_00000000_00000000_01000101如:P#Q8.72#10000010_00000000_00000000_01000111LP#8.0;LAR2//將累加器1中的內(nèi)容傳送到地址寄存器2;LIB[AR2,P#2.0]//地址寄存器2的內(nèi)容(8.0)加偏移量(2.0)為10.0,將輸入字節(jié)IB10裝入累加器1;TMW[AR2,P#200.0]//將累加器1中的內(nèi)容傳送到MW208;

LP#I8.5

LAR1

//將累加器1中的內(nèi)容傳送到地址寄存器1;LP#Q8.7LAR2//將累加器1中的內(nèi)容傳送到地址寄存器2;A[AR1,P#0.2]//和輸入位I8.7進(jìn)行邏輯“與”操作;=[AR2,P#1.1]//地址寄存器2內(nèi)容(Q8.7)加偏移量(1.1)為Q10.0,對輸出位Q10.0進(jìn)行賦值操作。

與編號為0第二節(jié)

位邏輯指令位邏輯指令包含位邏輯運算指令、定時器指令、計數(shù)器指令和位測試指令等。

一、位邏輯運算指令1、標(biāo)準(zhǔn)觸點指令①與指令A(yù)——常開觸點相與(串聯(lián))的指令;與非指令A(yù)N——常閉觸點相與(串聯(lián))的指令;②或指令O——常開觸點相或(并聯(lián))的指令;或非指令ON——常閉觸點相或(并聯(lián))的指令;③輸出指令=——將執(zhí)行結(jié)果輸出到某位的指令。邏輯串輸出指令-()、中間輸出指令-(#)

Q4.0I0.0Q4.0Q4.1I0.0I0.1I0.0Q4.0Q4.0Q4.1I0.0I0.1I0.1M1.0I0.2#AI0.0ANI4.0=Q4.0ONI0.0OQ4.0=Q4.1AI0.0ANI0.1OANI0.0AI0.1=Q4.0ANQ4.0=M1.0AM1.0AI0.2=Q4.1任務(wù)三電動機的起停控制【例】試將電動機的單向運行繼電控制系統(tǒng)改造成PLC控制系統(tǒng)。傳統(tǒng)繼電器控制電路1.PLC端子接線PLC端子接線圖192.創(chuàng)建STEP7項目(1/2)新建項目窗口所創(chuàng)建的項目,項目名:My_Prj2任務(wù)三電動機的起停控制3.插入S7-300工作站在My_Prj2項目內(nèi)插入S7-300工作站:SIMATIC300(1)4.硬件組態(tài)(1/6)硬件組態(tài)窗口4.硬件組態(tài)(2/6)插入導(dǎo)軌返回上級4.硬件組態(tài)(3/6)插入各種S7-300模塊設(shè)置CPU屬性任務(wù)三電動機的起??刂圃O(shè)置數(shù)字量模塊屬性任務(wù)三電動機的起??刂凭幾g硬件組態(tài)(完成后的窗口)系統(tǒng)自動創(chuàng)建程序文件夾包含一個循環(huán)組織塊OB1任務(wù)三電動機的起??刂?.編輯符號表(1/2)從LAD/STL/FBD編輯器打開符號表6.程序編輯窗口7.在OB1中編輯LAD程序(1/2)設(shè)置組織塊(OB)屬性為LAD方式7.在OB1中編輯LAD程序(2/2)編寫梯形圖(LAD)程序32

8.下載和調(diào)試程序為了測試PLC設(shè)計項目,必須將程序和模塊信息下載到PLC的CPU模塊。要實現(xiàn)編程設(shè)備與PLC之間的數(shù)據(jù)傳送,首先應(yīng)正確安裝PLC硬件模塊,然后用編程電纜(如USB-MPI電纜、PROFIBUS總線電纜)將PLC與PG/PC連接起來,并打開PS307電源開關(guān)。下載程序及模塊信息用S7-PLCSIM調(diào)試程序33具體步驟如下:①啟動SIMATICManager,并打開My_prj2項目;②單擊仿真工具按鈕,啟動S7-PLCSIM仿真程序;③將CPU工作模式開關(guān)切換到STOP模式;④在項目窗口內(nèi)選中要下載的工作站;⑤執(zhí)行菜單命令【PLC】→【Download】,或單擊鼠標(biāo)右鍵執(zhí)行快捷菜單命令【PLC】→【Download】將整個S7-300站下載到PLC。啟動仿真工具S7-PLCSIM任務(wù)三電動機的起停控制插入仿真變量任務(wù)三電動機的起??刂萍せ畋O(jiān)視狀態(tài)任務(wù)三電動機的起??刂瞥绦虻倪\行狀態(tài)任務(wù)三電動機的起??刂迫蝿?wù)四電動機的正反轉(zhuǎn)控制【例】試將電動機的正反轉(zhuǎn)運行繼電控制系統(tǒng)改造成PLC控制系統(tǒng)。I/O接線圖任務(wù)四電動機的正反轉(zhuǎn)控制樣例程序2、嵌套表達(dá)式和先“與”后“或”3、置位/復(fù)位指令

置位:

根據(jù)RLO的值決定指定地址位的狀態(tài)。復(fù)位:

置位/復(fù)位指令和操作數(shù)

指令名稱LAD指令操作數(shù)數(shù)據(jù)類型存儲區(qū)說明置位指令位地址BOOLI、Q、M、D、L位地址表示要進(jìn)行置位/復(fù)位操作的位復(fù)位指令BOOLTIMERCOUNTERI、Q、M、T、C、D、L

觸發(fā)器指令和操作數(shù)

指令名稱LAD指令數(shù)據(jù)類型存儲區(qū)操作數(shù)說明SR觸發(fā)器QI、Q、M、D、L位地址位地址表示要置位/復(fù)位的位S置位輸入端RS觸發(fā)器R復(fù)位輸入端與位地址對應(yīng)的存儲單元的狀態(tài)RS觸發(fā)器和SR觸發(fā)器的工作時序示例梯形圖程序工作時序

任務(wù)二傳送帶運送控制【例】

置位與復(fù)位指令的應(yīng)用——傳送帶運動控制。如圖所示為一個傳送帶,在傳送帶的兩端各設(shè)有一組按鈕即起動按鈕S1、S3和停止按鈕S2、S4。要求能從任一端起動或停止傳送帶,且當(dāng)傳送帶上的物件到達(dá)尾端時,傳感器S5使傳送帶停止。任務(wù)二傳送帶運送控制地址分配端子連接圖梯形圖程序

語句表4、跳變沿檢測指令①對RLO的跳變沿進(jìn)行檢測②對觸點的跳變沿直接進(jìn)行檢測。

指令名稱LAD指令STL指令操作數(shù)數(shù)據(jù)類型存儲區(qū)RLO正跳沿檢測FP<位地址>位地址BOOLQ、M、DRLO負(fù)跳沿檢測FN<位地址>

指令名稱LAD指令操作數(shù)數(shù)據(jù)類型存儲區(qū)說明觸點正跳沿檢測位地址1:被檢測的觸點地址BOOLI、Q、M、D、LQ只接通一個掃描周期位地址2(M_BIT):存儲被檢測觸點上一個掃描周期的狀態(tài)Q、M、D觸點負(fù)跳沿檢測Q:單穩(wěn)輸出I、Q、M、D、LM_BITQNEG位地址2位地址1位地址1M_BITQPOS位地址2位地址1【例】

邊沿檢測指令的應(yīng)用——傳送帶運動方向檢測。在圖示傳送帶一側(cè)裝配有兩個反射式光電傳感器(PEB1和PEB2)(安裝距離小于包裹的長度),設(shè)計用于檢測包裹在傳送帶上的移動方向,并用方向指示燈L1和L2指示。其中光電傳感器觸點為常開觸點,當(dāng)檢測到物體時動作(閉合)。

端子連接圖

梯形圖5、其余RLO的直接操作指令

二、定時器1、脈沖定時器SP當(dāng)RLO出現(xiàn)正跳沿,定時器則以設(shè)定的時間值啟動,如果期間RLO為0,定時器即停止。

2、擴(kuò)展定時器SE當(dāng)RLO出現(xiàn)正跳沿,定時器則以設(shè)定的時間值啟動,即使RLO變?yōu)?,定時器仍保持運行直到達(dá)到定時器的設(shè)定值才復(fù)位。

3、接通延時定時器SD當(dāng)RLO出現(xiàn)正跳沿,則以設(shè)定的時間值啟動定時器。達(dá)到設(shè)定時間后,定時器常開觸點閉合并保持。當(dāng)復(fù)位指令有效或運行期間RLO由1變化到0時,定時器復(fù)位。4、保持型接通延時定時器SS當(dāng)RLO出現(xiàn)正跳沿,則以設(shè)定的時間值啟動定時器,即使RLO由1變?yōu)?,定時器仍保持運行直到設(shè)定時間,此時,定時器常開觸點閉合并保持。只有當(dāng)復(fù)位指令有效時定時器才復(fù)位。5、關(guān)斷延時定時器SF當(dāng)RLO出現(xiàn)負(fù)跳沿,則以設(shè)定的時間值啟動定時器。當(dāng)RLO為1或定時器運行時,其常開觸點閉合。達(dá)到定時時間后,常開觸點斷開。當(dāng)復(fù)位指令有效或運行期間RLO由0變到1時,定時器復(fù)位。6、功能框表示定時器指令脈沖擴(kuò)展脈沖接通延時保持型接通延時關(guān)斷延時操作數(shù)數(shù)據(jù)類型存儲區(qū)說明noTIMER-定時器編號SBOOLI、Q、M、D、L啟動輸入TVS5TIMEI、Q、M、D、L設(shè)置定時時間RBOOLI、Q、M、D、L復(fù)位輸入QBOOLI、Q、M、D、L定時器狀態(tài)輸出BIWORDI、Q、M、D、L剩余時間輸出(二進(jìn)制碼格式)BCDWORDI、Q、M、D、L剩余時間輸出(BCD碼格式)【例】某電機,當(dāng)按下起動按鈕SB1時,采用星型啟動,5秒后自動轉(zhuǎn)接為△運行;若按下SB2,則Y型啟動并保持Y型運行,直至按下SB3,再轉(zhuǎn)接為△運行。當(dāng)按下停止按鈕SB4或電機過載則電機立刻停止運行。

I/O接線圖自動Y/△切換任務(wù)四Y-△起動控制手動Y/△切換7、時鐘存儲器在S7系列PLC的CPU位存儲器M中,可以任意指定一個字節(jié)作為時鐘脈沖存儲器,當(dāng)PLC運行時,指定字節(jié)的每一位能周期性地改變二進(jìn)制值,即產(chǎn)生不同頻率(或周期)的時鐘脈沖。

位76543210時鐘脈沖周期(s)21.610.80.50.40.20.1時鐘脈沖頻率(Hz)0.50.62511.2522.5510雙擊Hardware選擇CPU的ObjectProperties設(shè)置時鐘存儲器三、計數(shù)器功能LAD指令操作數(shù)數(shù)據(jù)類型存儲區(qū)說明設(shè)定計數(shù)值預(yù)置值WORDI、Q、M、D、L0~999,BCD碼加計數(shù)器線圈計數(shù)器號noCOUNTERC計數(shù)器總數(shù)與CPU模板有關(guān)減計數(shù)器線圈加計數(shù)器減計數(shù)器加/減計數(shù)器操作數(shù)數(shù)據(jù)類型存儲區(qū)說明noCOUNTERC計數(shù)器標(biāo)號CUBOOLI、Q、M、D、L加計數(shù)輸入CDBOOLI、Q、M、D、L減計數(shù)輸入SBOOLI、Q、M、D、L計數(shù)器預(yù)置輸入PVBOOLI、Q、M、D、L計數(shù)器初始值輸入RBOOLI、Q、M、D、L計數(shù)器復(fù)位輸入QBOOLI、Q、M、D、L計數(shù)器狀態(tài)輸出CVWORDI、Q、M、D、L當(dāng)前計數(shù)值輸出(整數(shù)格式)CV_BCDWORDI、Q、M、D、L當(dāng)前計數(shù)值輸出(BCD格式)1、計數(shù)器級聯(lián)2、定時器與計數(shù)器級聯(lián)

【例】已知電梯的PLC輸入輸出端子連接如下:一樓的平層信號為I0.0,上強迫減速信號為I0.2,下強迫減速信號為I0.4,設(shè)計梯形圖,將樓層位置信息存放MW10?!纠吭O(shè)計一梯形圖程序,當(dāng)I0.0持續(xù)接通8小時后,Q4.0以2秒頻率閃爍。第三節(jié)數(shù)據(jù)傳送與轉(zhuǎn)換指令數(shù)據(jù)傳送與轉(zhuǎn)換指令包括數(shù)據(jù)裝入與傳送指令、數(shù)據(jù)轉(zhuǎn)換指令。一、數(shù)據(jù)裝入與傳送指令數(shù)據(jù)裝入指令L與數(shù)據(jù)傳送指令T用于在各個存儲區(qū)之間交換數(shù)據(jù)及存儲區(qū)與過程輸入/輸出模板之間交換數(shù)據(jù)。①在S7-300中,有兩個32位的累加器:累加器1與累加器2。②當(dāng)執(zhí)行指令L時,將數(shù)據(jù)裝入到累加器1中,累加器1中原有的數(shù)據(jù)被移入到累加器2中,累加器2中原有的數(shù)據(jù)被覆蓋。③當(dāng)執(zhí)行指令T時,將累加器1中的數(shù)據(jù)復(fù)制到目的存儲區(qū)中,而累加器1中的內(nèi)容保持不變。④L和T指令操作位數(shù):字節(jié)(8位)、字(16位)、雙字(32位),當(dāng)數(shù)據(jù)長度小于32位時,數(shù)據(jù)在累加器1中右對齊(低位對齊),其余各位填0。1、對累加器1的裝入和傳送有三種尋址方式:立即尋址、直接尋址和間接尋址。①立即尋址L+4LB#(3,5,7,6)LDW#16#ADCD_01AELP#I2.0LS5T#6SLD#2004_2_14LT#0D_2H_3M_0S_0MS

②直接尋址和間接尋址LIB[DBD2]LIW[AR2,P#5.0]TMW[MD11]LDIW[MD3]TLD[DBD11]③存儲區(qū)間接尋址LW[AR2,P#4.0]2、裝入剩余時間值或當(dāng)前計數(shù)值

在定時器中以二進(jìn)制格式保存剩余時間值。①裝入定時器剩余時間值二進(jìn)制格式讀出指令形式:LTno(no為定時器編號)BCD碼格式讀出指令形式:LCTno(no為定時器編號)時基與時間值相乘就得到當(dāng)前剩余時間②裝入計數(shù)器當(dāng)前計數(shù)值二進(jìn)制格式讀出指令形式:LCno(no為計數(shù)器編號)。BCD碼格式讀出指令形式:LCCno(no為計數(shù)器編號)。3、地址寄存器的裝入和傳送S7-300有兩個地址寄存器:AR1和AR2。指令形式:LAR1操作數(shù)

LAR2操作數(shù)

TAR1操作數(shù)

TAR2操作數(shù)地址寄存器交換指令:CAR4、用梯形圖指令表示裝入和傳送指令

梯形圖指令操作數(shù)數(shù)據(jù)類型存儲區(qū)說明ENBOOLI、Q、M、D、L允許輸入ENOBOOL允許輸出IN8、16、32位的所有基本數(shù)據(jù)類型源操作數(shù)(可以是常數(shù))OUT8、16、32位的所有基本數(shù)據(jù)類型目的操作數(shù)LAR1P#I0.0LAR1DBD20TAR1AR2TAR1MD20

注:L缺省操作數(shù),則將累加器1中的內(nèi)容傳送給地址寄存器;T缺省操作數(shù),則將地址寄存器中的內(nèi)容傳送給累加器1。二、轉(zhuǎn)換指令轉(zhuǎn)換指令是將累加器1中的數(shù)據(jù)進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換,轉(zhuǎn)換的結(jié)果仍存放在累加器1中。

①BCD碼與整數(shù)及長整數(shù)之間的轉(zhuǎn)換指令說明BTI將累加器1低字中的3位BCD碼轉(zhuǎn)換為16位整數(shù)BTD將累加器1中的7位BCD碼轉(zhuǎn)換為32位整數(shù)ITB將累加器1低字中的16位整數(shù)碼轉(zhuǎn)換為3位BCD碼ITD將累加器1低字中的16位整數(shù)碼轉(zhuǎn)換為32位整數(shù)DTB將累加器1中的32位整數(shù)碼轉(zhuǎn)換為7位BCD碼DTR將累加器1中的32位整數(shù)碼轉(zhuǎn)換為32位整數(shù)②數(shù)的取反、取負(fù)操作

指令說明RND將實數(shù)化整為最接近的整數(shù),四舍五入,如果小數(shù)部分等于5,則選擇偶數(shù)結(jié)果,例如:1002.5化整為1002,1003.5化整為1004RND+將實數(shù)化整為大于或等于該實數(shù)的最小整數(shù)RND-將實數(shù)化整為小于或等于該實數(shù)的最大整數(shù)TRUNC取實數(shù)的整數(shù)部分(截去小數(shù))執(zhí)行的指令累加器1的內(nèi)容累加器1內(nèi)容說明化整前化整結(jié)果化整前化整結(jié)果RND+100.5-100.5+100-100+99.5-99.5+100-100將實數(shù)化整為最接近的整數(shù)RND++100.5-100.5+101-100+99.5-99.5+100-99將實數(shù)化整為大于或等于該實數(shù)的最小整數(shù)RND-+100.5-100.5+100-101+99.5-99.5+99-100將實數(shù)化整為小于或等于該實數(shù)的最大整數(shù)TRUNC+100.5-100.5+100-100+99.5-99.5+99-99取實數(shù)的整數(shù)部分(截去小數(shù))③實數(shù)與長整數(shù)之間的轉(zhuǎn)換指令說明INVI對累加器1低字中的16位整數(shù)求反碼INVD對累加器1中的32位整數(shù)求反碼NEGI對累加器1低字中的16位整數(shù)求補碼NEGD對累加器1中的32位整數(shù)求補碼NEGR對累加器1中的32位實數(shù)的符號位求補碼第四節(jié)運算指令STEP7的運算指令包括算術(shù)運算指令,字邏輯運算指令和比較指令。

一、算術(shù)運算指令算術(shù)運算指令包括考加、減、乘、除四則運算,數(shù)據(jù)類型:整型INT、雙整型DINT、實數(shù)REAL。①累加器1是主累加器,累加器2是輔助累加器,與主累加器進(jìn)行運算的數(shù)據(jù)存儲在累加器2中;②算術(shù)運算的結(jié)果保存在累加器1中;③運算結(jié)束累加器2中的值保持不變;④運算結(jié)果影響狀態(tài)字中的CC1、CC0、OV、OS位

。1、整數(shù)算術(shù)運算指令

指令名稱STL表示說明整數(shù)加法+I(xiàn)將累加器1、2中的低字(低16位)整數(shù)相加,16位運算結(jié)果保存在累加器1的低字中整數(shù)減法-I將累加器2低字中的16位整數(shù)減去累加器1低字中的16位整數(shù),16位運算結(jié)果保存在累加器1的低字中整數(shù)乘法*I將累加器1、2中的低字(低16位)整數(shù)相乘,16位運算結(jié)果保存在累加器1的低字中整數(shù)除法/I將累加器2低字中的16位整數(shù)除以累加器1低字中的16位整數(shù),16位的商存在累加器1的低字中,余數(shù)存在累加器1的高字中雙整數(shù)加法+D將累加器1、2中32位整數(shù)相加,32位整數(shù)運算結(jié)果保存在累加器1中雙整數(shù)減法-D將累加器2中的32位整數(shù)減去累加器1中的32位整數(shù),32位運整數(shù)算結(jié)果保存在累加器1中雙整數(shù)乘法*D將累加器1、2中的32位整數(shù)相乘,32位整數(shù)運算結(jié)果保存在累加器1中雙整數(shù)除法/D將累加器2中的32位整數(shù)除以累加器1中的32位整數(shù),32位的商存在累加器1中,余數(shù)被忽略除法取余MOD將累加器2中的32位整數(shù)除以累加器1中的32位整數(shù),32位的余數(shù)存在累加器1中,商被忽略加常數(shù)法+累加器1中加一個16位或32位的整數(shù)常量,運算結(jié)果保存在累加器1中2、實數(shù)算術(shù)運算指令指令名稱STL表示說明實數(shù)加法+R將累加器1、2中的32位實數(shù)進(jìn)行相加,32位運算結(jié)果保存在累加器1中實數(shù)減法-R將累加器2中的32位實數(shù)減去累加器1中的32位整數(shù),32位運算結(jié)果保存在累加器1中實數(shù)乘法*R將累加器1、2中的32位實數(shù)進(jìn)行相乘,32位運算結(jié)果保存在累加器1中實數(shù)除法/R將累加器2中的32位實數(shù)數(shù)除以累加器1中的32位實數(shù),32位的商存在累加器1中3、數(shù)學(xué)函數(shù)指令

絕對值指令A(yù)BS余弦函數(shù)指令COS

平方指令SQR正切函數(shù)指令TAN

平方根指令SQRT反正弦函數(shù)指令A(yù)SIN

自然對數(shù)指令LN反余弦函數(shù)指令A(yù)COS

指數(shù)指令EXP反正切函數(shù)指令A(yù)TAN

正弦函數(shù)指令SIN運算指令整數(shù)雙整數(shù)實數(shù)加法指令減法指令乘法指令除法指令二、字邏輯運算指令字邏輯運算指令是將兩個字(數(shù)據(jù)長度為16位或32位)逐位進(jìn)行邏輯運算,可以進(jìn)行邏輯“與”、邏輯“或”和邏輯“異或”運算。①參與邏輯運算的兩個字,分別存放在累加器1和2中或者是立即數(shù)(常數(shù))。②字邏輯運算的結(jié)果存放在累加器1低字中,雙字邏輯運算的結(jié)果存放在累加器1中;③運算結(jié)束累加器2中的值保持不變。④字邏輯運算結(jié)果將影響狀態(tài)字的下列標(biāo)志位:CC1:如果邏輯運算的結(jié)果為0,CC1被復(fù)位到0;

如果邏輯運算的結(jié)果為非0,CC1被置位到1。CC0:在任何情況下,被復(fù)位到0。OV:

在任何情況下,被復(fù)位到0。

STL指令LAD指令操作數(shù)數(shù)據(jù)類型存儲區(qū)說明AWENBOOLI、Q、M、L、D兩個16位的字逐位進(jìn)行邏輯“與”運算ENOBOOLIN1WORDIN2WORDOUTWORDOWENBOOLI、Q、M、L、D兩個16位的字逐位進(jìn)行邏輯“或”運算ENOBOOLIN1WORDIN2WORDOUTWORDXOWENBOOLI、Q、M、L、D兩個16位的字逐位進(jìn)行邏輯“異或”運算ENOBOOLIN1WORDIN2WORDOUTWORDSTL指令LAD指令操作數(shù)數(shù)據(jù)類型存儲區(qū)說明ADENBOOLI、Q、M、L、D兩個32位的字逐位進(jìn)行邏輯“與”運算ENOBOOLIN1WORDIN2WORDOUTWORDODENBOOLI、Q、M、L、D兩個32位的字逐位進(jìn)行邏輯“或”運算ENOBOOLIN1WORDIN2WORDOUTWORDXODENBOOLI、Q、M、L、D兩個32位的字逐位進(jìn)行邏輯“異或”運算ENOBOOLIN1WORDIN2WORDOUTWORD三、比較運算指令比較指令用于對累加器2與累加器1中的數(shù)據(jù)進(jìn)行比較。①參與比較的兩個數(shù)據(jù)的類型必須相同;類型:整數(shù)、長整數(shù)或?qū)崝?shù);②比較類型有:等于==、不等于<>、大于>、小于<、大于等于>=、小于等于<=;③比較的結(jié)果為真,則RLO為1,否則為0。1、整數(shù)比較指令

==I

累加器2低字中的整數(shù)是否等于累加器1低字中的整數(shù)。<>I累加器2低字中的整數(shù)是否不等于累加器1低字中的整數(shù)。>I累加器2低字中的整數(shù)是否大于累加器1低字中的整數(shù)。<I累加器2低字中的整數(shù)是否小于累加器1低字中的整數(shù)。>=I累加器2低字中的整數(shù)是否大于等于累加器1低字中的整數(shù)。<=I累加器2低字中的整數(shù)是否小于等于累加器1低字中的整數(shù)。2、長整數(shù)比較指令

==D

累加器2中的長整數(shù)是否等于累加器1中的長整數(shù)。<>D累加器2中的長整數(shù)是否不等于累加器1中的長整數(shù)。>D累加器2中的長整數(shù)是否大于累加器1中的長整數(shù)。<D累加器2中的長整數(shù)是否小于累加器1中的長整數(shù)。>=D累加器2中的長整數(shù)是否大于等于累加器1中的長整數(shù)。<=D累加器2中的長整數(shù)是否小于等于累加器1低字中的長整數(shù)。3、實數(shù)比較指令

==R

累加器2中的實數(shù)是否等于累加器1中的實數(shù)。<>R累加器2中的實數(shù)是否不等于累加器1中的實數(shù)。>R累加器2中的實數(shù)是否大于累加器1中的實數(shù)。<R累加器2中的實數(shù)是否小于累加器1中的實數(shù)。>=R累加器2中的實數(shù)是否大于等于累加器1中的實數(shù)。<=R累加器2中的實數(shù)是否小于等于累加器1中的實數(shù)。【例】設(shè)計一個報警程序,要求當(dāng)輸入I0.0接通5次(M0.0)且I0.1接通小于3次(M0.1)時,報警輸出Q4.0接通并自鎖;按下復(fù)位鍵I0.2,Q4.0斷開,清除I0.0、I0.1的接通次數(shù)。第五節(jié)移位指令一、移位指令分類1、有符號整數(shù)和長整數(shù)的右移指令2、無符號字型數(shù)據(jù)的左移和右移指令3、無符號雙字型數(shù)據(jù)的左移和右移指令4、雙字的循環(huán)左移和循環(huán)右移指令二、移位指令運算規(guī)則1、移位指令將累加器1中的數(shù)據(jù)逐位左移或逐位右移。2、累加器1中移位后空出的位,填0或符號位。3、移出位保存在狀態(tài)字CC1中,CC0和OV被復(fù)位到0。4、循環(huán)移位指令的特點是:移出的空位填以從累加器中移出的位。三、移位指令

STL指令LAD指令操作數(shù)數(shù)據(jù)類型存儲區(qū)說明SSIENBOOLI、Q、M、D、L有符號整數(shù)右移:當(dāng)EN為1時,將IN中的整數(shù)數(shù)據(jù)向右逐位移動N位,送OUT。右移后空出的位補0(正數(shù))或1(負(fù)數(shù))ENOBOOLININTNWORDOUTINTSSDENBOOLI、Q、M、D、L有符號長整數(shù)右移:當(dāng)EN為1時,將IN中的長整數(shù)數(shù)據(jù)向右逐位移動N位,送OUT。右移后空出的位補0(正數(shù))或1(負(fù)數(shù))ENOBOOLINDINTNWORDOUTDINTSLWENBOOLI、Q、M、D、L無符號字型數(shù)據(jù)左移:當(dāng)EN為1時,將IN中的字型數(shù)據(jù)向左逐位移動N位,送OUT。左移后空出的位補0ENOBOOLINWORDNWORDOUTWORDSTL指令LAD指令操作數(shù)數(shù)據(jù)類型存儲區(qū)說明SRWENBOOLI、Q、M、D、L無符號字型數(shù)據(jù)右移:當(dāng)EN為1時,將IN中的字型數(shù)據(jù)向右逐位移動N位,送OUT。右移后空出的位補0ENOBOOLINWORDNWORDOUTWORDSLDENBOOLI、Q、M、D、L無符號雙字型數(shù)據(jù)左移:當(dāng)EN為1時,將IN中的雙字型數(shù)據(jù)向左逐位移動N位,送OUT。左移后空出的位補0ENOBOOLINDWORDNWORDOUTDWORDSRDENBOOLI、Q、M、D、L無符號雙字型數(shù)據(jù)右移:當(dāng)EN為1時,將IN中的雙字型數(shù)據(jù)向右逐位移動N位,送OUT。右移后空出的位補0ENOBOOLINDWORDNWORDOUTDWORDSTL指令LAD指令操作數(shù)數(shù)據(jù)類型存儲區(qū)說明RLDENBOOLI、Q、M、D、L無符號雙字型數(shù)據(jù)循環(huán)左移:當(dāng)EN為1時,將IN中的雙字型數(shù)據(jù)向左循環(huán)移動N位后送OUT。每次將最高位移出后,移進(jìn)到最低位ENOBOOLINDWORDNWORDOUTDWORDRRDENBOOLI、Q、M、D、L無符號雙字型數(shù)據(jù)循環(huán)右移:當(dāng)EN為1時,將IN中的雙字型數(shù)據(jù)向右循環(huán)移動N位后送OUT。每次當(dāng)最低位移出后,移進(jìn)到最高位ENOBOOLINDWORDNWORDOUTDWORD四、移位指令示例1、無符號左移四位

2、有符號右移四位

3、循環(huán)右移四位

【例】實現(xiàn)8個彩燈(L1-L8)依次延時1秒點亮并循環(huán)工作(一次只亮一盞燈)啟動:I0.0;停止:I0.1;L1-L8:Q4.0-Q4.7。第六節(jié)控制指令在STEP7中,控制指令分為邏輯控制指令和程序控制指令。

一、邏輯控制指令邏輯控制指令是指邏輯塊內(nèi)跳轉(zhuǎn)和循環(huán)指令。1、目標(biāo)地址標(biāo)號(簡稱標(biāo)號)①標(biāo)號最多為4個字符,第一個字符必須是字母,其余字符可以是字母或數(shù)字。如next:L100②在同一個邏輯塊內(nèi)的標(biāo)號是惟一的,不能重復(fù),在不同的邏輯塊內(nèi),標(biāo)號可以相同。③在LAD指令中,標(biāo)號必須在一個網(wǎng)絡(luò)的開始,如2、無條件跳轉(zhuǎn)指令注:多分支跳轉(zhuǎn)指令JL如果累加器1低字中低字節(jié)內(nèi)容小于JL指令和由JL指令所指定的標(biāo)號間的JU指令數(shù)量,JL指令將跳轉(zhuǎn)到其中一條JU處執(zhí)行,并由JU指令進(jìn)一步跳轉(zhuǎn)到目標(biāo)地址;如果累加器1低字中低字節(jié)的內(nèi)容為0,則直接執(zhí)行JL指令下面的第一條JU指令;如果累加器1低字中低字節(jié)的內(nèi)容為1,則直接執(zhí)行JL指令下面的第二條JU指令;如果跳轉(zhuǎn)的目的地超出了JU指令數(shù)量,則JL指令跳轉(zhuǎn)到目的地列表中最后一個JU指令之后的第一個指令。

JL指令實例

L#sequencerJLerro//如果累加器中值大于2則跳轉(zhuǎn)至erro,執(zhí)行4JUstp0//如果累加器中值等于0則跳轉(zhuǎn)至stp0,執(zhí)行1JUstp1//如果累加器中值等于1則跳轉(zhuǎn)至stp1,執(zhí)行2JUstp2//如果累加器中值等于2則跳轉(zhuǎn)至stp2,執(zhí)行3erro:JUcommstp0:<程序段1>JUcommstp1:<程序段2>JUcommstp2:<程序段3>JUcommcomm:<程序段4>

3、條件跳轉(zhuǎn)指令

STL指令說

明JC當(dāng)RLO=1時跳轉(zhuǎn)JCN當(dāng)RLO=0時跳轉(zhuǎn)JCB當(dāng)RLO=1,且BR=1時跳轉(zhuǎn),指令執(zhí)行時將RLO保存在BR中JNB當(dāng)RLO=0,且BR=0時跳轉(zhuǎn),指令執(zhí)行時將RLO保存在BR中JBI當(dāng)BR=1時跳轉(zhuǎn)。指令執(zhí)行時,OR、FC清0,STA置1JNBI當(dāng)BR=0時跳轉(zhuǎn)。指令執(zhí)行時,OR、FC清0,STA置1STL指令說明JO當(dāng)OV=1時跳轉(zhuǎn)JOS當(dāng)OS=1時跳轉(zhuǎn),指令執(zhí)行時,OS清0JZ累加器1中的計算結(jié)果為0時跳轉(zhuǎn)JN累加器1中的計算結(jié)果為非0時跳轉(zhuǎn)JP累加器1中的計算結(jié)果為正時跳轉(zhuǎn)JM累加器1中的計算結(jié)果為負(fù)時跳轉(zhuǎn)JMZ累加器1中的計算結(jié)果小于等于(非正)0時跳轉(zhuǎn)JPZ累加器1中的計算結(jié)果大于等于0(非負(fù))時跳轉(zhuǎn)JUO實數(shù)溢出跳轉(zhuǎn)LAD指令說明算術(shù)運算結(jié)果大于0,則動合觸點閉合,動斷觸點斷開。該指令檢查條件碼CC1和CC0的組合,決定觸點與0的關(guān)系。算術(shù)運算結(jié)果小于0,則動合觸點閉合,動斷觸點斷開。該指令檢查條件碼CC1和CC0的組合,決定觸點與0的關(guān)系。LAD指令說明算術(shù)運算結(jié)果大于等于0,則動合觸點閉合,動斷觸點斷開。該指令檢查條件碼CC1和CC0的組合,決定觸點與0的關(guān)系。算術(shù)運算結(jié)果小于等于0,則動合觸點閉合,動斷觸點斷開。該指令檢查條件碼CC1和CC0的組合,決定觸點與0的關(guān)系。算術(shù)運算結(jié)果等于0,則動合觸點閉合,動斷觸點斷開。該指令檢查條件碼CC1和CC0的組合,決定觸點與0的關(guān)系。算術(shù)運算結(jié)果不等于0,則動合觸點閉合,動斷觸點斷開。該指令檢查條件碼CC1和CC0的組合,決定觸點與0的關(guān)系。如果狀態(tài)字的BR位(二進(jìn)制結(jié)果位)為1,則動合觸點閉合,動斷觸點斷開如果算術(shù)運算結(jié)果溢出,則動合觸點閉合,動斷觸點斷開。該指令檢查條件碼CC1和CC0的組合,決定觸點與0的關(guān)系4、循環(huán)指令

①以累加器1作為循環(huán)計數(shù)器。②循環(huán)體是指循環(huán)標(biāo)號和循環(huán)指令LOOP之間的程序段。③循環(huán)指令每執(zhí)行一次,循環(huán)計數(shù)值減1,若其值不為0,則返回到循環(huán)指令LOOP的標(biāo)號處,否則執(zhí)行其后的指令。④數(shù)值范圍:W#16#0000~W#16#FFFF。⑤循環(huán)計數(shù)器的初值是0,那么循環(huán)將執(zhí)行65535次。

L5NEXT:TMW10 LMD20 *DTMD20LMW10LOOP NEXTLMW24二、程序控制指令程序控制指令是指對功能塊(FB、FC、SFB、

溫馨提示

  • 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

提交評論