• #maker+t=market
  • 3D列印服務
  • COSPLAY 3D 建模
  • 1
  • 2
  • 3

Taiwan自動控制設備交流 造訪社團 » 用戶發文

原文網址 Jerry Chang
2020-03-12 09:40:32

請問有人用物件導向OOP寫過PLC程式嗎?目前各大PLC廠家對OOP的支援度如何?如三菱、Omron、西門子等。

小弟目前用TwinCAT 3 PLC寫IEC-61131-3 的ST語言。怕如果用太新的OOP功能(如interface, method, etc.),以後不容易porting到別家PLC...
感謝各位。

==補充說明==
# OOP = Object-oriented programing # 物件導向程式設計

舉個例子,假設機台有很多不同制動器(伺服、步進、氣壓鋼、油壓缸...)。
一般做法是每個制動器都寫一個檔案。或用一堆switch case去區分它是哪個品牌。但這會造成程式越來越雜亂。尤其是新增功能或換馬達規格的時候,程式就會越長越肥或越改越亂。

然而對機台控制的邏輯來說,制動器的功能其實大同小異,只是從A走到B點而已。
那我們就化繁為簡,定義一個通用、抽象的制動器「類別」模版,它有「屬性」、「行為」和操作「介面」等資訊。
比如總行程、速度、當下位置、狀態、要傳什麼指令給它等等。

然後根據「類別」這個空白模板,把實際的規格填進去,創造不同的實體「物件」(真的制動器)

所以我們寫程式時,只需知道它屬於制動器「類別」,操作「介面」長怎樣,而不需知道太多細節(廠牌、規格、型號等)

好處是以後某個馬達停產、缺料,只要根據「類別」模版再創一個物件。上層邏輯都不用變。

長期來看,能省下很多開發心力。模組化的設計,也比較好維護,避免很多牽一髮而動全身的麻煩。

然而,若只是幾行的小程式,就不用考慮OOP了。幾個if else就能解決的問題,殺雞焉用牛刀。

以上是我目前寫OOP的心得。
主要來自之前C++的經驗。

林樹人
2020-03-12 10:03:20

呂俊毅
2020-03-12 10:04:42

Bill Lee
2020-03-12 10:22:47

Lewis Lee
2020-03-12 10:47:22

楊春生
2020-03-12 11:32:20

Jerry Chang
2020-03-12 13:10:58

陳炳宏
2020-03-12 13:52:59

Jerry Chang
2020-03-12 14:20:30

林樹人
2020-03-12 14:24:23

呂韋融
2020-03-12 15:40:22

楊春生
2020-03-12 15:56:38

楊春生
2020-03-12 15:58:59

楊春生
2020-03-12 16:03:19

呂韋融
2020-03-12 16:55:52

呂韋融
2020-03-12 16:56:40

Jerry Chen
2020-03-12 17:42:50

Sam Yang
2020-03-12 18:05:48

林大師
2020-03-12 19:02:00

蘇昱安
2020-03-12 19:28:05

吳志二
2020-03-12 19:37:33

劉昊玹
2020-03-12 20:10:51

楊岳庭
2020-03-12 22:24:15

Chou-Cheng Kuo
2020-03-12 22:32:22

Neo Zhang
2020-03-13 12:18:48

賴聲寬
2020-03-14 09:03:13


原文網址 Jerry Chang
2014-12-14 14:22:06

感謝批准加入

Raymond Wang
2014-12-15 21:58:03


 

討論主題

全不選 常用關鍵字