西門子S7-200-SMART-PLC原理及應用教程課件第五章_第1頁
西門子S7-200-SMART-PLC原理及應用教程課件第五章_第2頁
西門子S7-200-SMART-PLC原理及應用教程課件第五章_第3頁
西門子S7-200-SMART-PLC原理及應用教程課件第五章_第4頁
西門子S7-200-SMART-PLC原理及應用教程課件第五章_第5頁
已閱讀5頁,還剩40頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

第5章S7-200SMARTPLC編程指功能令詳細內容……點擊輸入本欄的具體文字,簡明扼要的說明分項內容,此為概念圖解,目錄5.1傳送指令5.2比較指令5.3移位指令5.4數據轉換指令5.5運算指令5.6表功能指令5.7時鐘指令5.8程序控制指令5.9子程序與子程序指令5.10中斷與中斷指令5.11高速計數器指令5.12功能指令的應用實例5.1傳送指令傳送指令的功能是在編程元件之間傳送數據。傳送指令可分為單一數據傳送指令、字立即傳送指令和數據塊傳送指令。5.1.1單一數據傳送指令單一數據傳送指令用于傳送一個數據,根據傳送數據的字長不同,可分為字節、字、字和實數傳送指令。單一數據傳送指令的功能是在EN端有輸入(即EN=1)時,將IN端指定單元中的數據送入OUT端指定的單元中。5.1傳送指令指令名稱梯形圖及功能說明操作數舉例字節傳送

EN端RLO為1時,將IN端指定字節單元中的數據送人OUT端指定的字節單元。輸入IN:IB、QB、VB、MB、SMB、SB、LB、AC、*VD、*LD、常數。輸出OUT:IB、

QB、VB、MB、SMB、SB、LB、AC、*VD、*LD、*AC。

當I0.1觸點閉合時,將IB0(I0.0~I0.7)單元中的數據送人QB0(Q0.0~Q0.7)單元中。字傳送

EN端狀態為1時,將IN端指定字單元中的數據送人OUT端指定的字單元。輸入IN:IW、QW、.VW、MW、SMW、SW、T、C、LW、AC、AIW。輸出OUT:IW、

QW、VW、MW、SMW、SW、T、C、LW、AC、AQW。

當I0.2觸點閉合時,將IW0(I0.0~I1.7)單元中的數據送人QW0(Q0.0~Q1.7)單元中。雙字傳送

EN端狀態為1時,將IN端指定雙字單元中的數據送人OUT端指定的雙字單元。輸入IN:ID、QD、VD、.MD、.SMD、SD、LD、HC、&VB、&IB、&QB、&MB、&SB、&T、&C、&SMV、*AIW、&AQW、AC。輸出OUT:AC、*VD、*LD、*AC。

當I0.3觸點閉合時,將ID0(I0.0~I3.7)單元中的數據送人QD0(Q0.0~Q3.7)單元中實數傳送

EN端狀態為1時,將IN端指定雙字單元中的實數送入OUT端指定的雙字單元。輸入IN:ID、QD、VD、MD、SMD、SD、LD、AC、*VD、*LD、*AC、常數輸出OUT:ID、QD、VD、MD、SMD、SD、LD、AC、VD、*LD、*AC。

