如何在經典step7上使用SCL
最近因為工作需求的變化,又回頭用上了很多年前的step7。用習慣博圖之後再回到step7上確實是一個很逆向的事情,但是沒辦法,專案需要也就只能遵守這個規則。
東西再老,只要認真去做,也會有新發現。
1. 搭建一個全新的SCL塊
- 首先新建專案,選擇
SCL source
,然後開啟它:
- 選擇模板,FB/FC都行,這裡選擇FB模板:
把對應的
FBxxx
改成實際的FB編號
VAR TEMP
是FB的臨時變數;
VAR
是FB的靜態Static變數
- 模板選擇完成之後,可以選擇引數模板(定義變數的IN/OUT/INOUT介面模板):
選擇引數模板之後,可以看到多了
VAR INPUT
,VAR IN_OUT
,VAR OUTPUT
一類的宏,這明顯對應了FB塊的三類介面。
- 對應的,實際專案中,還需要其他模板,也可以在
Insert
中擇需選擇:- 選擇插入DB則插入一段共享DB,長度自己在引數中定義
- 選擇插入Instance DB則插入一段背景DB,
- 插入Constant表示插入常量
- 插入Comment表示插入注視,包括一些版本資訊
- 更改為實際的FB編號之後(如此處是FB1),點選編譯,會發現生成了新的FB1:
- 簡單定義一下輸入引數後的實際效果:
2. 匯入其他來源的SCL檔案(比如博圖)
- 匯入原始檔:
- 匯入之後的一些相容性問題:
紅色標記處都是有一些相容性問題的,因為博圖是用的符號訪問,返回到Step時,格式反而不對了,要改回fb編號才行。
ton_time,S7_Optimized_Access那些都是後期才支援的東西,放在老版本上明顯不相容了。
- 程式碼邏輯和博圖上寫的沒有明顯差異:
- 匯入的檔案在使用之前還是需要多多查查相容性才行。