幸運大彎鉤
微信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重新編輯 ] |
|
---|---|---|
|
幸運大彎鉤
微信1570478188,歡迎各位同行交流
級別: 探索解密
![]() |
這三菱plc不管新舊的軟件都不支持通過變址寄存器動態訪問數據寄存器的特定位,也就是D0Z0.0 或 Array[Index].BitX,還要經過種種轉換,真是蛋疼,西門子博途甚至匯川小型plc autoshop都支持了,它還在原地踏步 |
|
---|---|---|
|
zmrs163
級別: 家園常客
![]() |
子程序就是一段程序存放在一個位置,執行時跳轉過去,宏類型編譯時會在調用處展開代碼,更浪費步數,早期子程序有bug,重復調用內部變量不初始化出現很多莫名奇妙的Bug,EN就和西門子一樣的導通就執行內部代碼,然后分兩種,一種是MCR方式,一種是CJ方式,會影響你內部計數器以及上升沿等的工作模式。三菱的塊和西門子的塊執行邏輯也不一樣,變量其實是靜態變量,調用時會殘留上次的值。 [ 此帖被zmrs163在2025-03-28 10:14重新編輯 ] |
---|---|
|
幸運大彎鉤
微信1570478188,歡迎各位同行交流
級別: 探索解密
![]() |
為啥用宏類型的fb時,fb內部可以改變input接口的值? |
|
---|---|---|
|
zmrs163
級別: 家園常客
![]() |
圖片:
![]() 說的好像子程序類類型就改不了一樣
|
---|---|
|
幸運大彎鉤
微信1570478188,歡迎各位同行交流
級別: 探索解密
![]() |
你fb里面可以復位in1? |
|
---|---|---|
|
zmrs163
級別: 家園常客
![]() |
圖片:
![]()
圖片:
![]() 你可以校驗下然后看其編譯出來的結果。區別正如我所說的,宏類型就是FB在調用的地方展開,子程序就是調用,調用過程涉及了形參和實參的參數傳遞過程,而宏類型直接把FB展開把內部的變量用引腳的變量替換了,因此會出現你所說的結果。這只能說明三菱的軟件不好用,這種違背規范的程序編譯過程居然連警告都沒有
[ 此帖被zmrs163在2025-03-28 15:03重新編輯 ] |
---|---|
|
幸運大彎鉤
微信1570478188,歡迎各位同行交流
級別: 探索解密
![]() |
確實,那就是說用宏類型的fb會比子程序類型fb占用的程序步要多? 但是宏類型fb有個優點,就是input類型接口有inout類型的屬性,畢竟三菱的fb inout太難用了,還要占一個輸出引腳,太占空間了 |
|
---|---|---|
|