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