幸運大彎鉤
微信1570478188,歡迎各位同行交流
級別: 探索解密
![]() |
![]() 有沒有大神知道三菱的gx works3里的FB類型,宏類型與子程序類型有什么區別? 還有這個MC/MCR控制EN是指只有在EN條件滿足時才掃描執行FB里的程序嗎? ![]() ![]() 還有更詭異的是FB使用宏類型時, FB接口類型為input類型,居然可以在fb內部改變input接口的狀態,復位或者改變圖中M0和D0的值,這可是input接口啊只讀的,讓我想不明白,注:只有在FB為宏類型時才可以。 還要吐槽下三菱的fb,接口占用的梯形圖空間大就算了,一個頁面都看不到幾行梯形圖,最惡心的是他的inout類型接口,居然占用2個接口,一個在輸入側一個在輸出側,提過意見了那么多年了也不改,沒見過這么惡心的plc。 [ 此帖被幸運大彎鉤在2025-03-27 17:34重新編輯 ] |
|
---|---|---|
|
zmrs163
級別: 家園常客
![]() |
子程序就是一段程序存放在一個位置,執行時跳轉過去,宏類型編譯時會在調用處展開代碼,更浪費步數,早期子程序有bug,重復調用內部變量不初始化出現很多莫名奇妙的Bug,EN就和西門子一樣的導通就執行內部代碼,然后分兩種,一種是MCR方式,一種是CJ方式,會影響你內部計數器以及上升沿等的工作模式。三菱的塊和西門子的塊執行邏輯也不一樣,變量其實是靜態變量,調用時會殘留上次的值。 [ 此帖被zmrs163在2025-03-28 10:14重新編輯 ] |
---|---|
|
zmrs163
級別: 家園?
![]() |
圖片:
![]() 說的好像子程序類類型就改不了一樣
|
---|---|
|
zmrs163
級別: 家園常客
![]() |
圖片:
![]()
圖片:
![]() 你可以校驗下然后看其編譯出來的結果。區別正如我所說的,宏類型就是FB在調用的地方展開,子程序就是調用,調用過程涉及了形參和實參的參數傳遞過程,而宏類型直接把FB展開把內部的變量用引腳的變量替換了,因此會出現你所說的結果。這只能說明三菱的軟件不好用,這種違背規范的程序編譯過程居然連警告都沒有
[ 此帖被zmrs163在2025-03-28 15:03重新編輯 ] |
---|---|
|