在西門子PLC中使用SCL語言編程的技巧.pdf

在西門子PLC中使用SCL語言編程的技巧.pdf

ID:55905408

大?。?68.29 KB

頁數(shù):5頁

時(shí)間:2020-06-15

在西門子PLC中使用SCL語言編程的技巧.pdf_第1頁
在西門子PLC中使用SCL語言編程的技巧.pdf_第2頁
在西門子PLC中使用SCL語言編程的技巧.pdf_第3頁
在西門子PLC中使用SCL語言編程的技巧.pdf_第4頁
在西門子PLC中使用SCL語言編程的技巧.pdf_第5頁
資源描述:

《在西門子PLC中使用SCL語言編程的技巧.pdf》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫

1、在西門子PLC中使用SCL語言編程的技巧1、在FB塊中使用結(jié)構(gòu)編寫FB塊的準(zhǔn)則,就是其使用的內(nèi)部變量盡量與外部隔離,除了像PLC的新啟動(dòng)/重啟動(dòng)標(biāo)志,以及一些方波/脈沖波等全局變量可以在FB塊中使用外,其他的任何全局變量都不應(yīng)該在FB內(nèi)部使用,即使是自定義結(jié)構(gòu)也應(yīng)該在FB中單獨(dú)定義,在FB塊中使用結(jié)構(gòu)應(yīng)該在靜態(tài)類型變量中定義,如下:VAR//StaticVariablesIM:STRUCT//DatastructureofInternalFlagsH1_AFCountImp:BOOL:=Fals

2、e;//AuxFlagCounterImpulseH1_CountImp:BOOL:=False;//CounterImpulseH1_ELCountMV:BOOL:=False;//EndlessCounterMaximumValueEND_STRUCT;//otherdatastructure?END_VAR在使用這些結(jié)構(gòu)時(shí),可以按照如下方式:IM.H1_CountImp:=Imp;2、在SCL中替代Set/Reset指令的方法SCL中不存在Set/Reset指令,或者說也沒有必要使用。在S

3、CL中,不使用排他條件Else的條件語句就是一個(gè)Set/Reset指令。如下編程:IFTHENVariablename:=1;END_IF;其等同于:(S)若加上Else條件,如下:IFTHENVariablename:=1;ELSEVariablename:=0;END_IF;則等同于:()一條完整的包含置位和復(fù)位的語句可以使用如下方式編程:IFTHENVariablename:=1;END_IF;IFTHENVariablename:=0;END_IF;其等效于SR指令,若將上面的兩個(gè)條件語

4、句的先后次序顛倒一下,則等效于RS指令。3、簡化程序指令<1>、盡量使用賦值語句替代那些不用于SR/RS指令的BOOL型賦值條件語句,如下:IFfnAdd&(button=false)THENpus1:=true;ELSEpus1:=false;END_IF;其等效于pus1:=fnAdd&(NOTbutton),這樣使程序看起來更加簡潔和容易閱讀。<2>、對于非BOOL型賦值語句則不能這如上簡化,而是可以通過SEL函數(shù)實(shí)現(xiàn):IFfnAdd&(button=false)THENpus1:=val

5、ue1;ELSEpus1:=value2;END_IF;其等效于pus1:=SEL(G:=fnAdd&(button=false),IN0:=value2,IN1:=value1);使用該函數(shù)時(shí)注意兩點(diǎn):<1>、參數(shù)名不能省略;<2>、當(dāng)選擇條件G為TRUE時(shí),選擇后一個(gè)參數(shù)值IN1,為FALSE時(shí),選擇前一個(gè)參數(shù)值IN0,這點(diǎn)與計(jì)算機(jī)C語言等正好相反。<3>、XOR指令有著比AND和OR更為復(fù)雜的表達(dá),能使用XOR的地方應(yīng)該盡量使用IF(condition1AND(NOTcondition2)

6、)OR(condition2AND(NOTcondition1))THENResult:=true;ELSEResult:=false;END_IF;其等效于Result:=condition1XORcondition2;XOR功能就是兩條件不同輸出TRUE,相同輸出FALSE4、脈沖沿檢測功能使用以下兩條語句替代脈沖上升沿檢測函數(shù),譬如檢測button_Input上升沿的代碼如下:Puls:=button_Input&(NOTbutton_Last);button_Last:=button_I

7、nput;同樣的下降沿脈沖檢測如下:Puls:=(NOTbutton_Input)&button_Last;button_Last:=button_Input;5、編寫脈沖發(fā)生器波峰持續(xù)時(shí)間僅為一個(gè)PLC掃描周期的波形稱為脈沖波,而波峰持續(xù)時(shí)間大于或等于兩個(gè)PLC掃描周期的波形稱為方波,脈沖波可用于計(jì)數(shù)、定時(shí),方波可用于控制信號燈的閃爍輸出,可以在西門子PLC的硬件配置中配置一個(gè)字節(jié)的各種時(shí)間的方波(波峰時(shí)間和波谷時(shí)間為1:1),假設(shè)"FP_1Sec"為這個(gè)字節(jié)中1秒的方波,則:<1>、間隔1秒

8、的脈沖波“Impls_1Sec”如下編程:“Impls_1Sec”:="FP_1Sec"AND(NOT“Impls_1Sec_Aux”);“Impls_1Sec_Aux”:="FP_1Sec";<2>、間隔10秒的脈沖波“Impls_10Sec”如下編程:IF(“Impls_10Sec”)THENCount_Actual:=0;“Impls_10Sec”:=0;ELSEIF(“Impls_1Sec”)THENCount_Actual:=Count_Actual+1;END_IF;“Impls_1

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時(shí)聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。