信捷PLC之C函数编程(一)
寫PLC程序,越來越覺得結構化文本編程語言(ST)給PLC編程帶來的便利,在處理一些數據上,可以寫的更加靈活。所以,在項目PLC選型上,我都會優先選擇支持結構化文本的PLC。
國內有些廠商推出了一些較為高端一些的PLC,開發環境集成在Codesys平臺(例如禾川、信捷);也有的PLC的開發環境集成在Visual Studio平臺中(例如倍福)。
像依賴于博圖的西門子、三菱、歐姆龍PLC,都可以在獨家的IDE中進行ST編程開發。
今天,我們來說一下ST語言編程的“另類”——信捷的C函數編程。
如果大家關注我的公眾號文章,最近就會收到比較多的信捷C函數編程的推送,大家想要學習的話,記得關注微信公眾號【工業技術互聯】
下一篇講解如何使用信捷PLC的C函數編程,本篇文章先說一下這種編程方式。
打開信捷PLC的編程軟件“XDPPro”,就會看到在左側目錄樹下,有“函數功能塊”這一欄。
通過在上面單擊右鍵,就可以添加功能塊。
?image01
?第一個函數功能塊的默認名字為“FUNC1”,如下圖所示,可以自定義源文件名稱、版本、描述、作者、日期。設定好源文件信息后,點擊確認就可以創建文件。
image02
在此,我將函數功能塊命名為“FUNC3”。打開創建好的文件,如下圖所示。?
Image03
但是使用過程中,就會存在一些問題。給我最大的不便之處在于它的不靈活性。
【第一點】文件長度問題
如圖所示,我給文件取名為“FUNC3”,沒問題,長度滿足要求,但是如果你要給它取名為“ZIDONGSHANGLIAO”(自動上料),那不好意思,它不支持這么多長度的文件名命名,當輸入到“ZIDONGSHA”時候,剩下的就輸入不進去了。
【第二點】文件大小寫問題及格式
文件名只能支持字母、數字、下劃線,并且第一個字符不能是數字,很符合命名規范,但是它的字母只能是大寫,無法輸入小寫。所以,當你想輸入“ShouDong”(手動)時候,它會自動變成“SHOUDONG”,看起來總感覺不舒服。如果你用過西門子的FC和FB,就會發現,它的這些塊是可以支持中文的。
好吧, 上面我都可以接受,不影響我在掉發的路上越走越遠。
【第三點】函數傳遞的形參固定
如圖三所示,void FUNC3(WORD W , BIT B )這里面的參數無法改變。比如你想將函數寫成
void FUNC3(WORD W , WORD D)那不行,這是不允許的。像寫成void FUNC3(BIT B , BIT D)這樣的也不允許。因為根本不允許修改。
那是否可以在此函數中創建一個新的函數用來調用?實踐表明,這樣也是不行的。
反正就是有很多的局限性,用起來特別不靈活。
當然,也有好的一方面,如果你是要用來計算CRC校驗,用這個函數就可以很好的實現。官方也有相關的例子,直接拿來使用即可。
如果你要把信捷的C函數編程當作ST編程來使用,有很多和你預想的不一樣的地方。
比如賦值符號:
在ST中,將15傳遞給int類型的a,表達式可以為a :=15;
在信捷的C函數編程中,則是 a=15; ?
信捷的編程方式就是C語言。 而ST的編程方式不是C語言,是PASCAL。
下一節,介紹如何使用C函數進行編程開發信捷PLC
關注微信公眾號【工業技術互聯】還有技術交流群可以加入
總結
以上是生活随笔為你收集整理的信捷PLC之C函数编程(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: web项目从Myeclipse迁移到id
- 下一篇: 日志汇总:logging、logger