• 4

請教自動控制業前輩 想跳脫PLC轉PC寫程式 的方向

PLC當然簡單,因為它是應用而不是開發。
目前還沒有遇過客戶不會變更案件的,只是看專案能不能預料到,或是能不能擋掉。

進入職場後有種技能,誰先掌握了誰就能升官,
那就是說服能力!
並不是只專業知識不重要,但是說服能力可以減少30%以上的成本(避免重工),

還是那句話先把一項專業磨亮吧,
一來學新技能時還有退路,二來順便練工作態度!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PLC程式語言真的不難,相信我,如果熟練後不培養別的技能,未來一定會被取代掉,
沒發現嗎?現在的PLC程式比五年前要簡單了,因為應用產品只會越來越簡單、門檻越來越低。
(做過 食品、塑膠、印刷、射吹、木工、機械手臂、倉儲、印刷,我想應該算有經驗了吧。)
樓主 感覺像是在自動控制工作,幫設備公司接下軟體,我以前也從事類似的工作,但不得不跟你說,只要工作內容是設備業裡的純PLC&PC 在台灣大概都是這樣環境,不過也不是沒解,往上端就是設備廠的電控人員而不是軟體下包,除了規劃還要跟機械設計搭配,
往下端就是多學點其他種類的PLC跟程式架構,程式架構有時候用講的是沒有體會,實際跑出問題才知道架構問題。但是過度架構分支也會造成困擾。最後就是整個跳脫到外商學歐美架構的PLC。這條路走久了怎麼碰都是那些人,建立好人脈。總會有讓你可以妥協的工作環境。
來湊個熱鬧,這個是多年前在職訓時,考完證照自由練習時寫著玩的

PLC是fx2n (還是3U我忘了,不過其實沒差,都很爛)

兩顆1pg模組,伺服平台是職訓局的訓練設備。

當然以專業的角度是不值一提,不過敢問各位,如果當做練習的話,你會怎麼寫出這個玩具?

按這裡檢視外部影片 (按這裡在新視窗中開啟影片)

yagami7215 wrote:
不過敢問各位,如果當做練習的話,你會怎麼寫出這個玩具?...(恕刪)


PLC太多人會了!
不妨試著以時間中斷來產生sampling time,抓encoder pulses直接用PID來控制x與y軸的馬達!
這才是真正的伺服控制啊!

soullo7 wrote:
intouch.....(恕刪)



InTouch + System Platform


buzzbee wrote:
PLC太多人會了!...(恕刪)


1pg哪有什麼抓encoder pluse的功能.....

不過實際上的確高階的伺服在做路徑追隨時就是用sampling period比對setpoint & feedback position 得到position error.

把position error 丟進feedback loop 裡運算,再加上feed forward 來實現最佳追隨精度

Position loop 的feedback 演算說實話並不難,別說網路上有現成的可以抄

PLC大多都內建好PID了,只要自己調參數就好。 feed ford其實比PID還簡單,連迴饋都不需要

所以我倒不覺得control loop 是多困難的東西,兩軸的路徑演算反而是另一個坎。
Howard_Z

control loop,不是很困難。難在如何使用。比如你知道你的位置控制不是控制位置嗎?你知道位置環PID、前饋和速度環在物理上的意義嗎?數字如何貼切的移到物理上,就是應用工程師的功力了。

2025-06-30 11:19

yagami7215 wrote:
1pg哪有什麼抓encoder...(恕刪)


不,我是順着樓主的題目來說的!
用pc中的時間中斷產生sampling time來做pid或其他控制,
完全不使用PLC.
PLC的能力有限,系統階數高時,其中的PID就軟掉了;
非線性大一點,PID也只能一邊玩沙;
時間延遲多一些,PID更是束手待斃。
千萬不要死守著PLC來託付終生啊!
如果你會在pc或其他平台上實現PID,
再學其他控制法則就容易多了!

buzzbee wrote:
不,我是順着樓主的...(恕刪)


原來你是指PC

不過在PC上必須要有RTOS的前提下,中斷時間取得的Sampling period 才有可信度

在萬惡的windows下千萬別期待太多

現在PC base的工控,如果是非即時需求的邏輯控制,是不太需要考慮real time的問題

但如果是伺服控制,是必須要考慮到real time的需求的

所以目前的解決方案,不管是pluse command card或是各種通訊卡(Ether CAT、SERCOS、ProfiNET......)

都是在硬體上實現real time。這個會嚴重限制pc base在application layer 能做到的程度


另一個層面來說,其實伺服的PID演算最好是在驅動器端來做,畢竟就算是real time架構

如果要透過通訊將P.E.傳回控制端,演算後再透過通訊丟給驅動器

中間會有兩個通訊延遲 + 至少一個演算週期的時間誤差,對高精度控制來說是非常不利的

yagami7215 wrote:
原來你是指PC不過...(恕刪)


沒這麼困難啦,找一台IPC,使用DOS直接抓timer interrupt就可以玩所有的遊戲了!
這種real time是標準的hard real time,準的很喔,可以用示波器來檢驗的。
在這種real time environment中,可以實現各種控制法則。
在interrupt service routine中如果懂得簡單寫一個dispatcher來做內文切換,
也可以弄出一個可靠的multi-tasking環境,
如此自己寫一個PLC也並不困難了。
往PC走自動控制的路其實很有搞頭,雖然現在有很多現成的工具可用,
我還是傾向於自己從頭建立環境,如此比較不會受制於人。


buzzbee wrote:
沒這麼困難啦,找一...(恕刪)


媽呀~ 這真的是在家裡養頭牛的狀況了

事實上這不只是難度高,需要克服的問題超級多,理想很好,但現實很殘酷

因為你不可能真的只單純在PC上有穩定的取樣週期就好

工控一定必須跟外部設備交握,就算是最簡單的DI/O交握,不涉及任何的通訊協定

硬體上也要有IO卡,除非你真的只要並列阜就夠用了.....

一旦涉及到硬體層,驅動程式就是很大的問題。如果買硬體介面還要先確定廠商有提供DOS的驅動程式.....

這年頭要找還有DOS下驅動程式的硬體有多難啊.....

難不成也要自己寫驅動?

就更別提DOS環境下開發出來的HMI在現代根本不堪使用

使用DOS來開發PC Base絕對不是一個正確的方向,投入太多回收太少

唯一得利的只有個人的知識跟經驗,PC技能會點爆,但更可能是直接陣亡

而另一個問題是,如果在PC上搞到這個程度,就不可能只用在純Pluse chain command的伺服上,根本殺雞用牛刀

如果要走通訊的話,回到一開始的問題,驅動程式自己寫根本逆天啊

再說現成的通訊卡都有硬體real time了

自己從頭搞是不錯,但真的有必要想喝奶在家裡養頭牛嗎?
  • 4
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?