版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
S7-200PLC指令系統(tǒng)第五章一、編程語(yǔ)言(一)梯形圖(LAD)編程語(yǔ)言
梯形圖是與電氣控制電路圖相呼應(yīng)的圖形語(yǔ)言。它來(lái)源于繼電器邏輯控制系統(tǒng)的描述。(二)功能塊圖(FBD)
功能塊圖類似于普通邏輯概念圖,沿用了半導(dǎo)體邏輯電路的邏輯框圖表達(dá)方式。(三)語(yǔ)句表(STL)
語(yǔ)句表程序設(shè)計(jì)語(yǔ)言是用布爾助記符來(lái)描述程序的一種程序設(shè)計(jì)語(yǔ)言,計(jì)算機(jī)中的匯編語(yǔ)言非常相似,目前已經(jīng)可以應(yīng)用高級(jí)語(yǔ)言。
語(yǔ)句表可以編寫(xiě)梯形圖或功能塊無(wú)法實(shí)現(xiàn)的程序。第一節(jié)S7-200PLC編程的基本概念圖5-1功能塊圖(FBD)二、數(shù)據(jù)類型1、基本數(shù)據(jù)類型1位布爾型(BOOL)8位字節(jié)型(BYTE)16位無(wú)符號(hào)整數(shù)型(WORD)16位有符號(hào)整數(shù)型(INT)32位無(wú)符號(hào)雙字整數(shù)型(DWORD)32位有符號(hào)雙字整數(shù)型(DINT)32位實(shí)數(shù)型(REAL)。實(shí)數(shù)型(REAL)是按照NSI/IEEE754—1985標(biāo)準(zhǔn)(單精度)的表示格式規(guī)定。
(一)基本數(shù)據(jù)類型及數(shù)據(jù)類型檢查表5-22、數(shù)據(jù)類型檢查(1)PLC對(duì)數(shù)據(jù)類型檢查有助于避免常見(jiàn)的編程錯(cuò)誤。分為三級(jí):完全數(shù)據(jù)類型檢查、簡(jiǎn)單數(shù)據(jù)類型檢查和無(wú)數(shù)據(jù)類型檢查。(2)S7-200PLC的SIMATIC指令集不支持完全數(shù)據(jù)類型檢查。使用局部變量時(shí),執(zhí)行簡(jiǎn)單數(shù)據(jù)類型檢查;使用全局變量時(shí),指令操作數(shù)為地址而不是可選的數(shù)據(jù)類型時(shí),執(zhí)行無(wú)數(shù)據(jù)類型檢查。表5-1表5-3(二)數(shù)據(jù)長(zhǎng)度與數(shù)值范圍表5-4數(shù)據(jù)長(zhǎng)度與數(shù)值數(shù)據(jù)的數(shù)值范圍:無(wú)符號(hào)數(shù)為0~2n,有符號(hào)數(shù)為-2n-1~2n-1。注意實(shí)數(shù)的數(shù)值范圍-1038~1038。
程序區(qū)用于存放用戶程序,存儲(chǔ)器為EEPROM。
系統(tǒng)區(qū)用于存放有關(guān)PLC配置結(jié)構(gòu)的參數(shù),如PLC主機(jī)及擴(kuò)展模塊的I/O配置和編址、配置PLC站地址,設(shè)置保護(hù)口令、停電記憶保持區(qū)、軟件濾波功能等,存儲(chǔ)器為EEPROM。
數(shù)據(jù)區(qū)是S7-200CPU提供的存儲(chǔ)器的特定區(qū)域。它包括輸入映象寄存器(I)、輸出映像寄存器(Q)、變量存儲(chǔ)器(V)、內(nèi)部標(biāo)志位存儲(chǔ)器(M)、順序控制繼電器存儲(chǔ)器(S)、特殊標(biāo)志位存儲(chǔ)器(SM)、局部存儲(chǔ)器(L)、定時(shí)器存儲(chǔ)器(T)、計(jì)數(shù)器存儲(chǔ)器(C)、模擬量輸入映像寄存器(AI)、模擬量輸出映像寄存器(AQ)、累加器(AC)、高速計(jì)數(shù)器(HC)。存儲(chǔ)器為EEPROM和RAM。三、存儲(chǔ)器區(qū)域
PLC的存儲(chǔ)器分為程序區(qū)、系統(tǒng)區(qū)、數(shù)據(jù)區(qū)。(一)數(shù)據(jù)區(qū)存儲(chǔ)器的地址表示格式
存儲(chǔ)器是由許多存儲(chǔ)單元組成,每個(gè)存儲(chǔ)單元都有惟一的地址,可以依據(jù)存儲(chǔ)器地址來(lái)存取數(shù)據(jù)。數(shù)據(jù)區(qū)存儲(chǔ)器地址的表示格式有位、字節(jié)、字、雙字地址格式。1、位地址格式某一位的地址由存儲(chǔ)器區(qū)域標(biāo)識(shí)符、字節(jié)地址及位號(hào)構(gòu)成,如V5.4,I0.0等。圖5-2存儲(chǔ)器中的位字地址(1)字節(jié)編址的指定方式為:(區(qū)域標(biāo)志符)B(字節(jié)號(hào)),如IB0表示由I0.0~I(xiàn)0.7這8位組成的字節(jié)。(2)字編址的指定方式為:(區(qū)域標(biāo)志符)W(起始字節(jié)號(hào)),且最高有效字節(jié)為起始字節(jié)。例如VW100表示由VB100和VB101這2字節(jié)組成的字。(3)雙字編址的指定方式為:(區(qū)域標(biāo)志符)D(起始字節(jié)號(hào)),且最高有效字節(jié)為起始字節(jié)。例如VD100表示由VB100到VB103這4字節(jié)組成的雙字。2、字節(jié)、字、雙字地址格式3、其他地址格式
數(shù)據(jù)區(qū)存儲(chǔ)器區(qū)域中,還包括定時(shí)器存儲(chǔ)器(T)、計(jì)數(shù)器存儲(chǔ)器(C)、累加器(AC)、高速計(jì)數(shù)器(HC)等,它們是模擬相關(guān)的電器元件的。它們的地址格式為:Ay。
由區(qū)域標(biāo)識(shí)符A和元件號(hào)y組成,例T24表示某定時(shí)器的地址,T是定時(shí)器的區(qū)域標(biāo)識(shí)符,24是定時(shí)器號(hào),同時(shí)T24又可表示此定時(shí)器的當(dāng)前值。(二)數(shù)據(jù)區(qū)存儲(chǔ)器區(qū)域1、輸入/輸出映像寄存器(I/Q)(1)輸入映像寄存器(I)
PLC的輸入端子輸入映像寄存器(I)的相應(yīng)位。輸入映像寄存器的狀態(tài)只能由外部輸入信號(hào)驅(qū)動(dòng),而不能在內(nèi)部由程序指令來(lái)改變。位地址:I[字節(jié)地址].[位地址],如I0.1;字節(jié)、字、雙字地址:I[數(shù)據(jù)長(zhǎng)度][起始字節(jié)地址],如IB4、IW6、ID10。(2)輸出映像寄存器(Q)
每一個(gè)輸出模塊的端子與輸出映像寄存器的相應(yīng)位相對(duì)應(yīng)。CPU將輸出判斷結(jié)果存放在輸出映像寄存器中,在掃描周期的結(jié)尾,CPU以批處理方式將輸出映像寄存器的數(shù)值復(fù)制到相應(yīng)的輸出端子上。
在程序的執(zhí)行過(guò)程中,對(duì)于輸入或輸出的存取通常是通過(guò)映像寄存器,而不是實(shí)際的輸入、輸出端子。S7-200CPU執(zhí)行有關(guān)輸入輸出程序時(shí)的操作過(guò)程如圖所示。
2、內(nèi)部標(biāo)志位存儲(chǔ)器(M)內(nèi)部標(biāo)志位存儲(chǔ)器(M)也稱內(nèi)部線圈,是模擬繼電器控制系統(tǒng)中的中間繼電器,它存放中間操作狀態(tài),或存儲(chǔ)其它相關(guān)數(shù)據(jù)。如M26.7,MB11,MW23,MD26。3、變量存儲(chǔ)器(V)變量存儲(chǔ)器(V)存放全局變量、存放程序執(zhí)行過(guò)程中控制邏輯操作的中間結(jié)果或其他相關(guān)數(shù)據(jù)。變量存儲(chǔ)器全局有效。全局有效是指同一個(gè)存儲(chǔ)器可以在任一程序分區(qū)(主程序、子程序、中斷程序)被訪問(wèn)。如V10.2,VB20,VW100,WD320。4、局部存儲(chǔ)器(L)局部存儲(chǔ)器(L)存放局部變量,是局部有效的。局部有效是指某一局部存儲(chǔ)器只能在某一程序分區(qū)(主程序或子程序或中斷程序)中使用。如L0.0,LB33,LW44,LD55。6、特殊標(biāo)志位存儲(chǔ)器(SM)特殊標(biāo)志位(SM)即特殊內(nèi)部線圈,它是用戶與系統(tǒng)程序之間的界面。
SM0.0RUN監(jiān)控,PLC在RUN方式時(shí),SM0.0總為1;
SM0.1初始脈沖,SM0.1接通一個(gè)掃描周期;
SM0.3PLC上電進(jìn)入RUN方式時(shí),SM0.3接通一個(gè)掃描周期;
SM0.5秒脈沖,占空比為50%,周期為1s的脈沖。5、順序控制繼電器存儲(chǔ)器(S)順序控制繼電器(S)用于順序控制(或步進(jìn)控制)。順序控制繼電器指令(SCR)基于順序功能圖(SFC)的編程方式。SCR指令提供控制程序的邏輯分段,從而實(shí)現(xiàn)順序控制。如S3.1,SB4,SW10,SD21。7、定時(shí)器(T)定時(shí)器是模擬繼電器控制系統(tǒng)中的時(shí)間繼電器。時(shí)基有三種:1ms、10ms、100ms。定時(shí)器存儲(chǔ)器地址表示格式為:T[定時(shí)器號(hào)],如T24。S7-200PLC定時(shí)器存儲(chǔ)器的有效地址范圍為:T(0~255)。8、計(jì)數(shù)器(T)計(jì)數(shù)器是累計(jì)其計(jì)數(shù)輸入端脈沖電平由低到高的次數(shù),有三種類型:增計(jì)數(shù)、減計(jì)數(shù)、增減計(jì)數(shù)。計(jì)數(shù)器存儲(chǔ)器地址表示格式為:C[計(jì)數(shù)器號(hào)],如C3。S7-200PLC計(jì)數(shù)器存儲(chǔ)器的有效地址范圍為:C(0~255)。9、模擬量輸入映像寄存器(AI)模擬量輸入模塊將外部輸入的模擬信號(hào)的模擬量轉(zhuǎn)換成1個(gè)字長(zhǎng)的數(shù)字量,存放在模擬量輸入映像寄存器(AI)中,供CPU運(yùn)算處理。如AIW0,AIW2,AIW4等。10、模擬量輸出映像寄存器(AO)
CPU運(yùn)算結(jié)果存放在模擬量輸出映像寄存器(AQ)中,供D/A轉(zhuǎn)換器將1個(gè)字長(zhǎng)的數(shù)字量轉(zhuǎn)換成模擬量。如AQW0,AQW2,AQW4等。11、累加器(AC)累加器用來(lái)暫存計(jì)算中間值的存儲(chǔ)器,也可向子程序傳遞參數(shù)或返回參數(shù)。S7-200CPU累加器:AC0、AC1、AC2、AC3。
累加器是可讀寫(xiě)單元,可以按字節(jié)、字、雙字存取累加器中的數(shù)值。由指令標(biāo)識(shí)符決定存取數(shù)據(jù)的長(zhǎng)度,例如,MOVB指令存取累加器的字節(jié),DECW指令存取累加器的字,INCD指令存取累加器的雙字。按字節(jié)、字存取時(shí),累加器只存取存儲(chǔ)器中數(shù)據(jù)的低8位、低16位;以雙字存取時(shí),則存取存儲(chǔ)器的32位。12、高速計(jì)數(shù)器(HC)高速計(jì)數(shù)器用來(lái)累計(jì)高速脈沖信號(hào),當(dāng)高速脈沖信號(hào)頻率比CPU掃描速率更快時(shí),必須使用高速計(jì)數(shù)器。CPU226高速計(jì)數(shù)器:HC(0~5)。
四、尋址方式指令中如何提供操作數(shù)或操作數(shù)地址,稱為尋址方式。S7-200PLC的尋址方式有:立即尋址、直接尋址、間接尋址。
(一)立即尋址指令直接給出操作數(shù),操作數(shù)緊跟著操作碼。十進(jìn)制常數(shù):30112十六進(jìn)制常數(shù):16#42FASCII常數(shù):‘INPUT’實(shí)數(shù)或浮點(diǎn)常數(shù):+1.112E-10
二進(jìn)制常數(shù):2#0101
1110#為常數(shù)的進(jìn)制格式說(shuō)明符
(二)直接尋址指令直接給出操作數(shù)的地址的尋址方式稱為直接尋址。有按位、字節(jié)、字、雙字的尋址方式。位尋址:ANDQ5.5字節(jié)尋址:ORBVB33,LB21字尋址:MOVWAC0,AQW2雙字尋址:MOVDAC1,VD200(三)間接尋址間接尋址通過(guò)使用地址指針來(lái)存取存儲(chǔ)器中的數(shù)據(jù)。在S7-200中允許使用指針對(duì)I、Q、M、V、S、T、C(僅當(dāng)前值)存儲(chǔ)區(qū)進(jìn)行間接尋址。1、建立指針
間接尋址前,應(yīng)先建立指針。指針為雙字長(zhǎng),是所要訪問(wèn)的存儲(chǔ)單元(最大為雙字型32位)的物理地址。只能使用變量存儲(chǔ)器(V)、局部存儲(chǔ)器(L)或累加器(AC1、AC2、AC3)作為指針,AC0不能用作間接尋址的指針。2、指針建立好后,利用指針存取數(shù)據(jù)3、修改指針在取連續(xù)地址的存儲(chǔ)單元中數(shù)據(jù)時(shí),通過(guò)修改指針可以非常方便地存取數(shù)據(jù)。修改指針值時(shí),應(yīng)根據(jù)存取的數(shù)據(jù)長(zhǎng)度來(lái)進(jìn)行調(diào)整。若對(duì)字節(jié)進(jìn)行存取,指針值加1(或減1);若對(duì)字進(jìn)行存取、或?qū)Χ〞r(shí)器、計(jì)數(shù)器的當(dāng)前值進(jìn)行存取,指針值加2(或減2);若對(duì)雙字進(jìn)行存取,則指針值加4(或減4)。圖5-5
使用指針間接尋址
把VB200的地址送入AC1建立指針
把指針處的值送到AC0
本指令是MOVW,為字型長(zhǎng)度,則AC0的高16位空閑未用;若是MOVD雙字型指令,則將VB200~VB203的內(nèi)容(即12345678)送到AC0
這里給出的是起始字節(jié)地址,而并不表示數(shù)據(jù)長(zhǎng)度(由隨后間接存取指令類型決定)為字型。所以,如果改為&VB200或&VD200效果完全相同。把指針增加兩次,指向下一個(gè)字
把AC1(VW202)所指向的字?jǐn)?shù)值送到AC0
圖5-6
存取數(shù)據(jù)值時(shí)指針的修改
五、用戶程序的結(jié)構(gòu)
用戶程序可分為三個(gè)程序分區(qū):主程序、子程序(可選)和中斷程序(可選)。主程序(OB1):是用戶程序的主體。CPU在每個(gè)掃描周期都要執(zhí)行一次主程序指令。子程序:是程序的可選部分,主程序調(diào)用時(shí)才能夠執(zhí)行。中斷程序:是程序的可選部分,只有當(dāng)中斷事件發(fā)生時(shí),才能夠執(zhí)行。中斷程序可在掃描周期的任意點(diǎn)執(zhí)行。第二節(jié)S7-200PLC的基本指令及編程方法常開(kāi)觸點(diǎn)I0.0觸點(diǎn)地址編號(hào)I0.1常閉觸點(diǎn)觸點(diǎn)地址編號(hào)I0.0Q0.0標(biāo)準(zhǔn)線圈線圈地址編號(hào)()1)外接輸入電路閉合時(shí),輸入映像寄存器為“1”狀態(tài),梯型圖中對(duì)應(yīng)的“-||-”接通,“-|/|-”斷開(kāi)。2)外接輸入電路斷開(kāi)時(shí),輸入映像寄存器為“0”狀態(tài),梯型圖中對(duì)應(yīng)的“-||-”
斷開(kāi),“-|/|-”
閉合。3)梯形圖中某一個(gè)線圈“通電”時(shí),對(duì)應(yīng)的輸出映像寄存器的位為“1”,對(duì)應(yīng)外部的負(fù)載通電工作。4)梯形圖中某一個(gè)線圈“斷電”時(shí),對(duì)應(yīng)的輸出映像寄存器的位為“0”,對(duì)應(yīng)外部的負(fù)載斷電,停止工作。一、基本邏輯指令邏輯關(guān)系梯形圖助記符I0.0I0.1LD I0.0A I0.1= Q0.0與AND當(dāng)I0.0與I0.1
都“ON”時(shí),則輸出Q0.0
“ON”(1)。Q0.0()LD I0.0O I0.1= Q0.0或OR當(dāng)I0.0
或I0.0
“ON”時(shí),則輸出Y0
“ON”(1)I0.0I0.1Q0.0()LDN
I0.1= Q0.0非NOT當(dāng)I0.1
“OFF”時(shí)則輸出Q0.0
“ON”(1)Q0.0I0.1()邏輯關(guān)系梯形圖助記符LD I0.0O I0.1LD I0.2O I0.3ALD=Q0.0當(dāng)“I0.0或I0.1”與“I0.2
或I0.3”
都“ON”時(shí),則輸出Y0
“ON”。區(qū)塊與ALD(AndStack)區(qū)塊或OLD(OrStack)當(dāng)“I0.0
與I0.1”或“I0.2
與I0.3非”
“ON”時(shí),則輸出Q0.0
“ON”。I0.0I0.1I0.2I0.3Q0.0I0.0I0.2I0.1I0.3Q0.0LD I0.0O I0.1LD I0.2O I0.3OLD=Q0.0例1:直接啟動(dòng)停車控制I/O分配:I0.0:停車I0.1:?jiǎn)?dòng)Q0.1:KM語(yǔ)句表LDI0.1OQ0.0AI0.0=Q0.0繼電器控制電路圖I/O分配決定PLC的端子接線圖PLC的端子接線方式又決定編程語(yǔ)言I/O分配:I0.0:停車I0.1:?jiǎn)?dòng)Q0.1:KMQ0.0I0.0Q0.0I0.1置位、復(fù)位指令硬件接線及I/O分配連續(xù)按鈕SB1-I0.0點(diǎn)動(dòng)按鈕SB2-I0.1停止按鈕SB3-I0.2SB1KM1SB2SB3電源Q0.0L+I0.0I0.1I0.21LFR正確的程序分析、程序掃描周期的理解連續(xù)按鈕SB1-I0.0點(diǎn)動(dòng)按鈕SB2-I0.1停止按鈕SB3-I0.2SB1KM1SB2SB3電源Q0.0L+I0.0I0.1I0.21LFR接觸器聯(lián)鎖正反轉(zhuǎn)控制電路電動(dòng)機(jī)的正反轉(zhuǎn)控制FUKM1QS正轉(zhuǎn)接觸器反轉(zhuǎn)接觸器L1L2L3主電路KM2FRM3~注意調(diào)相電動(dòng)機(jī)的正反轉(zhuǎn)控制I/O接線圖正轉(zhuǎn)啟動(dòng)SB2-I0.0反轉(zhuǎn)啟動(dòng)SB3-I0.1
停止SB1-I0.2KM2SB2KM1SB3SB1KM2KM1電源FR正轉(zhuǎn)接觸器KM1-Q0.0反轉(zhuǎn)接觸器KM2-Q0.1正轉(zhuǎn)互鎖反轉(zhuǎn)互鎖Q0.0L+I0.0I0.1I0.2Q0.11L電動(dòng)機(jī)的正反轉(zhuǎn)控制梯形圖正轉(zhuǎn)反轉(zhuǎn)I0.1Q0.1I0.0Q0.0I0.2Q0.1()I0.0Q0.0I0.1Q0.1I0.2Q0.0()注意圖中兩個(gè)自保持回路的不同!KM2SB2KM1SB3SB1KM2KM1電源FRQ0.0L+I0.0I0.1I0.2Q0.11L二、立即I/O指令(一)立即輸入指令在每個(gè)標(biāo)準(zhǔn)觸點(diǎn)指令的后面加“I”。指令執(zhí)行時(shí),立即讀取物理輸入點(diǎn)的值,但不刷新相應(yīng)映像寄存器的值。(二)立即輸出指令用立即指令訪問(wèn)輸出點(diǎn)時(shí),把棧頂值立即復(fù)制到指令所指定的物理輸出點(diǎn),同時(shí),相應(yīng)的輸出映像寄存器的內(nèi)容也被刷新。(三)立即置位和立即復(fù)位指令用立即置位指令訪問(wèn)輸出點(diǎn)時(shí),從指令所指出的位(bit)開(kāi)始的N個(gè)(最多為128個(gè))物理輸出點(diǎn)被立即置位,同時(shí),相應(yīng)的輸出映像寄存器的內(nèi)容也被刷新。用立即復(fù)位指令訪問(wèn)輸出點(diǎn)時(shí),從指令所指出的位(bit)開(kāi)始的N個(gè)(最多為128個(gè))物理輸出點(diǎn)被立即復(fù)位,同時(shí),相應(yīng)的輸出映像寄存器的內(nèi)容也被刷新。說(shuō)明:立即I/O指令是直接訪問(wèn)物理輸入輸出點(diǎn)的,比一般指令訪問(wèn)輸入輸出映像寄存器占用CPU時(shí)間要長(zhǎng),不能盲目使用。例:三、邏輯堆棧指令邏輯堆棧指令只用于語(yǔ)句表(STL)編程,使用梯形圖(LAD)、功能塊(FBD)編程時(shí),編輯器會(huì)自動(dòng)插入相關(guān)的指令處理堆棧操作。四、取非觸點(diǎn)指令和空操作指令
取非觸點(diǎn)可以改變能流的狀態(tài)。觸點(diǎn)左側(cè)為1時(shí),右側(cè)為0,能流就停止;觸點(diǎn)左側(cè)為0時(shí),右側(cè)為1,能流就通過(guò)。
空操作(NOPN)指令不影響程序的執(zhí)行,操作數(shù)N是一個(gè)0~255之間的常數(shù)。五、正/負(fù)跳變觸點(diǎn)指令正跳變觸點(diǎn)檢測(cè)到脈沖的每一次正跳變后,產(chǎn)生一個(gè)掃描周期的脈沖。指令格式:負(fù)跳變觸點(diǎn)檢測(cè)到脈沖的每一次負(fù)跳變后,產(chǎn)生一個(gè)掃描周期的脈沖。指令格式:應(yīng)用舉例:六、定時(shí)器和計(jì)數(shù)器指令輸入接點(diǎn)設(shè)定值:1~32767定時(shí)器號(hào)碼(0~255)INPTT37TON定時(shí)器的實(shí)際設(shè)定時(shí)間:T=設(shè)定值PT×分辨率
類型TON:接通延時(shí)定時(shí)器
TOF:斷開(kāi)延時(shí)定時(shí)器
TONR:有記憶接通延時(shí)定時(shí)器(一)定時(shí)器指令TS=5×0.1=0.5s1、接通延時(shí)定時(shí)器其工作波形圖如下:計(jì)時(shí)值設(shè)定值Q0.1(T37)I1.0TST37TONPTINI1.05()T37Q0.1首次掃描,定時(shí)器位OFF,當(dāng)前值為0。使能輸入接通時(shí),定時(shí)器位為OFF,當(dāng)前值從0開(kāi)始計(jì)數(shù)時(shí)間,當(dāng)前值達(dá)到預(yù)設(shè)值時(shí),定時(shí)器位為ON,當(dāng)前值連續(xù)計(jì)數(shù)到32767。使能輸入斷開(kāi),定時(shí)器自動(dòng)復(fù)位,即定時(shí)器位OFF,當(dāng)前值為0。
其工作波形圖如下:輸入端Q0.1當(dāng)前值設(shè)定值TS=120*10msM0.1TONRPTINI0.1120T4()T4Q0.1()T4R1M0.1最大值327671202、有記憶接通延時(shí)定時(shí)器首次掃描,定時(shí)器位OFF,當(dāng)前值保持,使能輸入接通時(shí),定時(shí)器位為OFF,當(dāng)前值從保持值開(kāi)始計(jì)數(shù)時(shí)間,當(dāng)前值達(dá)到預(yù)設(shè)值時(shí),定時(shí)器位為ON,當(dāng)前值連續(xù)計(jì)數(shù)到32767。定時(shí)器用復(fù)位指令清除當(dāng)前值。
TS3、斷開(kāi)延時(shí)定時(shí)器(TOF)TOFPTINI1.28T97()T97Q0.1TS=1200*0.1=120S上電周期或首次掃描,定時(shí)器位OFF,當(dāng)前值為0。使能輸入接通時(shí),定時(shí)器位為ON,當(dāng)前值為0。當(dāng)使能輸入由接通到斷開(kāi)時(shí),定時(shí)器開(kāi)始計(jì)數(shù),當(dāng)前值達(dá)到預(yù)設(shè)值時(shí),定時(shí)器位OFF,當(dāng)前值等于預(yù)設(shè)值,停止計(jì)數(shù)。TOF復(fù)位后,如果使能輸入再有從ON到OFF的負(fù)跳變,則可實(shí)現(xiàn)再次啟動(dòng)。其工作波形圖如下:I1.2Q0.1計(jì)時(shí)值設(shè)定值TS串電阻降壓起動(dòng)硬件接線圖及程序(二)計(jì)數(shù)器指令定時(shí)器是對(duì)PLC內(nèi)部的時(shí)鐘脈沖進(jìn)行計(jì)數(shù),而計(jì)數(shù)器是對(duì)外部的或由程序產(chǎn)生的計(jì)數(shù)脈沖進(jìn)行計(jì)數(shù)。計(jì)數(shù)器用來(lái)累計(jì)輸入脈沖的次數(shù),經(jīng)常用來(lái)對(duì)產(chǎn)品進(jìn)行計(jì)數(shù)。計(jì)數(shù)器與定時(shí)器的結(jié)構(gòu)和使用基本相似,編程時(shí)輸入它的預(yù)設(shè)值PV(計(jì)數(shù)的次數(shù)),計(jì)數(shù)器累計(jì)它的脈沖輸入端電位上升沿(正跳變)個(gè)數(shù),當(dāng)計(jì)數(shù)器達(dá)到預(yù)設(shè)值PV時(shí),發(fā)出中斷請(qǐng)求信號(hào),以便PLC作出相應(yīng)的處理。計(jì)數(shù)器指令有3種:增計(jì)數(shù)CTU、增減計(jì)數(shù)CTUD和減計(jì)數(shù)CTD。當(dāng)前值等于或大于設(shè)定值時(shí),計(jì)數(shù)器位被置為“1”。1、增計(jì)數(shù)器CTU指令首次掃描,定時(shí)器位OFF,當(dāng)前值為0。脈沖輸入的每個(gè)上升沿,計(jì)數(shù)器計(jì)數(shù)1次,當(dāng)前值增加1個(gè)單位,當(dāng)前值達(dá)到預(yù)設(shè)值時(shí),計(jì)數(shù)器位ON,當(dāng)前值繼續(xù)計(jì)數(shù)到32767停止計(jì)數(shù)。復(fù)位輸入有效或執(zhí)行復(fù)位指令,計(jì)數(shù)器自動(dòng)復(fù)位,即計(jì)數(shù)器位OFF,當(dāng)前值為0。2、增/減計(jì)數(shù)器(CTUD)指令增計(jì)數(shù)減計(jì)數(shù)復(fù)位C(0~255)I2.0I1.1I1.2當(dāng)前值輸出端當(dāng)前值
首次掃描,定時(shí)器位OFF,當(dāng)前值為0。當(dāng)前值等于或大于預(yù)設(shè)值時(shí),計(jì)數(shù)器位ON。
增減計(jì)數(shù)器計(jì)數(shù)到32767(最大值)后,下一個(gè)CU輸入的上升沿將使當(dāng)前值跳變?yōu)樽钚≈担èC32768);反之,當(dāng)前值達(dá)到最小值(–32768)時(shí),下一個(gè)CD輸入的上升沿將使當(dāng)前值跳變?yōu)樽畲笾担?2767)。復(fù)位輸入有效或執(zhí)行復(fù)位指令,計(jì)數(shù)器自動(dòng)復(fù)位,即計(jì)數(shù)器位OFF,當(dāng)前值為0。3、減計(jì)數(shù)器CUPVC(0~255)LD復(fù)位,裝設(shè)定值計(jì)脈沖數(shù)設(shè)定值CTD首次掃描,定時(shí)器位OFF,當(dāng)前值為預(yù)設(shè)值PV。計(jì)數(shù)器檢測(cè)到CD輸入的每個(gè)上升沿時(shí),計(jì)數(shù)器當(dāng)前值減小1個(gè)單位,當(dāng)前值減到0時(shí),計(jì)數(shù)器位ON。無(wú)復(fù)位端,在裝載輸入端接通時(shí),使計(jì)數(shù)器復(fù)位并把設(shè)定值裝入當(dāng)前寄存器中。計(jì)數(shù)器應(yīng)用舉例:產(chǎn)品數(shù)量檢測(cè)產(chǎn)品通過(guò)檢測(cè)器PH機(jī)械手KM1KM2傳送帶電機(jī)PLC的I/O分配:I0.0—傳送帶停機(jī)按鈕I0.1—傳送帶起動(dòng)按鈕I0.2—產(chǎn)品通過(guò)檢測(cè)器PHQ0.0—傳送帶電機(jī)KM1Q0.1—機(jī)械手KM2T37—定時(shí)器,定時(shí)2秒C20—計(jì)數(shù)器,初始值24(每24個(gè)產(chǎn)品機(jī)械手動(dòng)作1次)機(jī)械手動(dòng)作后,延時(shí)2秒,將機(jī)械手電磁鐵切斷,同時(shí)將C20復(fù)位。C20復(fù)位后,Q0.1和T37也復(fù)位 電機(jī)起動(dòng)后,Q0.0產(chǎn)生寬度為一個(gè)掃描周期的正脈沖,使C20和T37復(fù)位起、停傳送帶電機(jī)計(jì)數(shù)器應(yīng)用舉例:產(chǎn)品數(shù)量檢測(cè)Q0.0Q0.0I0.224C20T3720C20Q0.1每檢測(cè)到一個(gè)產(chǎn)品,I0.2產(chǎn)生一個(gè)正脈沖,使C20計(jì)一個(gè)數(shù)C20每計(jì)24個(gè)數(shù),機(jī)械手動(dòng)作一次機(jī)械手動(dòng)作后,延時(shí)2秒,將機(jī)械手電磁鐵切斷,同時(shí)將C20復(fù)位。C20
復(fù)位后,Q0.1和T37也復(fù)位 ()I0.0I0.1C20CUPVCTUR()INPTTONT37T37PQ0.0七、順序控制繼電器指令(一)SCR指令的功能1、SCR程序段的S位置位時(shí),允許該程序段工作;2、SCRT指令一方面使當(dāng)前激活的SCR程序段S位復(fù)位,以使該程序段停止工作,另一方面使下一個(gè)將要執(zhí)行的SCR程序段S位置位;3、SCRE指示一個(gè)SCR程序段結(jié)束。(二)使用SCR指令的限制只能使用順序控制繼電器位作為段標(biāo)志位,同一地址的S位不可用于不同的程序分區(qū);在一個(gè)SCR段中不能使用JMP、LBL、FOR、NEXT、END指令。所謂順序控制,是生產(chǎn)過(guò)程按工藝要求事先安排的順序自動(dòng)地進(jìn)行控制。(三)SCR指令的編程舉例根據(jù)舞臺(tái)燈光效果的要求,控制紅、綠、黃三色燈。要求:紅燈先亮,2s后綠燈亮,再過(guò)3s后黃燈亮。待紅、綠、黃燈全亮3min后,全部熄滅。程序如圖5-29所示。說(shuō)明:每一個(gè)SCR程序段中均包含三個(gè)要素:1)輸出對(duì)象:在這一步序中應(yīng)完成的動(dòng)作;2)轉(zhuǎn)移條件:滿足轉(zhuǎn)移條件后,實(shí)現(xiàn)SCR段的轉(zhuǎn)移;3)轉(zhuǎn)移目標(biāo):轉(zhuǎn)移到下一個(gè)步序。LDI0.1ANQ0.0ANQ0.1ANQ0.2//在初始狀態(tài)下起動(dòng),置SS0.1,1//S0.1=1LSCRS0.1//S0.1=1,激活第一SCR程序段,
//進(jìn)入第一步序LDSM0.0SQ0.0,1//紅燈亮,并保持TONT37,+20//啟動(dòng)2s定時(shí)器LDT37//2s后程序轉(zhuǎn)移到第二SCR段,SCRTS0.2//(S0.2=1,S0.1=0)SCRE//第一SCR段結(jié)束LSCRS0.2//S0.2=1,激活第二SCR程序段,
//進(jìn)入第二步序LDSM0.0SQ1.1//綠燈亮,并保持TONT38,+30//啟動(dòng)3s定時(shí)器
I0.1:?jiǎn)?dòng);Q0.0:紅燈;Q0.1:綠燈;Q0.2:黃燈。LDT38//3s后程序轉(zhuǎn)移到第三SCR段,SCRTS0.3//(S0.3=1,S0.2=0)SCRE//第二SCR段結(jié)束LSCRS0.3//S0.3=1,激活第三SCR程序段,
//進(jìn)入第三步序LDSM0.0SQ0.2,1//黃燈亮,并保持TONT39,+1800//啟動(dòng)3min定時(shí)器LDT39//3min后程序轉(zhuǎn)移到第四SCR段,SCRTS0.4//(S0.4=1,S0.3=0)SCRE//第三SCR段結(jié)束LSCRS0.4//S0.4=1,激活第四SCR程序段,
//進(jìn)入第四步序LDSM0.0RS0.1,4RQ0.0,3//紅、綠、黃燈全滅SCRE//第四SCR段結(jié)束圖5-29SCR指令編程八、移位寄存器指令移位寄存器指令可用來(lái)進(jìn)行順序控制、物流及數(shù)據(jù)流控制。S_BIT指定移位寄存器的最低位,N指定寄存器的長(zhǎng)度;正數(shù)表示正向移動(dòng),N為負(fù)數(shù)表示反向移動(dòng);N為字節(jié)型數(shù)據(jù)類型,最大長(zhǎng)度為64位。EN端每個(gè)上升沿采樣。SM1.1→→九、比較觸點(diǎn)指令☆比較指令為上、下限控制提高了方便,實(shí)際上是一個(gè)比較觸點(diǎn)。該指令是將兩個(gè)操作數(shù)按指定的關(guān)系比較,比較關(guān)系成立則比較觸點(diǎn)閉合?!畋容^運(yùn)算符有:=、>=、<=、>、<和<>(<>表示不等于)?!畋容^指令的類型有:字節(jié)比較、整數(shù)比較、雙字整數(shù)比較和實(shí)數(shù)比較。應(yīng)用舉例
一自動(dòng)倉(cāng)庫(kù)存放某種貨物,最多6000箱,需對(duì)所存的貨物進(jìn)出計(jì)數(shù)。貨物多于1000箱,燈L1亮;貨物多于5000箱,燈L2亮。其中,L1和L2分別受Q0.0和Q0.1控制,數(shù)值1000和5000分別存儲(chǔ)在VW20和VW30字存儲(chǔ)單元中。LDI0.0//增計(jì)數(shù)出入端LDI0.1//減計(jì)數(shù)出入端LDI0.2//復(fù)位出入端CTUDC30,+10000//增減計(jì)數(shù),設(shè)定脈沖數(shù)為10000
LDW>=C30,VW20//比較計(jì)數(shù)器,當(dāng)前值是否大于等
//于VW20中的值=
Q0.0//輸出觸點(diǎn)
LDW>=C30,VW30//比較計(jì)數(shù)器,當(dāng)前值是否大于等
//于VW30中的值=
Q0.1//輸出觸點(diǎn)程序舉例
一、傳送指令第三節(jié)S7-200PLC的功能指令MOV_DWENINOUTENOMOV_WENINOUTENOMOV_BENINOUTENOMOV_RENINOUTENO數(shù)據(jù)塊傳送指令把從輸入(IN)指定地址的N個(gè)連續(xù)字節(jié)、字、雙字的內(nèi)容傳送到從輸出(OUT)指定地址開(kāi)始的N個(gè)連續(xù)字節(jié)、字、雙字的存儲(chǔ)單元中去。BLKMOV-DWENINOUTENONBLKMOV-WENINOUTENONBLKMOV-BENINOUTENON(二)數(shù)據(jù)塊傳送指令(一)數(shù)據(jù)傳送指令如果功能框允許輸入端(EN)存在“能流”,且功能框準(zhǔn)確無(wú)誤地執(zhí)行了其功能,那么允許輸出端(ENO)將把“能流”傳到下一個(gè)功能框,此時(shí),ENO=1。如果執(zhí)行錯(cuò)誤,那么“能流”就在出現(xiàn)錯(cuò)誤的功能框終止,即ENO=0。(三)字節(jié)交換指令交換字節(jié)指令,把輸入端(IN)指定字的高字節(jié)內(nèi)容與低字節(jié)內(nèi)容相交換,交換結(jié)果仍存在輸入端(IN)指定的地址中。無(wú)符號(hào)整數(shù)型(WORD)。(四)傳送字節(jié)立即讀、寫(xiě)指令MOV-BIRENINOUTENOMOV-BIWENINOUTENO
傳送字節(jié)立即讀(BIR)指令,讀取輸入端(IN)指定字節(jié)地址的物理輸入點(diǎn)(IB)的值,并寫(xiě)入輸出端(OUT)指定字節(jié)地址的存儲(chǔ)單元中。
傳送字節(jié)立即寫(xiě)(BIW)指令,將從輸入端(IN)指定字節(jié)地址的內(nèi)容寫(xiě)入輸出端(OUT)指定字節(jié)地址的物理輸出點(diǎn)(QB)。二、數(shù)學(xué)運(yùn)算指令
(一)四則運(yùn)算指令A(yù)DD_IENIN1OUTENOIN2ADD_DIENIN1OUTENOIN2ADD_RENIN1OUTENOIN2加法指令可分為整數(shù)、雙整數(shù)、實(shí)數(shù)加法指令;執(zhí)行操作:IN1+IN2=OUT。SUB-IENIN1OUTENOIN2SUB-DIENIN1OUTENOIN2SUB-RENIN1OUTENOIN22、減法指令1、加法指令減法指令可分為整數(shù)、雙整數(shù)、實(shí)數(shù)減法指令;執(zhí)行操作:IN1-IN2=OUT加法/減法指令影響的特殊存儲(chǔ)器位:SM1.0(零);SM1.1(溢出);SM1.2(負(fù))。3.乘法指令MUL-IENIN1OUTENOIN2MUL-DIENIN1OUTENOIN2MUL-RENIN1OUTENOIN2MULENIN1OUTENOIN24.除法指令DIV-IENIN1OUTENOIN2DIV-DIENIN1OUTENOIN2DIV-RENIN1OUTENOIN2DIVENIN1OUTENOIN2整數(shù)完全除法指令(帶余數(shù)的整數(shù)除法),把輸入端(IN)指定的兩個(gè)16位整數(shù)相除,產(chǎn)生一個(gè)32位結(jié)果,并送到輸出端(OUT)指定的存儲(chǔ)單元中去。其中高16位是余數(shù),低16位是商。執(zhí)行操作:IN1/IN2=OUT乘法指令可分為整數(shù)、雙整數(shù)、實(shí)數(shù)乘法指令和整數(shù)完全乘法指令。整數(shù)完全乘法指令:把輸入端(IN1、IN2)指定的兩個(gè)16bit整數(shù)相乘產(chǎn)生一個(gè)32bit乘積,并送到輸出端(OUT)指定的存儲(chǔ)單元。執(zhí)行操作:IN1*IN2=OUT。影響特殊存儲(chǔ)器位:SM1.0(零)、SM1.1(溢出)、SM1.2(負(fù))、SM1.3(除數(shù)為0)。例:四則運(yùn)算5、加1和減1指令說(shuō)明:加1/減1指令用于自增、自減操作,以實(shí)現(xiàn)累加計(jì)數(shù)和循環(huán)控制等程序的編制。(字節(jié)、字、雙字操作)執(zhí)行操作:IN±1→OUT.影響特殊存儲(chǔ)器位:SM1.0(零)、SM1.1(溢出)。(二)數(shù)學(xué)功能指令(1)數(shù)學(xué)函數(shù)指令包括平方根、自然對(duì)數(shù)、指數(shù)、三角函數(shù)等幾個(gè)常用的函數(shù)指令。(2)運(yùn)算輸入輸出數(shù)據(jù)都為實(shí)數(shù)。結(jié)果如果大于32位二進(jìn)制表示的范圍,則產(chǎn)生溢出。(3)影響的特殊存儲(chǔ)器位:SM1.0(零);SM1.1(溢出);SM1.2(負(fù))。1、平方根指令:SQRT執(zhí)行操作:把一個(gè)雙字長(zhǎng)(32位)的實(shí)數(shù)IN開(kāi)方,得到32位的實(shí)數(shù)結(jié)果OUT。把一個(gè)雙字長(zhǎng)(32位)的實(shí)數(shù)IN取自然對(duì)數(shù),得到32位的實(shí)數(shù)結(jié)果OUT;執(zhí)行操作:LN(IN)=OUT。2、自然對(duì)數(shù)指令:LN3、自然指數(shù)指令:EXP把一個(gè)雙字長(zhǎng)(32位)的實(shí)數(shù)IN取以e為底的指數(shù),得到32位的實(shí)數(shù)結(jié)果OUT。4、正弦、余弦、正切指令即正弦、余弦、正切指令。將把一個(gè)雙字長(zhǎng)(32位)的實(shí)數(shù)弧度值IN分別取正弦、余弦、正切,各得到32位的實(shí)數(shù)結(jié)果OUT。
程序?qū)嵗海ㄇ?5°的正切值)
三、邏輯運(yùn)算指令(1)邏輯運(yùn)算指令的操作數(shù)均為無(wú)符號(hào)操作數(shù)。(2)按操作數(shù)長(zhǎng)度可分為字節(jié)、字和雙字邏輯運(yùn)算,IN1、IN2、OUT操作數(shù)的數(shù)據(jù)類型為:B、W、DW。(3)邏輯運(yùn)算指令影響特殊標(biāo)志位存儲(chǔ)器位:SM1.0(零)。邏輯運(yùn)算指令舉例四、移位和循環(huán)移位指令
移位和循環(huán)移位指令的操作數(shù)均為無(wú)符號(hào)操作數(shù)。(一)右移位指令說(shuō)明:(1)把輸入端(IN)指定的數(shù)據(jù)右移/左移N位,結(jié)果存入OUT單元;(2)移位時(shí),移出位進(jìn)入SM1.1,另一端自動(dòng)補(bǔ)0。SM1.1始終存放最后一次被移出的位;(3)移位次數(shù)最大分別為8、16、32。(4)如果移位結(jié)果是0,零存儲(chǔ)器位(SM1.0)置位。(二)左移位指令(三)循環(huán)右移指令(四)循環(huán)左移指令說(shuō)明:(1)把輸入端(IN)指定的數(shù)據(jù)循環(huán)右移/左移N位,結(jié)果存入OUT單元;(2)移位時(shí),SM1.1始終存放最后一次被移出的位。(3)移位次數(shù)與移位數(shù)據(jù)的長(zhǎng)度有關(guān),如果移位次數(shù)設(shè)定值大于移位數(shù)據(jù)的位數(shù),則執(zhí)行循環(huán)移位之前,系統(tǒng)先對(duì)設(shè)定值取以數(shù)據(jù)長(zhǎng)度為底的模,用小于數(shù)據(jù)長(zhǎng)度的結(jié)果作為實(shí)際循環(huán)移位的次數(shù)。如字左移時(shí),若移位次數(shù)設(shè)定為36,則先對(duì)36取以16為底的模,得到小于16的結(jié)果4,故指令實(shí)際循環(huán)移位4次。例:移位和循環(huán)指令編程例題:用I0.0控制接在Q0.0~Q0.7上的8個(gè)彩燈循環(huán)移位,從左到右以0.5s的速度依次點(diǎn)亮,保持任意時(shí)刻只有一個(gè)指示燈亮,到達(dá)最右端后,再?gòu)淖蟮接乙来吸c(diǎn)亮。要求:使用循環(huán)移位指令。LDSM0.1//首次掃描時(shí)MOVB1,QB0//置8位彩燈初態(tài)
LDI0.0//T37產(chǎn)生周期為ANT370.5s的移位脈沖TONT37,+5
LDT37//每來(lái)一個(gè)脈沖RLBQB0,1彩燈循環(huán)左移1位已知:I0.0接外部開(kāi)關(guān),Q0.0接指示燈,問(wèn)下面的梯形圖實(shí)現(xiàn)什么功能?(一)BCD碼與整數(shù)的轉(zhuǎn)換五、數(shù)據(jù)轉(zhuǎn)換指令BCD_IENINOUTENOI_BCDENINOUTENO(1)BCD碼轉(zhuǎn)為整數(shù)(BCDI)指令,將輸入端(IN)指定的BCD碼轉(zhuǎn)換成整數(shù),并將結(jié)果存放到輸出端(OUT)指定的存儲(chǔ)單元中去。輸入數(shù)據(jù)的范圍是0~9999(BCD碼)。(2)整數(shù)轉(zhuǎn)為BCD碼(IBCD)指令,將輸入端(IN)指定的整數(shù)轉(zhuǎn)換成BCD碼,并將結(jié)果存放到輸出端(OUT)指定的存儲(chǔ)單元中去。輸入數(shù)據(jù)的范圍是0~9999。(3)指令影響的特殊存儲(chǔ)器位:SM1.6(非法BCD)已知(AC0)=1234,程序運(yùn)行后:(AC0)=04D2。
程序?qū)嵗海ǘ╇p字整數(shù)與實(shí)數(shù)的轉(zhuǎn)換雙字整數(shù)轉(zhuǎn)為實(shí)數(shù)(DTR)指令:將輸入端(IN)指定的32位有符號(hào)整數(shù)轉(zhuǎn)換成32位實(shí)數(shù)。ROUND取整指令,轉(zhuǎn)換時(shí)實(shí)數(shù)的小數(shù)部分四舍五入。TRUNC取整指令,實(shí)數(shù)舍去小數(shù)部分后,轉(zhuǎn)換成32位有符號(hào)整數(shù)。取整指令被轉(zhuǎn)換的輸入值應(yīng)是有效的實(shí)數(shù),如果實(shí)數(shù)值太大,使輸出無(wú)法表示,那么溢出位(SM1.1)被置位。(三)雙字整數(shù)與整數(shù)的轉(zhuǎn)換使能輸入有效時(shí),將雙整數(shù)型輸入數(shù)據(jù)IN轉(zhuǎn)換成整數(shù)類型,并將結(jié)果送到OUT輸出。被轉(zhuǎn)換的輸入值應(yīng)是有效的雙字整數(shù)。輸入數(shù)據(jù)超出整數(shù)范圍則產(chǎn)生溢出。
(四)字節(jié)與整數(shù)的轉(zhuǎn)換使能輸入有效時(shí),將字節(jié)型輸入數(shù)據(jù)IN轉(zhuǎn)換成整數(shù)類型,并將結(jié)果送到OUT輸出。字節(jié)型是無(wú)符號(hào)的,所以沒(méi)有符號(hào)擴(kuò)展。
使能輸入有效時(shí),將整數(shù)型輸入數(shù)據(jù)IN轉(zhuǎn)換成字節(jié)類型,并將結(jié)果送到OUT輸出。輸入數(shù)據(jù)超出字節(jié)范圍(0~255)則產(chǎn)生溢出。使能輸入有效時(shí),將整數(shù)型輸入數(shù)據(jù)IN轉(zhuǎn)換成雙整數(shù)類型(符號(hào)進(jìn)行擴(kuò)展),并將結(jié)果送到OUT輸出。例:將101英寸轉(zhuǎn)換為厘米(五)譯碼、編碼指令編碼指令:使能輸入有效時(shí),將字型輸入數(shù)據(jù)IN中值為1的最低有效位的位號(hào)編碼成4位二進(jìn)制數(shù),輸出到OUT所指定的字節(jié)單元的低4位。即用半個(gè)字節(jié)來(lái)對(duì)一個(gè)字型數(shù)據(jù)16位中的1位有效位進(jìn)行編碼。
譯碼指令:使能輸入有效時(shí),根據(jù)字節(jié)型輸入數(shù)據(jù)IN的低4位所表示的位號(hào)將OUT所指定的字單元的對(duì)應(yīng)位置1,其他位置0。即對(duì)半個(gè)字節(jié)的編碼進(jìn)行譯碼來(lái)選擇一個(gè)字型數(shù)據(jù)16位中的1位。
(六)段碼(SEG)指令使能輸入有效時(shí),將字節(jié)型輸入數(shù)據(jù)IN的低4位有效數(shù)字(16#0~F)轉(zhuǎn)換成七段顯示碼,并將其輸出到OUT所指定的字節(jié)單元。圖5-59七段碼顯示編碼功能:將模擬量輸入端采樣值由整數(shù)轉(zhuǎn)換為雙整數(shù),然后由雙整數(shù)轉(zhuǎn)換為實(shí)數(shù),再除以一個(gè)比例因子得到PLC可以處理的范圍內(nèi)的值。模擬量控制程序中的數(shù)據(jù)類型轉(zhuǎn)換表中數(shù)據(jù)的存儲(chǔ)格式單元地址單元內(nèi)容說(shuō)明VW2000005表格的首地址,TL=5為表格的最大填表數(shù)VW2020004數(shù)據(jù)EC=4(EC≤100)為該表中的實(shí)際填表數(shù)VW2042345數(shù)據(jù)0VW2065678數(shù)據(jù)1VW2089876數(shù)據(jù)2VW2106543數(shù)據(jù)3VW212****無(wú)效數(shù)據(jù)六、表功能指令(一)填表、查表指令1、填表指令(ATT):向表(TBL)中填入DATA端的數(shù)據(jù)。TBL指明表格的首地址,表中第一個(gè)數(shù)是最大填表數(shù)(TL),第二個(gè)數(shù)是實(shí)際填表數(shù)(EC),指出已填入表單數(shù)據(jù)個(gè)數(shù),新的數(shù)據(jù)填加在表的末尾。每向表中存一個(gè)數(shù)據(jù),實(shí)際填表數(shù)EC會(huì)自動(dòng)加1。程序?qū)嵗海?)表查找指令執(zhí)行之前,當(dāng)使能輸入有效時(shí),從INDX開(kāi)始搜索表TBL,尋找符合由PTN和CMD所決定的條件的數(shù)據(jù),如果沒(méi)有發(fā)現(xiàn)符合條件的數(shù)據(jù),則INDX的值等于EC。如果找到一個(gè)符合條件的數(shù)據(jù),則將該數(shù)據(jù)的表中地址裝入INDX中。(6)表查找指令執(zhí)行完成,找到一個(gè)符合條件的數(shù)據(jù),如果想繼續(xù)向下查找,必須先對(duì)INDX加1,以重新激活表查找指令。2、查表指令(FND):從INDX開(kāi)始搜索表(TBL),尋找滿足條件的數(shù)據(jù)。(1)TBL——被訪問(wèn)表格的首地址;(2)PTN——用來(lái)描述查表?xiàng)l件的進(jìn)行比較的數(shù)據(jù);(3)CMD——查找條件,它是一個(gè)1~4的數(shù)值,分別代表=、<>、<和>運(yùn)算符;(4)INDX——用來(lái)指定表中符合查找條件的數(shù)據(jù)地址,查表前,INDX的內(nèi)容清0
。程序?qū)嵗海ǘ┫冗M(jìn)先出、后進(jìn)先出指令
當(dāng)使能輸入有效時(shí),從TBL指明的表中移出第一個(gè)字型數(shù)據(jù)并將其輸出到DATA所指定的字單元。
FIFO表取數(shù)時(shí),移出的數(shù)據(jù)總是最先進(jìn)入表中的數(shù)據(jù)。每次從表中移出一個(gè)數(shù)據(jù),剩余數(shù)據(jù)依次上移一個(gè)字單元位置,同時(shí)實(shí)際填表數(shù)EC會(huì)自動(dòng)減1。
當(dāng)使能輸入有效時(shí),從TBL指明的表中移出最后一個(gè)字型數(shù)據(jù)并將其輸出到DATA所指定的字單元。
LIFO表取數(shù)時(shí),移出的數(shù)據(jù)是最后進(jìn)入表中的數(shù)據(jù)。每次從表中取出一個(gè)數(shù)據(jù),剩余數(shù)據(jù)位置保持不變,實(shí)際填表數(shù)EC自動(dòng)減1。FILL,存儲(chǔ)器填充指令。當(dāng)使能輸入有效時(shí),將字型輸入值IN填充至從OUT開(kāi)始的N個(gè)字的存儲(chǔ)單元中。N為字節(jié)型,可取1~255的正數(shù)。(三)存儲(chǔ)器填充指令七、程序控制指令(一)有/無(wú)條件結(jié)束(END/MEND)指令有條件結(jié)束(END)指令,當(dāng)條件滿足時(shí)結(jié)束主程序,并返回主程序的第一條指令執(zhí)行。無(wú)條件結(jié)束(MEND)指令,直接連接母線。程序執(zhí)行到此指令時(shí),無(wú)條件結(jié)束主程序,并返回第一條指令。
STEP7-Micro/WIN32編程軟件自動(dòng)在主程序結(jié)束時(shí)加上一個(gè)無(wú)條件結(jié)束(MEND)指令。(二)暫停(STOP)指令停止指令STOP可使PLC從運(yùn)行模式進(jìn)入停止模式,立即停止程序的執(zhí)行。如果在中斷程序中執(zhí)行停止指令,中斷程序立即終止,并忽略全部等待執(zhí)行的中斷,繼續(xù)執(zhí)行主程序的剩余部分,并在主程序的結(jié)束處,完成從運(yùn)行方式至停止方式的轉(zhuǎn)換。(三)監(jiān)視定時(shí)器復(fù)位(WDR)指令
(1)為了保證系統(tǒng)可靠運(yùn)行,PLC內(nèi)部設(shè)置了系統(tǒng)監(jiān)視定時(shí)器(WDT),用于監(jiān)視掃描周期是否超時(shí)。每當(dāng)掃描到WDT定時(shí)器時(shí),WDT定時(shí)器將復(fù)位。(2)WDT定時(shí)器有一設(shè)定值(100~300ms),系統(tǒng)正常工作時(shí),所需掃描時(shí)間小于WDT的設(shè)定值,WDT定時(shí)器及時(shí)復(fù)位。系統(tǒng)故障情況下,掃描時(shí)間大于WDT設(shè)定值,該定時(shí)器不能及時(shí)復(fù)位,則報(bào)警并停止CPU運(yùn)行,同時(shí)復(fù)位輸入、輸出。這種故障稱為WDT故障,以防止因系統(tǒng)故障或程序進(jìn)入死循環(huán)而引起的掃描周期過(guò)長(zhǎng)。(3)系統(tǒng)正常工作時(shí),有時(shí)會(huì)因?yàn)橛脩舫绦蜻^(guò)長(zhǎng)或使用中斷指令、循環(huán)指令使掃描時(shí)間過(guò)長(zhǎng)而超過(guò)WDT定時(shí)器的設(shè)定值,為防止這種情況下WDT動(dòng)作,可使用監(jiān)視定時(shí)器復(fù)位指令(WDR),使WDT定時(shí)器復(fù)位。
(四)跳轉(zhuǎn)與標(biāo)號(hào)指令跳轉(zhuǎn)指令包括:跳轉(zhuǎn)指令JMP和標(biāo)號(hào)指令LBL。當(dāng)條件滿足時(shí),跳轉(zhuǎn)指令JMP使程序轉(zhuǎn)到對(duì)應(yīng)的標(biāo)號(hào)LBL處,標(biāo)號(hào)指令用來(lái)表示跳轉(zhuǎn)的目的地址。
JMP與LBL指令中的操作數(shù)n為常數(shù)0~255。JMP和對(duì)應(yīng)的LBL指令必須在同一程序塊中。(五)循環(huán)指令(FOR,NEXT)
FOR指令表示循環(huán)的開(kāi)始,NEXT指令表示循環(huán)的結(jié)束。當(dāng)驅(qū)動(dòng)FOR指令的邏輯條件滿足時(shí),反復(fù)執(zhí)行FOR和NEXT之間的程序。在FOR指令中,需要設(shè)置指針或當(dāng)前循環(huán)次數(shù)計(jì)數(shù)器(INDX),初始值(INIT)和終值(FINAL)。
例題:有3臺(tái)電動(dòng)機(jī)M1~M3,具有兩種起停工作方式:1)手動(dòng)操作方式:分別用每個(gè)電動(dòng)機(jī)各自的起停按鈕控制M1~M3的起停狀態(tài)。2)自動(dòng)操作方式:按下起動(dòng)按鈕,M1~M3每隔5s依次起動(dòng);按下停止按鈕,M1~M3同時(shí)停止。
JMP、LBL指令在工業(yè)現(xiàn)場(chǎng)控制中,常用于工作方式的選擇
2重循環(huán)程序
1、各參數(shù)復(fù)位,置初值INIT和終值FINAL,并將初值拷貝到INDX中;如果計(jì)數(shù)器大于終值,循環(huán)結(jié)束。2、問(wèn)SBR_0子程序執(zhí)行多少次?(六)子程序子程序在結(jié)構(gòu)化程序設(shè)計(jì)中是一種方便有效的工具。S7-200PLC的指令系統(tǒng)具有簡(jiǎn)單、方便、靈活的子程序調(diào)用功能。與子程序有關(guān)的操作有:建立子程序、子程序的調(diào)用和返回。1、子程序調(diào)用指令CALL
在使能輸入有效時(shí),主程序把程序控制權(quán)交給子程序。2、子程序條件返回指令CRET
在使能輸入有效時(shí),結(jié)束子程序的執(zhí)行,返回主程序中。
軟件為每個(gè)子程序自動(dòng)加入無(wú)條件返回(RET)指令。八、中斷指令所謂中斷,是當(dāng)控制系統(tǒng)執(zhí)行正常程序時(shí),系統(tǒng)中出現(xiàn)了某些急需處理的異常情況或特殊請(qǐng)求,這時(shí)系統(tǒng)暫時(shí)中斷當(dāng)前程序,轉(zhuǎn)去對(duì)隨機(jī)發(fā)生的緊迫事件進(jìn)行處理(執(zhí)行中斷服務(wù)程序),當(dāng)該事件處理完畢后,系統(tǒng)自動(dòng)回到原來(lái)被中斷的程序繼續(xù)執(zhí)行。(一)全局中斷允許/禁止指令全局中斷允許指令ENI,允許所有被連接的中斷事件。全局中斷禁止指令DISI,禁止處理所有的中斷事件。CPU進(jìn)入RUN運(yùn)行模式時(shí)自動(dòng)禁止所有中斷。在RUN運(yùn)行模式中執(zhí)行ENI指令后,允許所有中斷。中斷連接指令A(yù)TCH,用來(lái)建立某個(gè)中斷事件(EVNT)和某個(gè)中斷程序(INT)之間的聯(lián)系。并允許這個(gè)中斷事件。(二)中斷連接/分離指令
中斷分離指令DTCH,用來(lái)解除某個(gè)中斷事件(EVNT)和某個(gè)中斷程序(INT)之間的聯(lián)系。并禁止該中斷事件。在調(diào)用一個(gè)中斷程序前,必須用中斷連接指令,建立某中斷事件與中斷程序的連接。(三)中斷返回指令條件返回指令CRETI,RETI根據(jù)前面邏輯條件決定是否返回。無(wú)條件返回指令RETI,是中斷服務(wù)程序必備的結(jié)束指令,編程軟件自動(dòng)在中斷程序結(jié)尾加上RETI指令。INTERRUPT4表5-10按優(yōu)先級(jí)排列的中斷事件INT——中斷程序名稱EVNT——中斷事件號(hào)(四)中斷的分類1、通信口中斷2、I/O中斷I/O中斷包含了上升沿或下降沿中斷、高速計(jì)數(shù)器中斷和脈沖串輸出中斷。3、時(shí)基中斷時(shí)基中斷包括定時(shí)中斷和定時(shí)器T32/T96中斷。定時(shí)中斷以1ms為周期增量,周期時(shí)間可為1~255ms。定時(shí)中斷0、定時(shí)中斷1把周期時(shí)間分別寫(xiě)入特殊存儲(chǔ)器SMB34、SMB35。定時(shí)器T32/T96中斷(TON和TOF),在給定時(shí)間間隔到達(dá)時(shí)產(chǎn)生中斷。定時(shí)中斷采集模擬量程序例//首次掃描時(shí)SM0.1位打開(kāi),用于調(diào)用初始化子例行程序//當(dāng)系統(tǒng)處于RUN模式時(shí),SM0.0始終打開(kāi),100毫秒放入特/殊內(nèi)存字節(jié)SMB34//調(diào)用中斷程序//全局性啟用中斷//模擬量輸入映像寄存器AIW2的值裝入VW100例:噴泉的模擬控制參考程序,噴泉模擬控制的移位時(shí)間為0.5s,大于定時(shí)中斷0的最大定時(shí)時(shí)間設(shè)定值255ms
。主程序INT_0九、PID回路指令(一)PID算法離散化保留積分項(xiàng)前值——PID回路輸出的初值為使系統(tǒng)達(dá)到穩(wěn)態(tài),應(yīng)讓偏差e趨于零。比例環(huán)節(jié):控制系統(tǒng)的穩(wěn)態(tài)精度;
積分環(huán)節(jié):作用是消除穩(wěn)態(tài)誤差,提高控制精度;微分環(huán)節(jié):減少超調(diào)量,改善動(dòng)態(tài)性能。-在第n-1采用時(shí)刻的積分項(xiàng)1、比例項(xiàng):MPn是增益KC和偏差e的乘積。2、積分項(xiàng):MIn與偏差的和成正比。3、微分項(xiàng):MDn與偏差的變化成正比。(二)PID回路指令
TBL是回路表起始地址,只能使用字節(jié)VB區(qū)域。LOOP是回路號(hào),為字節(jié)常量0~7;程序中可使用8條PID指令。表5-11回路表格式(三)控制方式執(zhí)行PID指令時(shí)為“自動(dòng)”運(yùn)行方式;當(dāng)輸入端檢測(cè)到一個(gè)正跳變(從0到1)信號(hào),PID回路就從手動(dòng)方式無(wú)擾動(dòng)地切換到自動(dòng)方式,并進(jìn)行組態(tài):(1)置給定值SPn=過(guò)程變量PVn(2)置過(guò)程變量前值PVn-1=過(guò)程變量當(dāng)前值PVn(3)置積分項(xiàng)前值MX=輸出值Mn(四)回路輸入輸出變量的數(shù)值轉(zhuǎn)換1、回路輸入變量的轉(zhuǎn)換和標(biāo)準(zhǔn)化(1)回路輸入變量的數(shù)據(jù)轉(zhuǎn)換:把A/D模擬量單元輸出的整數(shù)值轉(zhuǎn)換成標(biāo)準(zhǔn)的浮點(diǎn)型實(shí)數(shù)。
ITDAIW0,AC0DTRAC0,AC0(2)實(shí)數(shù)值的標(biāo)準(zhǔn)化:把實(shí)數(shù)值標(biāo)準(zhǔn)化為0.0~1.0之間的實(shí)數(shù)。雙極性模擬量信號(hào):-5~+5V,-2.5~2.5V等,對(duì)應(yīng)雙極性數(shù)據(jù)程范圍為-32000~32000。單極性模擬量信號(hào):0~5V,4~20mA等,對(duì)應(yīng)單極性數(shù)據(jù)范圍為0~32000。/R64000.0,AC0+R0.5,AC0MOVRAC0,VD1002、回路輸出變量的數(shù)據(jù)轉(zhuǎn)換(1)回路輸出變量的刻度化:把回路輸出的標(biāo)準(zhǔn)化實(shí)數(shù)轉(zhuǎn)換成實(shí)數(shù)。MOVRVD108,AC0-R0.5,AC0*R64000.0,AC0(2)將實(shí)數(shù)轉(zhuǎn)換為整數(shù)(INT):把回路輸出變量的刻度值轉(zhuǎn)換成整數(shù)(INT)。ROUNDAC0,AC0DTIAC0,AC0MOVWAC0,AQW0(六)選擇回路控制類型
在很多控制系統(tǒng)中,有時(shí)只采用一種或兩種控制回路。例如,可能只要求比例控制回路或比例和積分控制回路。通過(guò)設(shè)置常量參數(shù)值選擇所需的控制回路。(1)如果只需要比例、微分回路控制,可以把積分時(shí)間常數(shù)設(shè)為無(wú)窮大。(2)如果只需要比例、積分回路控制,可以把微分時(shí)間常數(shù)設(shè)為零。(3)如果只需要積分或積分微分回路控制,可以把回路增益KC設(shè)為0.0,在計(jì)算機(jī)積分項(xiàng)和微分項(xiàng)時(shí),系統(tǒng)把回路增益KC當(dāng)作1.0。(八)PID指令編程舉例
某水箱需要維持一定的水位,該水箱里的水以變化的流速流出。這就需要有一個(gè)水泵以變化的速度給水箱供水以維持水位(滿水位的75%)不變,這樣才能使水箱不斷水。
本系統(tǒng)選擇比例和積分控制,初步確定的回路增益和時(shí)間常數(shù)為:KC=0.25,TS=0.1s,TI=30min,TD=0。(2)程序結(jié)構(gòu)由主程序,子程序,中斷程序構(gòu)成。(1)I/O分配手動(dòng)/自動(dòng)切換開(kāi)關(guān)I0.0模擬量輸入AIW0模擬量輸出AQW0地址參數(shù)數(shù)值VB100過(guò)程變量當(dāng)前值PVn水位檢測(cè)計(jì)提供的模擬量經(jīng)A/D轉(zhuǎn)換后的標(biāo)準(zhǔn)化數(shù)值VB104給定值SPn0.75VB108輸出值MnPID回路的輸出值(標(biāo)準(zhǔn)化數(shù)值)VB112增益Kc0.25VB116采樣時(shí)間Ts0.1VB120積分時(shí)間TI30.0VB124微分時(shí)間Td0(關(guān)閉微分作用)VB128上一次積分值Mx根據(jù)PID運(yùn)算結(jié)果更新VB132上一次過(guò)程變量PVn-1最近一次PID的變量值MAIN調(diào)用初始化子程序設(shè)定時(shí)中斷0的時(shí)間間隔為100ms允許中斷子程序建立PID回路初始參數(shù)表和設(shè)置中斷INT_0在自動(dòng)方式下執(zhí)行PID指令執(zhí)行PID運(yùn)算,I0.0=1時(shí),執(zhí)行PID運(yùn)算十、高速計(jì)數(shù)器指令高速計(jì)數(shù)器脫離主機(jī)的掃描周期而獨(dú)立計(jì)數(shù),它對(duì)脈寬小于主機(jī)掃描周期的高速脈沖準(zhǔn)確計(jì)數(shù)。(一)高速計(jì)數(shù)器指令定義高速計(jì)數(shù)器(HDEF)指令,為指定的高速計(jì)數(shù)器(HSCx)選定一種工作模式。HSC是高速計(jì)數(shù)器編號(hào)(0~5);MODE是工作模式(0~11)。高速計(jì)數(shù)器(HSC)指令用來(lái)激活高速計(jì)數(shù)器,N為計(jì)數(shù)器號(hào)(0~5)。說(shuō)明:高速計(jì)數(shù)器裝入預(yù)置值
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國(guó)標(biāo)志型雕塑市場(chǎng)調(diào)查研究報(bào)告
- 2025至2031年中國(guó)壓力校驗(yàn)系統(tǒng)行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025至2030年中國(guó)警報(bào)喇叭數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)塵埃測(cè)試器數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)雙黃連片劑數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)化妝品形象展架數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 二零二五年度家居用品授權(quán)經(jīng)銷合同范本3篇
- 二零二五年版項(xiàng)目部勞務(wù)班組安全生產(chǎn)與質(zhì)量保障協(xié)議3篇
- 講述校園生活的詩(shī)歌朗誦5篇
- 二零二五版五金電料產(chǎn)品貿(mào)易代理與傭金分成合同3篇
- 數(shù)學(xué)-山東省2025年1月濟(jì)南市高三期末學(xué)習(xí)質(zhì)量檢測(cè)濟(jì)南期末試題和答案
- 數(shù)字的秘密生活:最有趣的50個(gè)數(shù)學(xué)故事
- 移動(dòng)商務(wù)內(nèi)容運(yùn)營(yíng)(吳洪貴)任務(wù)一 移動(dòng)商務(wù)內(nèi)容運(yùn)營(yíng)關(guān)鍵要素分解
- 基于ADAMS的汽車懸架系統(tǒng)建模與優(yōu)化
- 當(dāng)前中國(guó)個(gè)人極端暴力犯罪個(gè)案研究
- 中國(guó)象棋比賽規(guī)則
- 7天減肥餐食譜給你最能瘦的一周減肥食譜
- GB/T 31525-2015圖形標(biāo)志電動(dòng)汽車充換電設(shè)施標(biāo)志
- 最新北師大版八年級(jí)數(shù)學(xué)下冊(cè)教學(xué)課件全冊(cè)
- 裝飾業(yè)務(wù)員培訓(xùn)教程方案
- 2022年五年級(jí)解方程小數(shù)和分?jǐn)?shù)計(jì)算題
評(píng)論
0/150
提交評(píng)論