南平西門子代理商
西門子S7-300系列PLC在編程時是否需要用到SCL
問:西門子S7-300編程必須要用到SCL嗎,只用LAD怎么樣?
答:S7 SCL是符合EN 61131-3(IEC 61131-3)標(biāo)準(zhǔn)的高級文本語言,也就是說支持該標(biāo)準(zhǔn)的任意廠家的PLC均可以使用與之相似的語言編程,支持強(qiáng)大的數(shù)據(jù)處理運(yùn)算功能,一般深受IT人員的喜愛。SCL是STEP 7軟件的一個可選附件包,標(biāo)準(zhǔn)版的只有 LAD,STL,F(xiàn)BD三種編程工具。它同STL、LAD、FBD屬于同一個作用, SCL需要用單獨(dú)的程序塊來編寫,需要編譯后才能下載到CPU執(zhí)行;LAD和STL可以在同一個程序塊里編寫。在STEP7沒有安裝SCL時,用其編輯的塊都會以STL格式打開并顯示。
S7 SCL 包含的語言結(jié)構(gòu)與編程語言Pascal和C相類似,所以只要接觸過Pascal、Delphi、vb等編程語言者,實(shí)現(xiàn)S7-SCL語言的快速入門是非常容易的,不必了解繼電器原理,而且,即使是做邏輯控制也只需簡單的編程語句就可以完成,所以S7 SCL特別適合于習(xí)慣于使用高級編程語言的人使用。這種語言適合于處理復(fù)雜的邏輯和大量的數(shù)學(xué)運(yùn)算,由于其具有高級語言的編程結(jié)構(gòu),因此和S7的STL語句表編程方式比較起來有著更加方便的控制方式,可以這樣說,只要是必須使用語句表的地方,我們均可以考慮使用SCL。
也許STL在執(zhí)行時比SCL更加高效,但事實(shí)上也不一定,首先SCL可以編譯成STL,同時 SCL設(shè)計(jì)時可以優(yōu)化編程,而STL若運(yùn)用不當(dāng),可能還會將低效率。當(dāng)然在目前的這種系列的PLC上,效率對于我們來說已是次要的,我們更關(guān)心的是編程結(jié)構(gòu)。就像在PC機(jī)上,舍棄了匯編語言,而主要采用C/C++等高級語言??傮w來說,SCL適合于編寫標(biāo)準(zhǔn)功能塊,由于在維護(hù)中,它和STL一樣,不象 Lad一樣利于維護(hù),因此這些標(biāo)準(zhǔn)功能塊都應(yīng)該有文檔說明,以便用戶了解其功能。STL源文件由文本組成,使用關(guān)鍵字在源文件中設(shè)定塊結(jié)構(gòu)、聲明變量表和程序網(wǎng)絡(luò)段,為將其編譯成塊,必須按一定規(guī)則編寫其結(jié)構(gòu)及語句。
當(dāng)使用LAD(梯形圖)/FBD(功能圖)編程時,系統(tǒng)會自動添加嚴(yán)格的語法結(jié)構(gòu)。而STL并不自動添加完整的語法結(jié)構(gòu)(數(shù)據(jù)類型匹配,系統(tǒng)堆棧處理等)。應(yīng)此LAD/FBD格式的程序可以轉(zhuǎn)換為STL格式,而STL格式的程序并不一定可以轉(zhuǎn)換為LAD/FBD。
SCL可以編譯成STL。如果想再把STL*轉(zhuǎn)換成LAD,難度很大,或者說不可能。把STL程序按功能組拆成逐個網(wǎng)絡(luò),然后或許大部分可以轉(zhuǎn)換成LAD,但是無法保持程序的完整性,零零散散無法閱讀。
做 PCS7項(xiàng)目,如果不學(xué)會SCL語言,做項(xiàng)目難度比較大,單純使用CFC和SFC編程,由于工藝控制的復(fù)雜性和多樣性,CFC圖表會有大量的塊,程序可讀性不高,技術(shù)保密不了;用SCL編程可以把工藝聯(lián)鎖、工藝核心控制程序和工藝數(shù)據(jù)處理包裝成一個FB塊,CFC程序就簡單多了。 PCS7是DCS系統(tǒng),模擬量很多,而且程序一般都比較大。這種大型的程序通常都用高級語言工具來編寫,例如SCL,CFC和SFC。他們編譯以后生成STL,但是沒有注釋,閱讀難度會非常大,一年都未必看的明白。工業(yè)控制軟件發(fā)展到現(xiàn)在,大型程序通常都是用高級語言來編寫,如SCL,CFC和SFC這樣工作量會小很多很多。所以建議大家直接閱讀學(xué)習(xí)SCL語言編寫的程序。
對于STL、LAD、SCL等語言之間進(jìn)行轉(zhuǎn)換的問題,的確有些STL變成LAD是轉(zhuǎn)不過來的。反過來行。LAD可以直接轉(zhuǎn)SCL,但反過來不一定行,需要嚴(yán)格的按一定的格式寫才能轉(zhuǎn)回來,因?yàn)镾CL是結(jié)構(gòu)化編程語言,比LAD復(fù)雜。
南平西門子代理商
故障的分類
1.外部設(shè)備故障
外部設(shè)備就是與實(shí)際過程直接的各種開關(guān)、傳感器、執(zhí)行機(jī)構(gòu)、負(fù)載等。這部分設(shè)備發(fā)生故障,直接影響系統(tǒng)的控制功能。
2.系統(tǒng)故障
這是影響系統(tǒng)運(yùn)行的全局性故障。系統(tǒng)故障可分為固定性故障和偶然性故障。
故障發(fā)生后,可重新啟動使系統(tǒng)恢復(fù)正常,則可認(rèn)為是偶然性故障。
重新啟動不能恢復(fù)而需要更換硬件或軟件,系統(tǒng)才能恢復(fù)正常,則可認(rèn)為是固定故障。
3.硬件故障
這類故障主要指系統(tǒng)中的模板(特別是I/O模板)損壞而造成的故障。這類故障一般比較明顯,影響局部。
4.軟件故障
軟件本身所包含的錯誤,主要是軟件設(shè)計(jì)考慮不周,在執(zhí)行中一旦條件滿足就會引發(fā)。在實(shí)際工程應(yīng)用中,由于軟件工作復(fù)雜、工作量大,因此軟件錯誤幾乎難以避免。
對于可編程控制器組成的控制系統(tǒng)而言,絕大部分故障屬于上述四類故障。根據(jù)這一故障分類,可以幫助分析故障發(fā)生的部位和產(chǎn)生的原因。
可編程控制器的自診斷測試
可編程序控制器具有*的自診斷測試功能,在系統(tǒng)發(fā)生故障時要充分利用這一功能。在進(jìn)行自診斷測試時,都要使用診斷調(diào)試工具,也就是編程器。
利用系統(tǒng)功能進(jìn)行診斷測試
利用可編程控制器本身所具有的各種功能,自行編制軟件、采取一定措施、結(jié)合具體分析確定故障原因。
用戶通過程序可以編輯組織塊,來告訴CPU當(dāng)出現(xiàn)故障時應(yīng)如何處理,
如果相應(yīng)的故障組織塊OB沒有編程,當(dāng)出現(xiàn)該故障時,CPU轉(zhuǎn)到“STOP"狀態(tài)。
系統(tǒng)故障率曲線
![](http://www.gkwo.net/file/upload/201603/05/14-46-23-32-1787.jpg)
1.早期故障期
2.隨機(jī)故障期
3.耗損故障期
可編程控制器系統(tǒng)的故障分布
系統(tǒng)故障:整個控制系統(tǒng)失效的總故障。
外部故障:系統(tǒng)與實(shí)際過程相連的傳感器、檢測開關(guān)、執(zhí)行機(jī)構(gòu)和負(fù)載等部分的故障。
內(nèi)部故障:可編程控制器本身的故障。
只有10%的故障發(fā)生在可編程控制器中。90%的故障發(fā)生在I/O模板中,
要提高系統(tǒng)的可靠性,在系統(tǒng)設(shè)計(jì)中要注意外部設(shè)備的選擇,在可編程序控制器中我們要提高I/O模板的維修能力,縮短平均維修時間。
關(guān)鍵詞: PLC
線性化編程;分部編程以及結(jié)構(gòu)化編程(工業(yè)攪拌系統(tǒng))。
![](http://www.gkwo.net/file/upload/201603/05/14-39-23-30-1787.jpg)
被攪拌的對象要求如下:
1.當(dāng)成分A(B)泵工作時要求:1)成分A(B)的進(jìn)料閥已開,出料閥已開;2)攪拌桶未滿,攪拌的出料閥關(guān)閉;3)泵的驅(qū)動電機(jī)*,沒有緊急停止動作。
2.拌電機(jī)工作時的條件:1)攪拌桶未空,攪拌桶的出料閥關(guān)閉;2)攪拌馬達(dá)*,緊急停止沒有動作。
3.開排放閥的條件:攪拌馬達(dá)停止,緊急停止沒有動作。
系統(tǒng)中的液位開關(guān)讓操作者了解攪拌桶內(nèi)的液位情況,并且提供輸送泵和攪拌電機(jī)之間的連鎖關(guān)系。
一、線性化編程
線性化編程就是將用戶程序連續(xù)放置在一個指令塊內(nèi),即一個簡單的程序塊內(nèi)包含系統(tǒng)的所有指令。線性化編程不帶分支,通常是OB1程序按順序執(zhí)行每一條指令,軟件管理的功能相對簡單。
二、分部編程
分部式編程是把一項(xiàng)控制任務(wù)分成若干個獨(dú)立的塊,每個塊用于控制一套設(shè)備或一系列工作的邏輯指令,而這些塊的運(yùn)行靠組織塊OB內(nèi)指令來調(diào)用。
三、結(jié)構(gòu)化編程
結(jié)構(gòu)化程序把過程要求的類似或相關(guān)的功能進(jìn)行分類,并試圖提供可以用于幾個任務(wù)的通用解決方案。向指令塊提供有關(guān)信息(以參數(shù)形式),結(jié)構(gòu)化程序能夠重復(fù)利用這些通用模塊。
控制軟件分為五個功能塊:
FC10功能塊用于控制成分A的供料泵;
FC20功能塊用于控制成分B的供料泵;
FC30功能塊用于控制攪拌馬達(dá);
FC40功能塊用于控制排料電磁閥;
FC50功能塊用于控制操作站上的指示燈。