如何在step7上使用SCL

不愿透露姓名的小村村發表於2024-11-01

如何在經典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那些都是後期才支援的東西,放在老版本上明顯不相容了。

  • 程式碼邏輯和博圖上寫的沒有明顯差異:

  • 匯入的檔案在使用之前還是需要多多查查相容性才行。

相關文章