PLC第三章(1)編程技術(shù)_第1頁
PLC第三章(1)編程技術(shù)_第2頁
PLC第三章(1)編程技術(shù)_第3頁
PLC第三章(1)編程技術(shù)_第4頁
PLC第三章(1)編程技術(shù)_第5頁
已閱讀5頁,還剩131頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

PLC第三章(1)編程技術(shù)第一頁,共136頁。CPU按照執(zhí)行的條件是否成立來決定是否執(zhí)行相應的程序塊或訪問對應的數(shù)據(jù)塊STEP7中主要有以下幾種類型的塊:組織塊: OB(OrganizationBlock)功能: FC(Function)功能塊: FB(FunctionBlock)系統(tǒng)功能:SFC(SystemFunction)系統(tǒng)功能塊:SFB(SystemFunctionBlock)背景數(shù)據(jù)塊:DB(InstanceDataBlock)共享數(shù)據(jù)塊:DB(ShareDataBlock)第二頁,共136頁。第三頁,共136頁。一、組織塊OB是程序塊(邏輯塊)根據(jù)啟動條件的不同,組織塊分為以下幾類:啟動組織塊--STOP轉(zhuǎn)為RUN時執(zhí)行1次,有OB100(暖啟動)、OB101(熱啟動)、OB102(冷啟動)等3個循環(huán)執(zhí)行的程序組織塊--OB1定期執(zhí)行的程序組織塊--OB10~OB17(日期中斷)、OB30~OB38(循環(huán)中斷)共17個事件驅(qū)動執(zhí)行的程序組織塊--OB20~OB27(延時中斷)、OB40~OB47(硬件中斷)、OB80~OB87(例如OB82為診斷錯誤)、OB86(擴展機架、DP主站系統(tǒng)或分布式I/O站故障)、OB121(編程錯誤)、OB122(I/O訪問錯誤)等。當某一事件發(fā)生時會執(zhí)行相應的組織塊。如該組織塊不存在,CPU將進入STOP。第四頁,共136頁。二、功能和功能塊--由用戶編寫的程序塊在FC和FB中的“變量聲明表”中定義變量,當調(diào)用此FC或FB時要明確指定這些變量的實際參數(shù)。程序代碼區(qū)變量聲明表第五頁,共136頁。FC和FB的主要區(qū)別:FC沒有自己的存儲區(qū),F(xiàn)B有自己專用的存儲區(qū)--背景數(shù)據(jù)塊DB。在調(diào)用FC時必須指定變量的實際參數(shù)在調(diào)用FB時必須指定一個背景數(shù)據(jù)塊(如DB10)??梢灾付ㄗ兞康膶嶋H參數(shù),也可不指定,此時FB在背景數(shù)據(jù)塊DB中自動讀取參數(shù)。第六頁,共136頁。三、系統(tǒng)功能SFC和系統(tǒng)功能塊SFBSFC和SFB是系統(tǒng)預先編好可供用戶調(diào)用的程序塊,固化在CPU中第七頁,共136頁。四、背景數(shù)據(jù)塊和共享數(shù)據(jù)塊--是為用戶提供的一個保存數(shù)據(jù)的區(qū)域背景數(shù)據(jù)塊DB是和某個FB或SFB相關(guān)聯(lián),其內(nèi)部的數(shù)據(jù)結(jié)構(gòu)是與其對應的FB或SFB的變量聲明表一致的。背景數(shù)據(jù)塊不是由用戶編輯的,是由編輯器自己生成的。共享數(shù)據(jù)塊DB用于存儲全局數(shù)據(jù),所有程序塊(OB、FC、FB)都可以訪問共享數(shù)據(jù)塊內(nèi)存儲的信息。它的大小和數(shù)據(jù)結(jié)構(gòu)是由用戶自行定義的。第八頁,共136頁。執(zhí)行OB1中的程序

(循環(huán)執(zhí)行)事件(日期時間中斷、硬件中斷等)調(diào)用其他

OB,F(xiàn)B,F(xiàn)CAI0.1AI0.2=Q8.0塊OB1循環(huán)監(jiān)視時間的開始啟動塊

(OB100)上電后執(zhí)行一次從模塊讀信號狀態(tài),并保存到過程映象區(qū)(PII)CPU循環(huán)輸出

模塊把過程映象輸出表(PIQ)寫到輸出模塊輸入

