SCL語(yǔ)言鄙視鏈,怎么學(xué)習(xí)語(yǔ)言?|高級(jí)編程
2021-07-30
寫在我面前
大家好,我是號(hào)主小智的前同事李夢(mèng)歡~
據(jù)說(shuō)程序員之間存在著語(yǔ)言蔑視的鏈條。學(xué)匯編語(yǔ)言的人站在高處,鄙視一切。學(xué)C/C++的人鄙視JAVA和C#,然后JAVA和C#互相鄙視。其實(shí)搞PLC的人也有類似的鄙視鏈。 ,搞ST或者SCL的鄙視FBD和LAD。對(duì)于從事西門子PLC的工程師來(lái)說(shuō),也許SCL就是高級(jí)編程。今天就來(lái)說(shuō)說(shuō)SCL~
想學(xué)SCL語(yǔ)言的朋友很多,其實(shí)不要想SCL或者ST語(yǔ)言有多大。
我們先來(lái)看看SCL語(yǔ)言是什么:SCL語(yǔ)言是一種結(jié)構(gòu)化的文本,類似于計(jì)算機(jī)高級(jí)語(yǔ)言的編程方法,其語(yǔ)言規(guī)范解決了計(jì)算機(jī)語(yǔ)言。
S7-SCL(結(jié)構(gòu)化控制語(yǔ)言)具有以下特點(diǎn):
·1、 是一種類似的高級(jí)編程語(yǔ)言
·2、符合國(guó)際標(biāo)準(zhǔn)IEC -3
·3、基礎(chǔ)認(rèn)證
·4、適用于S7-300(以上推薦)、S7-400、S7-1200、S7-1500、C7和
· S7-SCL 針對(duì) PLC 進(jìn)行了優(yōu)化。它不僅具有典型的PLC元素(如輸入/輸出、定時(shí)器、計(jì)數(shù)器、符號(hào)表),還具有高級(jí)語(yǔ)言的特性,如:循環(huán)、選擇、分支、數(shù)組、高級(jí)函數(shù)。
S7-SCL 非常適合以下任務(wù):
· * 復(fù)雜的計(jì)算函數(shù)
· * 復(fù)雜的數(shù)學(xué)函數(shù)
· * 數(shù)據(jù)管理
· * 流程優(yōu)化
講這些概念的東西很空洞,只要你明白,那么關(guān)鍵問題就在這里,怎么學(xué)?
我只是談?wù)勎易约旱挠^點(diǎn)。一開始西門子編程語(yǔ)言scl,我想學(xué)習(xí)如何使用SCL指令。一開始我們可以用SCL來(lái)實(shí)現(xiàn)一些梯形圖實(shí)現(xiàn)的功能,逐漸熟悉SCL基本指令的使用。 .
本文熟悉SCL的條件執(zhí)行以及梯形圖中一些最常用的啟停電路的賦值指令的使用:
我們常用的啟停梯形圖,如下圖所示:
上圖是典型的梯形圖。當(dāng)信號(hào)為1,停止為0時(shí),為1。
那么如何在SCL中表達(dá):
這個(gè)操作表達(dá)式是什么?
(或)當(dāng)運(yùn)算結(jié)果為真時(shí),停止為真。
另一種理解:is(or)和stop操作的結(jié)果被賦值。
SCL中的賦值指令是“:=”,(注意要用英文)西門子編程語(yǔ)言scl,所以上面的表達(dá)式寫成SCL指令:
模擬如下:
那么如何用IF THEN語(yǔ)句編寫程序?
if then 語(yǔ)句是條件執(zhí)行指令,也就是說(shuō),如果滿足條件,則執(zhí)行 THEN 之后的指令。如果不滿足這個(gè)條件,程序會(huì)從后面的下一條指令繼續(xù)執(zhí)行。
這個(gè)例子中的啟動(dòng)和停止過程是否可以理解為TRUE,設(shè)置為true,stop為true時(shí)重置為true。
因?yàn)镾CL中沒有set和,所以常用if then條件執(zhí)行語(yǔ)句來(lái)實(shí)現(xiàn)set和。
那么這個(gè)例子中的程序使用IF THEN寫成如下:
模擬如下:
就這么簡(jiǎn)單。
對(duì)于很多小伙伴來(lái)說(shuō),你可能會(huì)認(rèn)為如果你掌握了SCL,即使你的工控水平不錯(cuò),但在我看來(lái),今天的自動(dòng)化工程師并沒有掌握C++等真正的高級(jí)語(yǔ)言, java、C#等網(wǎng)絡(luò)知識(shí)扎實(shí),所以當(dāng)工業(yè)物聯(lián)網(wǎng)的浪潮真正來(lái)襲時(shí),我們猝不及防~
想上手的請(qǐng)關(guān)注今天下載的彩蛋:西門子SCL手冊(cè)和官方培訓(xùn)PPT,詳情見下圖
獲取方法見鏈接: