西門子PLC中的STL和SCL指令
STL有點類似匯編語言,和機器碼對應,無論哪種語言寫的PLC程序都可以轉換成STL查看,所以掌握基本的STL指令和語法是很有幫助的。
另外STL直接操作寄存器,實現同樣功能時可以減少運算量和寄存器調用次數,并且只關心數據類型的長度(例如不區分int和word),減少了數據類型轉換,總的來說執行效率高,但實現復雜運算和邏輯時編程繁瑣。SCL類似于高級語言Pascal、C之類,可以通過簡單的語句實現復雜的功能,邏輯清晰,在復雜數據類型的處理上也非常方便,雖然理論上執行效率比STL低,但實際一般不會有明顯的影響。
另外,在同一個FC或FB中,STL可以和梯形圖混合使用,而SCL編寫的FC或FB不能混合其他語言。
PLC的SCL語言疑問
*_int[48] := WORD_TO_INT(INT_TO_WORD(*_int[48] + 1) & 16#7FFF);INT_TO_WORD(*_int[48] + 1)將數組中的數據+1,然后數據類型強制轉換為WORD類型。
& 16#7FFF);將上述結果與16進制數據7FFF做與操作,實質就是將最高位置0.最后將處理的數據轉換為整型保存到[48]數組單元中。BEGIN作為語句塊的開始,后面跟個分號代表第一句語句為空語句,其等同于BEGIN ;SCL語言就是類似于Pascal的語言,其他品牌的PLC中稱作ST語言,因為西門子的語句表叫做STL,為了避免混淆,因此叫做SCL。
在Step 7使用SCL語言的問題
SCL語言是類PASCAL語言,并不是C,前些年比較風靡的DELPHI就是采用的PASCAL語言。
另外補充一下對SCL的感受:
1、CASE指令可實現STL的JL指令的功能,使用起來更直觀化,另外支持GOTO跳轉,對于程序實現步進控制同樣很方便。
2、SCL不僅可以在線調試,而且支持變量"參考數據"功能,并且變量符號與絕對地址無一疏漏。
3、對于SCL上升沿下降沿檢測的實現我并不同意4樓所說,同樣只需要像STL、LAD定義一個沿檢測位,
即可輕松實現沿檢測功能,下面舉一上升沿例子:
上升沿檢測原理: IF In AND NOT Mem THEN //沿檢測邏輯
執行語句部分;
END_IF;
Mem:=In;
注:Mem就是我們需要的中間存儲位、 In被檢測的變量
4、另外在西門子介紹SCl時著重強調了幾項功能:
5、SCL同樣支持多重背景調用功能。
6、對于STL能實現的復雜運算功能目前我還沒發現SCL不能支持的,在沒使用SCL之前的我程序基本都是用STL,使用了SCL之后同樣很方便。
具體細節還請翻看編程手冊.
PLC的SCL語言疑問
*_int[48] := WORD_TO_INT(INT_TO_WORD(*_int[48] + 1) & 16#7FFF);
INT_TO_WORD(*_int[48] + 1)將數組中的數據+1,然后數據類型強制轉換為WORD類型。
& 16#7FFF);將上述結果與16進制數據7FFF做與操作,實質就是將最高位置0.
最后將處理的數據轉換為整型保存到[48]數組單元中。
BEGIN作為語句塊的開始,后面跟個分號代表第一句語句為空語句,其等同于
BEGIN
;
SCL語言就是類似于Pascal的語言,其他品牌的PLC中稱作ST語言,因為西門子的語句表叫做STL,為了避免混淆,因此叫做SCL。
西門子PLC中的STL和SCL指令是什么意思
SCL類似于高級語言Pascal、C之類,可以通過簡單的語句實現復雜的功能,邏輯清晰,在復雜數據類型的處理上也非常方便,雖然理論上執行效率比STL低,但實際一般不會有明顯的影響。
另外,在同一個FC或FB中,STL可以和梯形圖混合使用,而SCL編寫的FC或FB不能混合其他語言
西門子股份公司(SIEMENS AG FWB:SIE, NYSE:SI)是世界最大西門子公司總部的機電類公司之一,1847年由維爾納·馮·西門子建立。
國際總部位于德國慕尼黑。西門子股份公司在法蘭克福證券交易所和紐約證券交易所上市。主要業務集中在工業、能源、醫療、基礎設施與城市四大業務領域。
1855年,創始人的另一個弟弟卡爾·海因里希·馮·西門子(CarlHeinrichvonSiemens)在圣彼得堡建立了一個新的分支機構。
公司不斷地成長并開始涉足電氣列車和燈泡。1890年,創始人退休,把公司留給了他的弟弟卡爾·海因里希和兩個兒子阿諾德·西門子(ArnoldvonSiemens)以及喬治·威廉·西門子(GeorgWilhelmvonSiemens)。1897年,西門子和哈爾斯克(Halske)聯合成立了公司S&H。
1919年,S&H和其它兩家公司共同成立了歐司朗燈泡公司(OsramLightbulbCompany)。
西門子scl語言elsif和else是什么意思
elseif 就是 else 然后加個 IF 差不多的IF ATHEN。
.ELSEIF BTHEN 。ENDIF等同IF ATHEN 。
ELSE IF B THEN。 ENDIFENDIFSCL中文手冊http://**cgi-bin/ftnExs_download?k=796136357cf6ddce4d5d66304739041e50560f03075a07501e0405540314020603021b0c070b531c02570e025208550207050e04612c36ffc4a2f3e2b26a757de5b1f8f1abef84d01d1357476104&t=exs_ftn_download&code=3a65a961&redirect=trueQQ中轉站,要下趕緊。