模塊S7-300PLC的工作過程:#3第九頁,共136頁。$2程序結(jié)構(gòu)和編程語言一、STEP7的程序結(jié)構(gòu)分類線性程序結(jié)構(gòu)分塊程序結(jié)構(gòu)結(jié)構(gòu)化程序結(jié)構(gòu)第十頁,共136頁。1.線性程序結(jié)構(gòu)整個用戶程序都寫在1個連續(xù)的程序塊中(OB1)。2.分塊程序結(jié)構(gòu)整個程序按任務分成若干個部分,并分別放置在不同的功能(FC)、功能塊(FB)及組織塊中,在OB1中順序調(diào)用各個塊。在分塊程序中,既無數(shù)據(jù)交換,也不存在重復利用的程序段,F(xiàn)C、FB不傳遞及不接收參數(shù)。第十一頁,共136頁。3.結(jié)構(gòu)化程序結(jié)構(gòu)整個控制過程按過程要求類似或相關(guān)的進行分類,分割成數(shù)個小任務。把具有相同控制過程,但控制參數(shù)不一致的程序段寫在各個可以分配參數(shù)的FC或FB中,在OB1中通過多次調(diào)用這些FC或FB來完成整個自動化控制任務。第十二頁,共136頁。二、STEP7的編程語言1.梯形圖(LAD)觸點、線圈等符號組成第十三頁,共136頁。2.語句表(STL)由STEP7的指令以文本編程的形式構(gòu)成語句表編程可使用STEP7的全部指令梯形圖和語句表可相互轉(zhuǎn)換,但LAD都可轉(zhuǎn)換成STL,而STL不一定能轉(zhuǎn)換成LAD第十四頁,共136頁。3.功能圖(FBD)類似數(shù)字電路的邏輯功能圖,指令用功能盒表示,根據(jù)一定的邏輯關(guān)系連接,以實現(xiàn)一定的控制功能。第十五頁,共136頁。$3S7-300PLC的數(shù)據(jù)類型基本數(shù)據(jù)類型復合數(shù)據(jù)類型參數(shù)數(shù)據(jù)類型第十六頁,共136頁。一、基本數(shù)據(jù)類型

1.位(BOOL)數(shù)據(jù)長度1位,對應數(shù)值為“0”和“1”2.字節(jié)(BYTE)數(shù)據(jù)長度8位,數(shù)據(jù)格式為“B#16#”,數(shù)值范圍為B#16#0~B#16#FF第十七頁,共136頁。3.字(WORD) 數(shù)據(jù)長度16位,有4種表達形式:二進制:2# 如2#101十六進制:W#16# 如W#16#90F,取值范圍W#16#0~W#16#FFFFBCD碼:C# 如C#354,取值范圍C#0~C#999無符號十進制:B#(*,*) 如B#(12,254),取值范圍為B#(0,0)~B#(255,255) 括號中的數(shù)字是用十進制的0~255來表示二進制中1個字節(jié)的內(nèi)容,則16位的數(shù)就要用2個0~255的數(shù)來表示。 如B#(12,254)=2#000011001111111012254第十八頁,共136頁。以上4種形式均表示1個16位的二進制數(shù)。如1個16位存儲單元中保存的內(nèi)容為: 0000_0010_0101_0111, 則這個數(shù)既可以寫成2#10111,也可寫成W#16#257、C#257、B#(2,87)(注:寫成不同形式時所對應的數(shù)值是不相等的)STEP7中常用十六進制格式,即W#16#**第十九頁,共136頁。4.雙字(DoubleWord)數(shù)據(jù)長度32位常用十六進制格式:DW#16#取值范圍DW#16#0~DW#16#FFFFFFFF5.整數(shù)(INT)數(shù)據(jù)長度16位,帶符號,最高位是符號位:0為正數(shù),1為負數(shù)。后面15位表示數(shù)值,以補碼表示。第二十頁,共136頁。6.雙整數(shù)(DoubleINT)數(shù)據(jù)長度32位,最高位表示符號用L#表示雙整數(shù),如L#27648表示32位的整數(shù)+27648(十進制);L#-9764表示32位的整數(shù)-9764。7.浮點數(shù)(REAL)數(shù)據(jù)長度32位,格式:*.****e±**如3.524e+3表示3.524×103=3524

1.0513e-2表示1.0513×10-2=0.010513(數(shù)值范圍:±1.175495×10-38~±3.402823×1038)第二十一頁,共136頁。8.S5TIME(SIMATIC時間)表示時間,數(shù)據(jù)長度16位,包括時基和時間常數(shù)二個部分。時間常數(shù)采用BCD碼,占12位,取值范圍0~999;時基占2位,表示時間單位。S5TIME格式為S5T#※h※m※s※ms上例即表示為S5T#439s或S5T#7m19s第二十二頁,共136頁。二、復合數(shù)據(jù)類型

長度超過32位的數(shù)據(jù)稱為復合數(shù)據(jù)類型 復合數(shù)據(jù)類型是由基本數(shù)據(jù)類型組合而成的日期時間數(shù)據(jù)類型字符串類型數(shù)組類型結(jié)構(gòu)用戶定義類型第二十三頁,共136頁。數(shù)組類型數(shù)組(ARRAY)--由一批相同類型的數(shù)據(jù)組成的一個整體數(shù)組定義中包括數(shù)組的名稱、維數(shù)、大小、數(shù)組元素的數(shù)據(jù)類型、各數(shù)組元素的初始值。第二十四頁,共136頁。在數(shù)據(jù)塊DB中用數(shù)組來定義數(shù)據(jù)的方法:

生成數(shù)據(jù)塊DB10第二十五頁,共136頁。雙擊DB10圖標,在變量聲明表中定義數(shù)組變量聲明表數(shù)組名稱1維數(shù)組,有100個元素,數(shù)組元素的數(shù)據(jù)類型是字節(jié)數(shù)組元素的初始值每輸入1項內(nèi)容后要按一下“回車”調(diào)用數(shù)組元素時可用DB10.DBB*或DB10.DBW*的形式。第二十六頁,共136頁。三、參數(shù)數(shù)據(jù)類型用于功能FC或功能塊FB的數(shù)據(jù)類型,主要包括POINT指針類型和ANY指針類型等指出用于傳遞數(shù)據(jù)的數(shù)據(jù)塊DB的塊號、數(shù)據(jù)地址、數(shù)據(jù)數(shù)量、數(shù)據(jù)類型。 例:P#M50.0(Point指針) P#M10.0BYTE4(Any指針) P#DB10.DBX4.0BYTE32

