如何輕鬆入門西門子 SCL(結構化控制語言) | 附官方教程下載

寫在面前

大家好,我是李孟宦,號主小智前同事~

傳說程序員之間存在語言鄙視鏈,學彙編語言的站在最頂端,鄙視一切,學C/C++的鄙視JAVA和C#,然後JAVA和C#互相鄙視,其實搞PLC的也有類似鄙視鏈,搞ST或者SCL的鄙視FBD和LAD,對於搞西門子PLC的工程師來說,或許SCL就是高級編程,今天我們就來講講SCL吧~

有很多朋友想學習SCL語言,其實不要把SCL或ST語言想的有多高大上。

首先看下什麼是SCL語言:SCL語言是一種結構化文本,類似於計算機高級語言的編程方式,他的語言規範解決計算機的PASCAL語言。

S7-SCL(Structured Control Language 結構化控制語言) 具有以下特點:

· 1、是一種類似於PASCAL的高級編程語言

· 2、符合國際標準IEC 61131-3

· 3、PLCopen基礎級認證

· 4、適用於 S7-300 (推薦CPU314以上), S7-400,S7-1200,S7-1500, C7 and WinAC

· S7-SCL 爲 PLC 做了優化處理,它不僅僅具有 PLC 典型的元素(例如 輸入/輸出,定時器,計數器,符號表),而且具有高級語言的特性, 例如:循環, 選擇,分支,數組 ,高級函數。

S7-SCL 其非常適合於如下任務:

· * 複雜運算功能

· * 複雜數學函數

· * 數據管理

· * 過程優化

講這些概念的東西是很空洞的,只要瞭解下即可,那麼關鍵問題來了,怎麼學習呢?

我僅僅說下我自己的觀點,剛開始學就是要學習SCL的指令怎麼使用,剛開始的時候我們可以以一些梯形圖實現的功能來用SCL來實現,逐步熟悉SCL基本指令的使用。

本文就一些梯形圖中用的最多的起保停電路來熟悉SCL的條件執行和賦值指令的使用:

我們常見的起保停梯形圖,如下圖所示:

在這裏插入圖片描述

上圖就是典型的梯形圖,當enable信號爲1,同時stop爲0,則start爲1。

那麼用SCL怎麼表示呢:

這個運算表達式是什麼?

(enable 或 start)與stop的非 的運算結果爲TRUE時,則start爲true。

再換個方法理解:就是(enable 或 start)與stop的非的運算結果賦值給start。

在SCL中賦值指令是“:=”,(注意要使用英文),所以上面的表達式寫成SCL指令:

在這裏插入圖片描述

仿真如下:

在這裏插入圖片描述

那麼用IF THEN語句怎麼編寫程序呢?

If then語句是條件執行指令,也就是說如果滿足該條件,則將執行 THEN 後編寫的指令。如果不滿足該條件,則程序將從 END_IF 後的下一條指令開始繼續執行。

在本例的起保停程序是不是可以理解成當enable爲TRUE,將start給置位爲true,當stop爲true則復位start爲false。

在這裏插入圖片描述

因爲在SCL中沒有置位和復位,所以一般用if then條件執行語句來實現置位和復位。

那麼本例的程序用IF THEN 寫成如下程序:

在這裏插入圖片描述

仿真如下:

在這裏插入圖片描述
在這裏插入圖片描述

就是這麼簡單。

對於很多小夥伴會覺得掌握了SCL也許就算工控水平不錯了,但是其實在小編看來,如今的自動化工程師,不掌握一門真正的諸如C++,java,C#等高級語言,不把網絡知識學紮實,那在工業物聯網這一波浪潮真正襲來的時候,措手不及的還是我們自己~

對於想入門的朋友們,請關注今天的下載彩蛋:西門子SCL手冊和官方培訓PPT,具體看下圖
在這裏插入圖片描述
獲取方法見鏈接:如何輕鬆入門西門子 SCL(結構化控制語言) | 附官方教程下載

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章