當I0.4觸點閉合時,將實數“0.l”的數據送人AC0(32位)中表5-1傳送指令5.1傳送指令例5.2電動機-△起動。為了降低電動機的起動電流,采用-△減壓起動控制電路。使接觸器KM2得電,聯結的電路接通,然后使三相電源接觸器KM1得電,接通總電源,等電動機轉速上升接近額定轉速時,將定子繞組的聯結的電路斷開,接通△聯結的電路,即電源接觸器KM1繼續得電,聯結的接觸器KM2失電,△聯結的接觸器KM3得電,電動機進入正常運行的工作狀態。圖5-2主電路及控制電路接線圖5.2比較指令比較指令又稱觸點比較指令,其功能是將兩個數據按指定條件進行比較,條件成立時觸點閉合,否則觸點斷開。根據比較數據類型的不同,可分為字節比較、整數比較、雙字整數比較、實數比較和字符串比較;根據比較運算關系的不同,數值比較可分為=(等于)、>(大于)、>=(大于或等于)、<(小于)、<=(小于或等于)和<>(不等于)共6件。如圖5-6(a)給出了字節比較使用練習,當SMB28大于等于128時,輸出Q0.0接通;圖5-6(b)整數比較使用練習,當MW20不等于258時,V1.2接通;圖5-6(C)雙整數比較使用練習,當MD20大于128時,輸出Q0.7接通;圖5-6(d)實數比較使用練習,當VD200小于3.14時,M0.0接通。5.2比較指令例5.5圖5-7給出了比較指令在程序中的使用方法。預先通過傳送指令將要比較的值存放在指定的存儲區內,如MW10,然后在比較時使用直接尋址的方式來訪問。例如,執行傳送指令后,MW10的值為1001,而不是1000,所以該比較指令將閉合,在I0.1導通情況下,Q0.1將導通。該例子中的程序在執行時應先導通I1.0,給各個操作數賦值,然后再執行其他程序段。圖5-7

比較指令的使用梯形圖5.2比較指令例5.6采用比較指令實現順序控制

根據按鈕按下次數,依次點亮指示燈。當啟動按鈕SB1被按下4次時,4個指示燈順序點亮;當按鈕SB2被按下時,4個指示燈同時熄滅。SB1接入I0.0,SB1接入SB2。四個指示燈分別由Q0.0~Q0.3輸出驅動。如圖5-8所示。按下按鈕SB1時,輸入信號I0.0有效,加計數器C0的當前計數值加“1”,按鈕第一次按下時,計數器從當前值加“1",再利用大于等于字比較指令,當計數器的當前值大于等于“1"時,輸出信號Q0.0為ON,第一個指示燈點亮。再次按下按鈕SB1時,輸入信號I0.0有效,加計數器C0的當前計數值再加“1”,計數器從當前值加“1”變為“2”,

利用大于等于字比較指令,當計數器的當前值大于等于“2”時,輸出信號QO.1為ON,控制第二個指示燈點亮。以此類推,當按鈕SB1依次按下時,第三個信號燈EL3第四個信號燈被依次點亮。

當按下按鈕SB2時,輸入信號10.1有效,計數器C0被復位,其當前值變為O,大于等于字比較指令的條件不再滿足,輸出信號全部復位變為OFF,使指示燈全部熄滅。5.2比較指令例5.7采用比較指令實現占空比可調的脈沖發生器,由比較指令和定時器組成脈沖發生器,比較指令用來產生脈沖寬度可調的方波,脈寬的調整由比較指令的第二個操作數實現。如圖5-9所示。5.2比較指令當起動按鈕SB1接通時,輸入信號IO.O有效,內部輔助繼電器MO.O接通,控制定時器T37工作,通過字比較指令判斷T37當前值的變化,當T37的當前值大于5時,即定時器T37定時0.5s,Q0.O脈沖輸出,再經過0.5s定時器T37動作,使輔助繼電器IO.1位ON,控制T37復位,T37當前值復位為O,字比較指令條件不滿足輸出QO.O斷開,并重復上述過程循環。改變字比較指令的比較數據的數值就可以改變脈沖輸出的寬度,即實現占空比可調的脈沖發生器。5.3移位指令例5.8假設IN中的字MW0為2#1001110111111011,當I0.0閉合時,OUT端的MWO中的數是多少?梯形圖如圖5所示。

當I0.0閉合時,激活左移指令,IN中的字存儲在MW0中的數為2#1001110111111011,向左移4位后,OUT端的MW0中的數是2#1101111110110000,字左移指令示意圖如圖所示。5.3移位指令例5.9

假設IN中的字MD0為2#1001

1101

1111

1011

1001

1101

1111

1011,當I0.0閉合時,OUT端的MD0中的數是多少?梯形圖如圖所示。5.3移位指令

當I0.0閉合時,激活雙字循環左移指令,IN中的雙字存儲在MDO中,除最高4位外,其余各位向左移4位后,雙字的最高4位,循環到雙字的最低4位,結果是OUT端的MD0中的數是2#1101

1111

1011

1001

1101

1111

1011

1001,其示意圖如圖4-67所示。01111110111001,其示意圖如圖所示。5.4數據轉換指令例5.12IN中的整數存儲在MWO中(用十六進制表示為16#0016),當IO.O閉合時,轉換完成后OUT端的MD2中的雙精度整數是多少?梯形圖和指令表如圖、所示。

當IO.O閉合時,激活整數轉換成雙精度整數指令,IN中的整數存儲在MWO中(用十六進制表示為16#0016),轉換完成后OUT端的MD2中的雙精度整數是16#00000016。但要注意,MW2=16#0000,而MW4=16#0016。5.4數據轉換指令例5.13

IN中的雙精度整數存儲在MDO中,(用十進制表示為16),轉換完成后OUT端的MD4中的實數是多少?梯形圖如圖所示。當IO.O閉合時,激活雙精度整數轉換成實數指令,IN中的雙精度整數存儲在MDO中(用十進制表示為16),轉換完成后OUT端的MD4中的實數是16.00,一個實數了4個字節存儲。5.4數據轉換指令例5.14將實數取整轉換成雙整數的指令有兩條,ROUND四舍五入取整和TRUNC截取取整。IN中為實數型常數7.7,轉換后VD10和VD20中的雙整數是多少?梯形圖如圖所示。SM0.0始終為1,在每一個掃描周期都要激活兩個取整指令,轉換后VD10中雙整數是8(十進制),VD20中雙整數是7(十進制)。5.4數據轉換指令5.4.2BCD轉換指令例5.16IN中的126(十進制)的BCD碼存儲在累加器ACO中,轉換完成后OUT端的AC0的整數數據是多少?梯形圖如圖5-19所示。

當IO.1觸點閉合時,激活BCD_I指令,將ACO中的BCD碼轉換成整數。例如指令執行前ACO中的BCD碼為OOOOOO0100100110(即126),BCD_I指令執行后,ACO中的BCD碼被轉換成整數OOOO00000111ll1005.4數據轉換指令5.4.3編碼、解碼轉換指令例5.17

編碼與解碼指令使用如圖所示,當IO.O觸點閉合時,執行ENCO和DECO指令在執行ENCO(編碼)指令時,將AC3中最低有效位1的位號“9”寫入VB50單元的低4位;在執行DECO(解碼)指令時,根據AC2中低半字節表示的位號“3”,將VW40中的第三位置1,其他位全部清零。5.4數據轉換指令5.4.4七段碼轉換指令例5.18

段譯碼指令使用如圖5-21所示,當IO.O觸點閉合時,執行SEG指令,將VB40中的低4位數轉換成七段碼,然后存入ACO中。例如VBO中的數據為OOOOOl10,執行SEG指令后,低4位0110轉換成七段碼01111101,存入ACO中。5.5運算指令5.5.1算術運算指令例5.19

VWO中的整數為10,VW2中的整數為21,則當IO.O閉合時,整數相加,結果VW4中的數是多少?VD8中的實數為10.1,VD12中的整數為21.1,則當IO.O閉合時,實數相加,結果VD16中的數是多少?梯形圖如圖所示。當IO.O閉合時,上升沿檢測觸頭導通一個掃描周期,整數加指令被激活,執行一次操作,IN1中的整數存儲在VWO中,這個數為10,IN2中的整數存儲在VW2中,這個數為21,整數相加的結果存儲在OUT端的MW4中的數是31。當IO.O閉合時,沒個掃描周期都激活實數加指令,IN1中的實數存儲在VD8中,這個數為10.1,IN2中的實數是常數21.1,實數相加的結果存儲在OUT端的VD12中,結果是31.2。5.5運算指令例5.20IN1中的雙整數存儲在VDO中,數值為22,IN2中的雙整數存儲在VD4中,數值為11,當IO.O閉合時,雙整數相減的結果存儲在OUT端的VD4中,其結果是多少?梯形圖如圖5-23所示。當IO.O閉合時,激活雙整數減指令,IN1中的雙整數存儲在VDO中,假設這個數為22,IN2中的雙精度整數存儲在VD4中,假設這個數為11,雙精度整數相減的結果存儲在OUT端的VD4中的數是11。整數(SUB_I)指令和實數減法指令(SUB_R)與減雙精度整數(SUB_DI)類似,只不過其數據類型不同,在此不再贅述。5.5運算指令例5.21

IN1中的整數存儲在MWO中,數值為11,IN2中的整數存儲在MW2中,數值為11,當IO.O閉合時,整數相乘的結果存儲在OUT端的MW4中,其結果是多少?梯形圖如圖5-24所示。當IO.O閉合時,激活乘整數指令,OUT=IN1×IN2,整數相乘的結果存儲在OUT端的MW4中,結果是121。

例5.22

IN1中的雙整數存儲在VDO中,數值為11,IN2中的雙整數存儲在VD4中,數值為2,當IO.O閉合時,雙整數相除的結果存儲在OUT端的VD8中,其結果是多少?梯形圖如圖5-25所示。當IO.O閉合時,激活除雙精度整數指令,IN1中的雙精度整數存儲在VD0中,數值為11,IN2中的雙精度整數存儲在VD4中,數值為2,雙精度整數相除的結果存儲在OUT端的VD8中的數是5,不產生余數。5.5運算指令例5.22將采集的模擬量數值進行轉換,變成相應的工程值,這個過程稱為標度變換。

在工業現場,將0-100oC的溫度通過溫度傳感器和變送電路轉換為2-10V的電壓信號,送到模擬量輸入端,PLC將其轉換為一個16位的數字量,存入AI區。要求將AIW0中的數據轉換成溫度值。

分析,在S7-200SMARTCPU內部,0-10V的電壓信號對應的數值范圍為0-3200;對于2-10V的電壓信號,對應的數值范圍為6400-3200,在此題目中,對應溫度范圍0-100oC。因此,轉換公式為式5-1:為保證轉換精度,編程時先乘后除,轉換梯形圖程序如圖5-27所示。SM0.0始終為“1”,在每個掃描周期,程序從上到下執行,將轉換結果,即實際溫度值存入VD8中5.5運算指令5.5.2邏輯運算指令例5.24通過邏輯運算指令,可以對變量的某一位進行置位或復位操作。已知VW300、VB302變量,當M0.0通電時通過邏輯指令對V300.2進行復位操作,當M0.1通電時對V302.6進行置位操作。梯形圖如圖5-32所示。5.5運算指令5.5.3數學功能指令例5.25求45o正弦值三角函數輸入時以弧度為單位。計算是應先將角度轉換為弧度(乘以π/180=0.0174).在計算三角函數。如梯形圖5-33所示。5.6表功能指令5.6.1填充指令例5.26填充指令的使用舉例填充指令的實現過程如圖5-34所示。

圖5-34

填充指令的實現過程執行后,從VW200開始到VW218結束,每個單元均為0。5.6表功能指令5.6.2填表指令例5.27填表指令的實現過程如圖5-35所示。

圖5-35

填表指令的實現過程5.7時鐘指令例5.29

讀時鐘指令應用舉例梯形圖如圖5-38(a)所示。如果PLC系統的時間是2009年4月8日8時6分5秒,星期六,則運行的結果如圖5-38(b)所示。年份存入VBO存儲單元,月份存入Ⅶ1單元,日存入VB2單元,小時存入VB3單元,分鐘存入VB4單元,秒鐘存入VB5單元,VB6單元為O,星期存入VB7單元,可見共占用8個存儲單元。

圖5-38讀取時鐘指令的梯形圖和運行結果設置實時時鐘(TODW)指令將當前時間和日期寫入用T指定的在8個字節的時間緩沖區開始的硬件時鐘。5.7時鐘指令例5.30

設置時鐘指令應用舉例

假設要把2012年9月18日8時6分28秒設置成PLC的當前時間,先要做這樣的設:VBO=16#12,VB1=16#09,VB2=16#18,VB3=16#18,VB4=16#08,VB5=16#06,VB6=16#00,VB7=16#28,梯形圖如圖5-39所示。

圖5-39設置實時時鐘指令梯形圖5.7時鐘指令例5.31

某實驗室的一個房間,要求每天16:30~18:00開啟一個加熱器,請用PLC實現此功能。先用PLC讀取實時時間,因為讀取的時間是BCD碼格式,所以之后要將BCD碼轉化成整數,如果實時時間在16:30~18:00,那么則開啟加熱器,梯形圖如圖5-40所示。

圖5-40時鐘控制輸出的梯形圖5.8程序控制指令例5.32

單擊2次接鈕IO.O后,VWO和Ⅶ10中的數值堤多少?單擊2次按鈕,執行2次循環程序,Ⅶ10執行20次加1運算,所以Ⅶ10結果為200執行1次或者2次循環程序,VWO中的值都為11。程序如圖5-45所示。

圖5-45

循環指令應用梯形圖5.9子程序與子程序指令例5.33

子程序指令使用舉例

子程序指令使用如圖5-48所示,其中圖5-48(a)為主程序的梯形圖和指令語句表,圖5-45(b)為子程序O的梯形圖,圖5-48(c)為子程序1的梯形圖。主、子程序執行的過程是:當IO.O觸點閉合時,調用子程序O指令執行,轉入執行子程序O;在子程序O中,如果IO.1觸點閉合,則將QO.O線圈置位,然后又返回到主程序,開始執行調用子程序O指令的下一條指令(即網絡2);當程序運行到網絡3時,如果IO.3觸點閉合,調用子程序1指令執行,轉入執行子程序1;如果I0.3觸點斷開,則執行網絡4指令,不會執行子程序1;若I0.3觸點閉合,轉入執行子程序1后,如果I0.5觸點處于閉合狀態,條件返回指令執行,提前從子程序1返回到主程序,子程序1中的網絡2指令無法執行。5.9子程序與子程序指令例5.34

用帶參數的子程序調用指令實現Y=(X+20)×3÷8運算。首先分析,完成此任務需要建立的局部變量的數量、類型及數據類型,要實現上式的運算,在編寫程序時需要建立一個IN變量,兩個TEMP變量和一個OUT變量,數據類型設置為INT型,如圖5-51所示。5-51變量表編寫帶參數的子程序,實現上述運算,可以給子程序重心命名,本例命名為計算,如圖5-52(a)所示。要想實現多個數據的運算,只需要在主程序多次調用子程序即可,如圖5-52(b)所示,主程序調用了兩次主程序,可以實現對VW0和VW2的運算,并把運算結果返回到VW10和VW20中。5.9子程序與子程序指令程序執行過程為:在主程序中,常ON觸點SMO.O處于閉合狀態,首先執行第一個帶參數子程序調用指令,轉入執行子程序,同時將VWO單元中的數據作為X值傳入子程序的LWO單元(局部變量存儲器)。在子程序中,ADD_I指令先將LWO中的值+20,結果存人LW4中,然后MUL_I指令將LW4中的值×3,結果存人LW6中,DIV_I指令再將LW6中的值÷8,結果存人LW2中,最后子程序結束返回主程序,同時子程序LW2中的數據作為Y值被傳入主程序的VW10單元中。子程序返回主程序后,接著執斧主程序中的第二個帶參數子程序調用指令,又將VW2中的數據作為X值傳入子程序進行(X+20)×3÷8運算,運算結果作為Y值返回到VW20單元中。5-52帶參數子程序調用梯形圖(a)(b)5.10中斷與中斷指令例5.35

中斷程序基本應用舉例中斷指令的使用如圖5-54所示,圖5-54(a)為主程序,圖5-54(b)為名稱為INT_O的中斷程序。在主程序運行時,若IO.O端口輸入一個脈沖下降沿(如IO.O端口外接開關突然斷開),馬上會產生一個中斷請求,即中斷事件1產生中斷請求,由于在主程序中已用ATCH指令將中斷事件1與INT_O中斷程序連接起來,故系統響應此請求,停止主程序的運行,轉而運行INT_O中斷程序,中斷程序執行完成后又返回主程序。在主程序運行時,如果系統檢測到I/O發生錯誤,會使SM5.0觸點閉合,中斷分離DTCH指令執行,禁用中斷事件1,即當IO.O端口輸入一個脈沖下降沿時,系統不理會該中斷,也就不會執行INT_O中斷程序,但還會接受其他中斷事件發出的請求;如果IO.6觸點閉合,中斷禁止DISI指令執行,禁止所有的中斷事件。在中斷程序運行時,如果IO.5觸點閉合,中斷條件返回RETI指令執行,中斷程序提前返回,不會執行該指令后面的內容。5.10中斷與中斷指令(a)主程序

(b)中斷程序5.10中斷與中斷指令例5.36采用中斷指令對抹蜜了輸入信號周期性采集在主程序運行時,PLC第一次掃描時SMO.1觸點接通一個掃描周期,MOV_B指令首先執行,將常數10送人定時中斷時間存儲器SMB34中,將定時中斷時間間隔設為1Oms,然后中斷連接ATCH指令執行,將中斷事件10(即定時器中斷O)與INT_O中斷程序連接起來,再執行中斷允許ENI指令,允許所有的中斷事件。當定時中斷時間存儲器SMB34

10ms定時時間間隔到時,會向系統發出中斷請求,由于該中斷事件對應INT_O中斷程序,所以PLC馬上執行INT_O中斷程序,將模擬量輸入AIWO單元中的故據傳送到VW100單元中;當SMB34下一個10ms定時時間間隔到時,又會發出中斷請求,從而又執行一次中斷程序,這樣程序就可以每隔10ms時間對模擬輸入AIWO單元數據采樣一次。(a)主程序

(b)中斷程序5.10中斷與中斷指令(a)主程序

(b)中斷程序5.11高速計數器指令例5.36高速計數器的數值讀取高速計數器計數值的讀取如圖5-61所示。當IO.O觸點由斷開轉為閉合時,上升沿P觸點接通一個掃描周期,MOV_DW指令執行,將高速計數器HSCO的當前計數值(保存在HCO單元)讀人并保存在VD200單元。圖5-61高速計數器計數值的讀取梯形圖5.11高速計數器指令例5.37高速計算器的計數值設置高速計數器計數值的設置如圖5-62所示。當I0.2觸點由斷開轉為閉合時,上升沿P觸點接通一個掃描周期,首先第1個MOV_DW指令執行,將新CV值(當前計數值)“100"送人SMD38單元;然后第2個MOVDW指令執行,將新PV值(預設計數值)“200"送人SMD42單元;接著高速計數器HSCO的控制字節中的SM37.5、SM37.6兩位均得電為1,允許HSCO更新CV值和PV值;最后HSC

溫馨提示

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

評論

0/150

提交評論