#4第二十七頁,共136頁。$4S7-300的尋址方式對編程元件進行訪問的方式立即尋址直接尋址間接尋址#第二十八頁,共136頁。一、立即尋址指令中直接提供操作數(shù) 如:SET;RLO位置1 L27648;27648裝入累加器ACC1 ;16384÷50→MW20第二十九頁,共136頁。二、直接尋址(絕對地址尋址)直接指定所訪問的存儲區(qū)域、訪問形式及地址數(shù)據(jù)絕對地址由地址標識符和存儲器位置組成地址標識符:指定存儲區(qū)(如I、Q、M)加上描述數(shù)據(jù)大小的符號(如B、W、D);指定軟元件(如T、C)或塊(如FC、DB、SFC)加上軟元件或塊的編號第三十頁,共136頁。有4種絕對尋址方式:位尋址字節(jié)尋址字尋址雙字尋址1.位尋址格式:地址標識符+字節(jié)地址+位地址(0-7)例:I4.0,Q20.3,M100.1,DBX0.0第三十一頁,共136頁。2.字節(jié)尋址格式:存儲區(qū)關(guān)鍵字+B+字節(jié)地址(存儲區(qū)關(guān)鍵字+B即為地址標識符)例:MB0,IB10,QB2,DBB13.字尋址格式:存儲區(qū)關(guān)鍵字+W+第1字節(jié)地址例:MW0,IW10,PIW752,DBW12(1)1個字包括2個字節(jié),如MW0包括MB0、MB1(2)2個字節(jié)中地址編號小的是高位字節(jié)第三十二頁,共136頁。4.雙字尋址格式:存儲區(qū)關(guān)鍵字+D+第1字節(jié)地址例:MD50,DBD20(1)1個雙字包括4個字節(jié),如MD50包括MB50、MB51、MB52、MB53(2)4個字節(jié)中地址編號最小的是高位字節(jié)第三十三頁,共136頁。注意:應盡量避免地址重疊情況的發(fā)生,使用字尋址時,盡量采用偶數(shù)地址;使用雙字尋址時,采用加4尋址。第三十四頁,共136頁。$5S7-300的梯形圖(LAD)指令一、位邏輯指令

位邏輯指令用于處理位信號,根據(jù)布爾邏輯對位信號進行邏輯組合,或改變位元件的狀態(tài)。第三十五頁,共136頁。可執(zhí)行下列功能的位邏輯指令:

<地址>1.常開觸點---||---<地址>2.常閉觸點---|/|---<地址>3.線圈輸出---()

