2014-11-02 183 views

回答

0

只有Twincat3具有C/C++集成。如果你想使用TC2,你將不得不使用結構化文本或其他可用語言之一[1]

此外,如果你偶然發現它在我的經驗更可能是經典的PLC語言之一[2]

0

使用特定語言取決於很多因素,如 - 什麼是目標系統 - 誰是最終用戶 - 面向對象和低層次的語言 的其他典型特徵 - 什麼其他庫/引用您計劃使用(間兼容性)

原則上,您可以使用C++和ST(或其他PLC語言)編寫代碼。還有,除了時間沒有具體的優點保存在學習ST

如果是小的,簡潔的應用程序,我建議使用ST。它的調試速度快,易於調試,類似於C/C++的語法

7

我在TwinCAT 3的ST和C/C++上都有豐富的經驗。在TC3中,C/C++語言環境使得它更容易意外地崩潰操作系統(BSOD),並且在你做這些事情時要做很多調試。這是因爲在TwinCAT 3中,用戶C/C++代碼在OS上的驅動程序空間中運行,以便實時運行。驅動程序的上下文也意味着你在代碼中可以做的事情非常有限,而無需跳過這些環節。

的C/C++東西好像在填充需求是不容易使用的TwinCAT的IEC 61131 PLC,如實施複雜的算法和不支持的硬件接口滿足待靶向。這個想法是所需的功能在C/C++中實現,而控制應用程序仍然以ST或其他IEC 61131-3語言實現,後者處理系統操作的大部分,並提供「粘合劑」以合併前者的功能進入更大的系統。

此外,雖然對TC3的PLC環境的文檔是不是最好的,這沒關係,很多比文檔的C/C++環境較好的地獄。別誤會我的意思;爲TwinCAT 3編寫低級組件的能力非常強大,經過深思熟慮,並且提供了大量功能,我們可以通過常規方式爲控制系統製作可重用的軟件組件,但這些控制系統仍然主要以ST。

+0

當然,ST運行在相同的驅動程序上下文中,如果你寫入已知的內核地址或壞指針,你也可以崩潰系統:)你也可以在ST編寫Windows驅動程序,如果你足夠冒險 - 不是一個完整的驅動程序,但幾乎所有的東西都可以節省一小部分的調用到ST實現中;) – 2018-01-23 19:43:24

-1

如果使用/使用了多於一個的CODESYS或符合IEC 61131的控制系統,ST是有點更輕便,這是另一個優點它具有超過C/C++,其不在標準,並且不始終支持(並且當它們時,並不總是相同的方式)。

正如@JBC上面所說的,當出現問題時,ST可以更容易排除故障,部分原因是編譯時更嚴格,部分原因是您可以編寫IEC檢查庫來檢查數組越界並在測試期間除以零錯誤(儘管將它們保留在生產系統中通常不是一個好主意)。

相關問題