SCL:Structured Control Language,結構化控制語言。
SCL是一種類似于計算機高級語言的編程方式,隻是這種語言編寫的程序,可以在PLC中運行。如果學過C語言或者VB語言,就會很容易上手SCL。當然沒有基礎依然可以從零開始學習。
在PLC中有了SCL這種編程語言,就可以方便地把計算機高級語言,編寫的算法移植到PLC中。
西門子以下系列的PLC都支持SCL語言編程:
SCL能實現複雜的運算功能,特别是有大量數據要處理的時候。相對于梯形圖SCL在運算、函數、過程優化方面有天然的優勢。
在博途軟件中已經集成SCL語言包,可以直接使用SCL進行進行編程。在傳統的STEP7 中需要單獨的安裝 S7-SCL 軟件包。
因為SCL是一種高級編程語言,所以就包含表達式、運算符、程序控制語句等語言元素。
1、表達式
SCL中有三種表達式:
一個完整的表達式是由操作數和與之搭配的操作符組成。通過表達式的特定順序進行運算,并返回一個值。
操作數:常數、變量、函數調用(在PLC編程中可以理解為地址)。
操作符: 、- 、*、/ (加減乘除),and、or、not(與或非)等。
操作符有時也叫運算符,SCL支持的運算符有算術運算符、比較運算符、邏輯運算符、賦值運算符。
算術運算符:主要是我們常用的加( )、減(-)、乘(*)、除(/),以及數學上常用的取正、取負、求餘數、整除、求餘(%)。
比較運算符:用于數值的比較,主要有大于、小于、等于、不等于。
邏輯運算符:用于布爾型值的運算,常用的邏輯運算符除了與、或、非之外,還有異或。
賦值運算符:通過賦值運算,可以将一個表達式的值賦給一個變量。賦值運算符左側為變量,右側為表達式的值。 賦值運算的計算按照從右到左的順序。
1.1、算術表達式
算術運算符: 、-、*、/、DIV、MOD、**。
算術表達式通常由常量、變量、函數、圓括号、運算符等組成。算術表達式也叫數學表達式,是三種表達式中最簡單的,幾乎可以等同于數學運算。
西門子PLC的算術表達式,支持各種數據類型。一個算術表達式的兩個操作數,如果分别屬于不同的數據類型,依然可以運算。運算結果的數據類型,如下圖所示:
雖然不同的數據類型可以算術運算,還是建議大家先進行數據格式轉換,然後進行運算。防止出現運算後,不知道數據格式,導緻數據錯誤。
1.2、關系表達式
關系運算符:<、<=、>、>=、==、<>。
關系表達式是利用關系運算符,将兩個操作數或數據類型進行比較,然後得到一個布爾值(BOOL)型的邏輯結果。如果比較結果為真,則結果為1(TRUE),否則為0 (FALSE)。
所以關系表達式的值隻能是邏輯值真或假(1或者0)。
關系表達式有時候也稱作比較表達式。
西門子PLC的關系表達式,支持各種數據類型,結果的數據類型隻能是布爾型。
以下數據類型,隻能比較相同類型的變量:
1.3、邏輯表達式
邏輯運算符:AND(&)、OR、NOT、XOR。
西門子PLC的邏輯表達式,支持各種數據類型。但是在運算中會出現兩種情況。
一是,兩個操作數都是布爾(BOOL)數據類型,則邏輯運算的結果也為布爾數據類型。
另一種情況,如果兩個操作數中至少有一個是位序列,則結果也為位序列。結果由最高操作數的數據類型決定。例如,當兩個操作數分别是字節(Byte) 類型和字(Word)類型時,結果為字(Word)類型。
邏輯表達式中一個操作數為布爾(BOOL)類型而另一個為位序列時,必須先将 布爾(BOOL)類型的操作數顯式轉換為位序列類型。
位序列:一組由0和1組成的序列。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!