第三十六頁,共136頁。<地址>4.中間輸出---(#)---5.信號流反向---|NOT|---

中間輸出指令是一個中間賦值元素,可以將RLO位(信號流狀態(tài))保存到指定的<地址>而不影響能流的邏輯關(guān)系。與其它觸點聯(lián)接時,---(#)---可以象一個觸點那樣插入。---(#)---元素只能放在梯形圖的中間,不能連接到母線上也不能放在一個分支的末尾。使用---|NOT|---(信號流反向)元素,可以生成求反的中間邏輯運算結(jié)果。第三十七頁,共136頁。

<地址>6.線圈置位

---(S)<地址>7.線圈復位---(R)當有能流流過線圈時(RLO為“1”),指令所指定<地址>處的位被置位為“1”(或復位為“0”)。RLO為“0”(沒有能流流過線圈)時沒有任何作用,并且元素指定地址的狀態(tài)保持不變第三十八頁,共136頁。<地址>8.RLO下降沿檢測---(N)---<地址>9.RLO上升沿檢測---(P)---RLO下降沿檢測指令可以檢測“邊沿存儲位”的狀態(tài)從“1”到“0”的變化。如果“邊沿存儲位”的信號狀態(tài)發(fā)生了下降沿,則使得其后的線圈產(chǎn)生一個脈寬為1個掃描周期的脈沖。RLO上升沿檢測指令的功能與其類似,但檢測上升沿第三十九頁,共136頁。RLO-邊沿檢測I1.0I1.1RLOM1.0M8.0M8.1M1.1OB1-循環(huán)例如第四十頁,共136頁。二、定時器指令脈沖定時器 ---(SP)擴展脈沖定時器 ---(SE)接通延時定時器 ---(SD)保持型接通延時定時器 ---(SS)斷開延時定時器 ---(SF)第四十一頁,共136頁。1、脈沖定時器--(SP)--(SP)指令是產(chǎn)生指定時間寬度脈沖的定時器。LAD參數(shù)數(shù)據(jù)類型存儲區(qū)說明<地址>TIMERT地址表示要起動的定時器號時間值S5TIMEI,Q,M,D(數(shù)據(jù)塊),L(局域數(shù)據(jù))定時時間值(S5TIME格式)第四十二頁,共136頁。脈沖定時器--(SP)如圖所示程序,定時器T1定義的時間值為2S

第四十三頁,共136頁。脈沖定時器--(SP)上圖程序?qū)臅r序圖如圖所示第四十四頁,共136頁。脈沖定時器--(SP)T1接點控制Q0.0線圈,因此T1接點的狀態(tài)與Q0.0的狀態(tài)一致。由時序圖可以看出,脈沖定時器每次起動的條件是邏輯位有正跳沿發(fā)生,定時器啟動計時,T1接點開始輸出高電平“1”。從時序圖可以看到,--(SP)指令計時的過程中,邏輯位的狀態(tài)若變?yōu)椤?”(如圖中第7秒處)則定時器停止計時,且輸出為“0”。因此,脈沖定時器輸出的高電平的寬度小于或等于所定義的時間值。第四十五頁,共136頁。脈沖定時器--(SP)脈沖定時器的方框指令如表所示LAD參數(shù)數(shù)據(jù)類型說明存儲區(qū)<地址>TIMER要啟動的計時器號如T0TSBOOL啟動輸入端I,Q,M,D,LTVS5TIME定時時間(S5TIME格式)RBOOL復位輸入端QBOOL定時器的狀態(tài)BIWORD當前時間(整數(shù)格式)BCDWORD當前時間(BCD碼格式)第四十六頁,共136頁。脈沖定時器--(SP)如圖所示的程序中,可從MW10和MW12中以不同的格式讀出定時器計時T1剩余的時間。第四十七頁,共136頁。脈沖定時器--(SP)上圖所示的程序?qū)臅r序圖如圖所示第四十八頁,共136頁。2、擴展脈沖定時器--(SE)--(SE)指令與--(SP)指令相似,但--(SE)指令具有保持功能。LAD參數(shù)數(shù)據(jù)類型存儲區(qū)說明<地址>TIMERT地址表示要起動的計時器號時間值S5TIMEI,Q,M,D,L定時時間值(S5TIME格式)第四十九頁,共136頁。擴展脈沖定時器--(SE)如圖所示的程序第五十頁,共136頁。擴展脈沖定時器--(SE)上圖所示的程序?qū)臅r序圖如圖所示第五十一頁,共136頁。擴展脈沖定時器--(SE)一旦邏輯位(即I0.0的狀態(tài))有正跳沿發(fā)生,定時器T0啟動,同時輸出高電平“1”。定時時間到后,輸出將自動變成低電平“0”。如果定時時間尚未到達,邏輯位的狀態(tài)就由“1”變?yōu)椤?”,這時定時器仍然繼續(xù)運行,直到計時完成。這一點是--(SE)指令與--(SP)指令的不同之處。第五十二頁,共136頁。擴展脈沖定時器--(SE)擴展脈沖定時器的方框指令如表所示LAD參數(shù)數(shù)據(jù)類型說明存儲區(qū)<地址>TIMER要啟動的計時器號如T0TSBOOL啟動輸入端I,Q,M,D,LTVS5TIME定時時間(S5TIME格式)RBOOL復位輸入端QBOOL定時器的狀態(tài)BIWORD當前時間(整數(shù)格式)BCDWORD當前時間(BCD碼格式)第五十三頁,共136頁。3、開通延時定時器--(SD)開通延時定時器指令--(SD),相當于繼電器控制系統(tǒng)中的通電延時時間繼電器。通電后延時一段時間觸點動作LAD參數(shù)數(shù)據(jù)類型存儲區(qū)說明<地址>TIMERT地址表示要起動的計時器號時間值S5TIMEI,Q,M,D,L定時時間值(S5TIME格式)第五十四頁,共136頁。開通延時定時器--(SD)如圖所示的程序:第五十五頁,共136頁。開通延時定時器--(SD)上圖所示的程序?qū)臅r序圖如圖所示第五十六頁,共136頁。開通延時定時器--(SD)--(SD)對應的方框如表所示LAD參數(shù)數(shù)據(jù)類型說明存儲區(qū)<地址>TIMER要啟動的計時器號如T0TSBOOL啟動輸入端I,Q,M,D,LTVS5TIME定時時間(S5TIME格式)RBOOL復位輸入端QBOOL定時器的狀態(tài)BIWORD當前時間(整數(shù)格式)BCDWORD當前時間(BCD碼格式)第五十七頁,共136頁。4、保持型開通延時定時器--(SS)保持型開通延時--(SS)與開通延時定時器--(SD)類似,但--(SS)指令有保持功能。LAD參數(shù)數(shù)據(jù)類型存儲區(qū)說明<地址>TIMERT地址表示要起動的計時器號時間值S5TIMEI,Q,M,D,L定時時間值(S5TIME格式)第五十八頁,共136頁。保持型開通延時定時器--(SS)

保持型開通延時定時器的應用方法如圖所示第五十九頁,共136頁。保持型開通延時定時器--(SS)上圖中的程序?qū)臅r序圖如圖所示第六十頁,共136頁。保持型開通延時定時器--(SS)保持型開通延時定時器的方框指令如表所示LAD參數(shù)數(shù)據(jù)類型說明存儲區(qū)<地址>TIMER要啟動的計時器號如T0TSBOOL啟動輸入端I,Q,M,D,LTVS5TIME定時時間(S5TIME格式)RBOOL復位輸入端QBOOL定時器的狀態(tài)BIWORD當前時間(整數(shù)格式)BCDWORD當前時間(BCD碼格式)第六十一頁,共136頁。5、關(guān)斷延時定時器--(SF)關(guān)斷延時定時器--(SF)相當于繼電器控制系統(tǒng)中的斷電延時時間繼電器。也是定時器指令中唯一的一個由下降沿啟動的定時器指令。LAD參數(shù)數(shù)據(jù)類型存儲區(qū)說明<地址>TIMERT地址表示要起動的計時器號時間值S5TIMEI,Q,M,D,L定時時間值(S5TIME格式)第六十二頁,共136頁。關(guān)斷延時定時器--(SF)如圖所示的程序第六十三頁,共136頁。關(guān)斷延時定時器--(SF)上圖中的程序?qū)臅r序圖如圖所示第六十四頁,共136頁。關(guān)斷延時定時器--(SF)關(guān)斷延時計時器的方框指令如下表所示LAD參數(shù)數(shù)據(jù)類型說明存儲區(qū)<地址>TIMER要啟動的計時器號如T0TSBOOL啟動輸入端I,Q,M,D,LTVS5TIME定時時間(S5TIME格式)RBOOL復位輸入端QBOOL定時器的狀態(tài)BIWORD當前時間(整數(shù)格式)BCDWORD當前時間(BCD碼格式)第六十五頁,共136頁。定時器應用舉例:(1)使用--(SP)或--(SE)指令構(gòu)成脈沖發(fā)生器:使用脈沖定時器如圖所示的程序可產(chǎn)生周期性變化的脈沖信號。第六十六頁,共136頁。上圖中的程序?qū)臅r序圖如圖所示第六十七頁,共136頁。(2)使用--(SD)指令產(chǎn)生周期性變化的脈沖信號:使用--(SD)指令可以采用下圖所示的程序得到脈沖信號第六十八頁,共136頁。上圖所示的程序?qū)臅r序圖如圖所示第六十九頁,共136頁。(3)使用--(SD)、(SP)、(SF)等指令,實現(xiàn)洗手間沖水控制的功能。程序和工作波形如圖所示第七十頁,共136頁。時序圖如圖所示第七十一頁,共136頁。定時器歸納:2種脈沖定時器(SP、SE),2種通電延時定時器(SD、SS),1種斷電延時定時器(SF)SP、SD為電平控制,SE、SS為邊沿控制SP、SE、SD、SS通電開始延時,SF斷電開始延時SP、SE、SF通電觸點就動作,延時到觸點斷開;SD、SS延時到觸點動作。#5第七十二頁,共136頁。三、計數(shù)器指令STEP7提供3種計數(shù)器:加法計數(shù)器、減法計數(shù)器、可逆(加/減)計數(shù)器。本節(jié)只對可逆(加/減)計數(shù)器進行介紹。第七十三頁,共136頁。1.計數(shù)器線圈指令

計數(shù)器置初值指令(SC)加法計數(shù)器線圈(CU)減法計數(shù)器線圈(CD)第七十四頁,共136頁。(1)計數(shù)器置初值指令(SC)當邏輯位RLO有正跳沿時,計數(shù)器置初值線圈將預置值裝入指定計數(shù)器中。若RLO位的狀態(tài)沒有正跳沿發(fā)生,則計數(shù)器的值保持不變。LAD參數(shù)數(shù)據(jù)類型存儲區(qū)說明計數(shù)器號COUNTERC地址表示預置初值的計數(shù)器號預置值WORDI,Q,M,D,L預置值(必須是BCD碼格式,即為C#,例如C#23)第七十五頁,共136頁。(2)加法計數(shù)器線圈

(CU)當邏輯位RLO有正跳沿時,加法計數(shù)器線圈使指定計數(shù)器的值加1,如果RLO位的狀態(tài)沒有正跳沿發(fā)生,或者計數(shù)器數(shù)值已經(jīng)達到最大值999,則計數(shù)器的值保持不變。

LAD參數(shù)數(shù)據(jù)類型存儲區(qū)說明計數(shù)器號COUNTERC地址表示要執(zhí)行加法計數(shù)的計數(shù)器號第七十六頁,共136頁。(3)減法計數(shù)器線圈(CD)

當邏輯位RLO有正跳沿時,減法計數(shù)器線圈使指定計數(shù)器的值減1,如果RLO位的狀態(tài)沒有正跳沿發(fā)生,或者計數(shù)器數(shù)值已經(jīng)達到最小值0,則計數(shù)器的值保持不變。

LAD參數(shù)數(shù)據(jù)類型存儲區(qū)說明計數(shù)器號COUNTERC地址表示要執(zhí)行減法計數(shù)的計數(shù)器號第七十七頁,共136頁。計數(shù)器線圈指令的使用舉例

如圖所示第七十八頁,共136頁。計數(shù)器指令的使用舉例當I0.0的狀態(tài)由“0”變?yōu)椤?”時,(SC)指令將數(shù)值23裝入計數(shù)器C0中,當I0.1的狀態(tài)由“0”變?yōu)椤?”時,計數(shù)器C0的值將減1,當I0.2的狀態(tài)由“0”變?yōu)椤?”時,計數(shù)器C0的值將加1。計數(shù)器的位狀態(tài)與計數(shù)器值的關(guān)系如表所示計數(shù)器的計數(shù)值計數(shù)器的位狀態(tài)(即觸點狀態(tài))不等于0“1”(高電平)等于0“0”(低電平)第七十九頁,共136頁。計數(shù)器指令的使用舉例如圖所示,若I0.3的狀態(tài)為“1”,則計數(shù)器C0所計的數(shù)值立刻變?yōu)榱悖捎冢≧)指令是高電平執(zhí)行,因此若I0.3的狀態(tài)一直保持“1”,則計數(shù)器C0始終處于清零狀態(tài)而無法正常使用。用戶在使用指令時,應注意指令的執(zhí)行方式(可加脈沖位)。第八十頁,共136頁。2.可逆計數(shù)器(S_CUD)的方框指令LAD參數(shù)數(shù)據(jù)類型說明存儲區(qū)<地址>COUNTER計數(shù)器標識號CCUBOOL加計數(shù)輸入I,Q,M,D,LCDBOOL減計數(shù)輸入SBOOL計數(shù)器預置輸入PVWORD計數(shù)器預置值(C#格式)RBOOL復位輸入QBOOL計數(shù)器位狀態(tài)CVWORD計數(shù)器當前值(整數(shù)格式)CV_BCDWORD計數(shù)器當前值(BCD格式)第八十一頁,共136頁??梢钥吹剑赡嬗嫈?shù)器方框指令可以完成計數(shù)器的加(CU)、減(CD)計數(shù)和置初值(S、PV)以及計數(shù)器值清零(R)等功能,還可以將計數(shù)器當前值以不同的格式輸出,整數(shù)格式(CV)和BCD格式(CV_BCD)。計數(shù)器的狀態(tài)可以Q端輸出,也可以由計數(shù)器的觸點輸出。第八十二頁,共136頁。例如,前面例子中兩圖所示的程序可以由下圖所示的程序代替第八十三頁,共136頁。計數(shù)器歸納:SC指令設置計數(shù)器預置值CU指令加法計數(shù)CD指令減法計數(shù)當前計數(shù)值不為零觸點接通(ON);僅在當前計數(shù)值為零時觸點斷開(OFF)用復位指令—(R)—可使當前計數(shù)值清零,觸點斷開僅在計數(shù)脈沖上升沿計數(shù),加到999(或減到0)后當前計數(shù)值不再增大(或減?。5诎耸捻?,共136頁。注意!定時器的定時時間值和計數(shù)器預置值都必須是BCD碼格式,數(shù)值范圍0-999第八十五頁,共136頁。計數(shù)器的使用舉例:第八十六頁,共136頁。四、數(shù)據(jù)處理指令數(shù)據(jù)處理指令包括數(shù)據(jù)傳送、轉(zhuǎn)換、算術(shù)運算、移位及字邏輯指令第八十七頁,共136頁。1.數(shù)據(jù)裝載和傳送指令:(MOVE)數(shù)據(jù)裝載和傳送指令(MOVE)如表所示LAD參數(shù)數(shù)據(jù)類型說明存儲區(qū)ENBOOL允許輸入I,Q,M,D,LENOBOOL允許輸出IN長度為8位、16位、32位的所有數(shù)據(jù)類型源數(shù)據(jù)OUT長度為8位、16位、32位的所有數(shù)據(jù)類型目的地地址第八十八頁,共136頁。數(shù)據(jù)裝載和傳送指令(MOVE)舉例:第八十九頁,共136頁。2.數(shù)據(jù)轉(zhuǎn)換BCD轉(zhuǎn)換為整數(shù)(BCD_I)整數(shù)轉(zhuǎn)換為BCD(I_BCD)第九十頁,共136頁。(1)BCD轉(zhuǎn)換為整數(shù)(BCD_I)BCD_I指令是將IN指定的內(nèi)容以BCD碼(二~十進制)格式讀入,并將其轉(zhuǎn)換為整數(shù)格式,輸出到OUT端LAD參數(shù)數(shù)據(jù)類型說明存儲區(qū)ENBOOL允許輸入I、Q、M、D、LENOBOOL允許輸出INWORDBCD數(shù)OUTINTBCD數(shù)的整數(shù)值第九十一頁,共136頁。注意:如果IN端指定的內(nèi)容超出BCD碼的范圍(例如四位二進制數(shù)出現(xiàn)1010~1111的幾種組合),則執(zhí)行指令時將會發(fā)生錯誤,使CPU進入STOP方式,或者調(diào)用編程錯誤組織塊OB121(如果OB121被編程且下載到PLC中)。第九十二頁,共136頁。程序舉例C#123:0000_0001_0010_0011(MW8)=C#123(MW10)=123=2#0000_0000_0111_1011W#16#12A超出BCD碼范圍,I0.2=1時將出錯,CPU的SF燈亮,調(diào)用OB121。無OB121時CPU進入STOP;有OB121時CPU帶錯運行。第九十三頁,共136頁。(2)整數(shù)轉(zhuǎn)換為BCD(I_BCD)I_BCD指令是將IN端指定的內(nèi)容以整數(shù)的格式讀入,然后將其轉(zhuǎn)換為BCD碼格式輸出到OUT端。LAD參數(shù)數(shù)據(jù)類型說明存儲區(qū)ENBOOL允許輸入I、Q、M、D、LENOBOOL允許輸出ININT整數(shù)OUTWORD整數(shù)轉(zhuǎn)換為BCD碼第九十四頁,共136頁。在使用I_BCD指令可能會遇到以下情況(1)IN端的整數(shù)大于999。

這時,PLC不停止,仍然正常運行。由于字(Word)的BCD碼最大只能表示C#999(最高四位為符號位)。若IN端的內(nèi)容大于999,CPU會將IN端的內(nèi)容直接送到OUT端輸出,不經(jīng)過I_BCD的轉(zhuǎn)換。這時OUT輸出的內(nèi)容可能超出BCD碼的范圍。注意當OUT端的內(nèi)容為BCD碼時,不一定是正確的轉(zhuǎn)換結(jié)果,也有可能是超過999的整數(shù)直接傳送過來的。例如整數(shù)2457通過I_BCD指令以后,OUT的值為C#999。因此在使用I_BCD指令時應該保證整數(shù)的值小于等于999。第九十五頁,共136頁。例如圖示程序段1(Network1)中,由于整數(shù)2457的二進制碼為2#0000_1001_1001_1001。因此MW10與MW12中的內(nèi)容相同,以二進制格式表示均為2#0000_1001_1001_1001,但MW12中是錯誤變換的結(jié)果。第九十六頁,共136頁。(2)IN端的整數(shù)為負整數(shù)時。轉(zhuǎn)換出的BCD碼最高四位為“1”。如下圖中程序段2所示,MW14中的內(nèi)容以二進制表示為2#1111_1001_1001_1001。但MW16中的內(nèi)容為整數(shù)-2457的二進制碼(負整數(shù)以二進制補碼形式保存,即2#1111_0110_0110_0111),形式上為十進制數(shù)-667,但實際是錯誤結(jié)果。因此,應保證IN端的內(nèi)容不小于-999。第九十七頁,共136頁。3.算術(shù)運算加法運算指令ADD減法運算指令SUB乘法運算指令MUL除法運算指令DIV第九十八頁,共136頁。(1)16位整數(shù)加法運算ADD_ILAD參數(shù)數(shù)據(jù)類型說明存儲區(qū)ENBOOL允許輸入I、Q、M、D、LENOBOOL允許輸出IN1INT相加的第1個值IN2INT相加的第2個值OUTINT相加的結(jié)果第九十九頁,共136頁。程序示例如圖所示第一百頁,共136頁。運算結(jié)果可能失控的情況下需加脈沖指令第一百零一頁,共136頁。(2)16位整數(shù)減法運算SUB_I減法指令運算規(guī)則為:IN1-IN2=OUTLAD參數(shù)數(shù)據(jù)類型說明存儲區(qū)ENBOOL允許輸入I、Q、M、D、LENOBOOL允許輸出IN1INT被減數(shù)IN2INT減數(shù)OUTINT減法運算的結(jié)果第一百零二頁,共136頁。(3)16位整數(shù)乘法運算MUL_I

允許輸入EN的狀態(tài)為“1”時,啟動乘法運算指令,將IN1乘以IN2,并將計算結(jié)果送至OUT端。如果計算結(jié)果正確,ENO端輸出為“1”。LAD參數(shù)數(shù)據(jù)類型說明存儲區(qū)ENBOOL允許輸入I、Q、M、D、LENOBOOL允許輸出IN1INT被乘數(shù)IN2INT乘數(shù)OUTINT乘法運算的結(jié)果第一百零三頁,共136頁。如果運算結(jié)果超出16位范圍(-32768~+32767)時,ENO=0,同時CPU的狀態(tài)字中OV=1、OS=1若估計運算結(jié)果可能會超出16位范圍,應采用32位乘法指令:LAD參數(shù)數(shù)據(jù)類型說明存儲區(qū)ENBOOL允許輸入I、Q、M、D、LENOBOOL允許輸出IN1DINT或常數(shù)被乘數(shù)IN2DINT或常數(shù)乘數(shù)OUTDINT乘法運算的結(jié)果第一百零四頁,共136頁。如果I0.0=“1”,則MUL_DI方塊指令激活。MD0與MD4相乘的結(jié)果放入MD10中。如果結(jié)果超出雙整數(shù)的允許范圍,則輸出Q4.0置位。第一百零五頁,共136頁。(4)16位整數(shù)除法運算DIV_I

除法指令的運算規(guī)則為:IN1÷IN2=OUT

LAD參數(shù)數(shù)據(jù)類型說明存儲區(qū)ENBOOL允許輸入I、Q、M、D、LENOBOOL允許輸出IN1INT被除數(shù)IN2INT除數(shù)OUTINT除法運算的結(jié)果第一百零六頁,共136頁。例如如圖所示的程序,運算結(jié)果為6。第一百零七頁,共136頁。(5)雙整數(shù)取余數(shù)指令MOD_DI

在16位整數(shù)除法中,余數(shù)被舍棄,若要取余數(shù),要用雙整數(shù)取余數(shù)指令MOD_DI。雙整數(shù)取余數(shù)指令,是將兩個雙整數(shù)進行除法運算,并將余數(shù)作為結(jié)果送到OUT端

LAD參數(shù)數(shù)據(jù)類型說明存儲區(qū)ENBOOL允許輸入I、Q、M、D、LENOBOOL允許輸出IN1DINT被除數(shù)IN2DINT除數(shù)OUTDINT除法運算取余數(shù)的結(jié)果第一百零八頁,共136頁。例如27與4兩個整數(shù)相除的余數(shù)為3,利用如圖所示的程序可以計算出來(L#為雙整數(shù))第一百零九頁,共136頁。4.比較指令是比較觸點指令對2個源數(shù)據(jù)(IN1和IN2)進行比較,如果條件滿足,則比較觸點接通;條件不滿足,比較觸點斷開。第一百一十頁,共136頁。比較指令及其應用源數(shù)據(jù):兩個整數(shù)(I)的比較(每一整數(shù)均為16位);兩個雙整數(shù)(DI)的比較(每一雙整數(shù)均為32位);兩個實數(shù)(R)的比較(每一實數(shù)均為32位);比較關(guān)系有以下幾種類型:等于(EQ): IN1等于(==)IN2;不等于(NQ): IN1不等于(<>)IN2;大于(GT): IN1大于(>)IN2;小于(LT): IN1小于(<)IN2;大于或等于(GE): IN1大于或等于(>=)IN2;小于或等于(LE): IN1小于或等于(<=)IN2;第一百一十一頁,共136頁。(例1)整數(shù)等于比較指令整數(shù)比較指令關(guān)鍵字符為I。整數(shù)等于比較指令是判斷兩個整數(shù)是否相等,如果相等,則邏輯結(jié)果RLO為“1”,如果不相等則邏輯結(jié)果RLO為“0”。LAD參數(shù)數(shù)據(jù)類型說明存儲區(qū)IN1INT比較的第一個數(shù)值I、Q、M、D、LIN2INT比較的第二個數(shù)值第一百一十二頁,共136頁。如圖所示的程序,當MW10中的內(nèi)容等于23時,Q0.0的狀態(tài)為“1”,否則,Q0.0的狀態(tài)為“0”。第一百一十三頁,共136頁。注意:比較指令的使用類似觸點,因此比較指令不能放在梯級的最后。如圖所示說明:上圖所示程序是一個不完整的程序,不能被保存或下載。比較指令只能放在邏輯串的中間,在它右邊一定還應有線圈或其它指令。第一百一十四頁,共136頁。(例2)整數(shù)不等于比較指令

整數(shù)不等于比較指令是指當兩個整數(shù)不相等時,比較的邏輯結(jié)果RLO為“1”,而當兩個數(shù)相等時邏輯結(jié)果RLO為“0”。這一指令相當于“等于”比較指令的“非”操作。LAD參數(shù)數(shù)據(jù)類型說明存儲區(qū)IN1INT比較的第一個數(shù)值I、Q、M、D、LIN2INT比較的第二個數(shù)值第一百一十五頁,共136頁。其余16位整數(shù)比較的方框指令格式與上述指令相同,只是方框中的操作碼不同:第一百一十六頁,共136頁。(例3)雙整數(shù)大于比較指令雙整數(shù)的關(guān)鍵字為D。大于比較指令是當?shù)谝粋€數(shù)值大于第二個數(shù)值時,即IN1大于IN2,比較邏輯結(jié)果RLO為“1”,否則邏輯結(jié)果RLO為“0”。LAD參數(shù)數(shù)據(jù)類型說明存儲區(qū)IN1DINT比較的第一個數(shù)值I、Q、M、D、LIN2DINT比較的第二個數(shù)值第一百一十七頁,共136頁。(例4)實數(shù)小于等于比較指令實數(shù)比較指令的關(guān)鍵字為R。小于等于比較指令是當?shù)谝粋€數(shù)值小于或等于第二個數(shù)值時,即IN1<=IN2時,比較邏輯結(jié)果RLO為“1”,否則邏輯結(jié)果RLO為“0”。LAD參數(shù)數(shù)據(jù)類型說明存儲區(qū)IN1DINT比較的第一個數(shù)值I、Q、M、D、LIN2DINT比較的第二個數(shù)值第一百一十八頁,共136頁。字與字相“與”指令:WAND_W雙字與雙字相“與”指令:WAND_DW字與字相“或”指令:WOR_W雙字與雙字相“或”指令:WOR_DW字與字相“異或”指令:WXOR_W雙字與雙字相“異或”指令:WXOR_DW5.字邏輯指令第一百一十九頁,共136頁。(1)字與字相“與”指令:WAND_W

當EN端狀態(tài)為“1”時,執(zhí)行指令。這一指令根據(jù)“與”真值表將IN1端和IN2端的內(nèi)容逐位相與,并將結(jié)果送至OUT端指定的地址。LAD參數(shù)數(shù)據(jù)類型說明存儲區(qū)ENBOOL允許輸入I、Q、M、D、LENOBOOL允許輸出IN1WORD邏輯運算第1個值IN2WORD邏輯運算第2個值OUTWORD邏輯與運算的結(jié)果第一百二十頁,共136頁。如圖所示的程序:設MW10中的內(nèi)容為 2#0111_0010_0101_1001AND2#0000_0000_0000_1111字邏輯“與”指令的操作結(jié)果(MW12中的內(nèi)容)為 2#0000_0000_0000_1001。第一百二

溫馨提示

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

評論

0/150

提交評論