幸運(yùn)大彎鉤
微信1570478188,歡迎各位同行交流
級(jí)別: 探索解密
![]() |
![]() 有沒有大神知道三菱的gx works3里的FB類型,宏類型與子程序類型有什么區(qū)別? 還有這個(gè)MC/MCR控制EN是指只有在EN條件滿足時(shí)才掃描執(zhí)行FB里的程序嗎? ![]() ![]() 還有更詭異的是FB使用宏類型時(shí), FB接口類型為input類型,居然可以在fb內(nèi)部改變input接口的狀態(tài),復(fù)位或者改變圖中M0和D0的值,這可是input接口啊只讀的,讓我想不明白,注:只有在FB為宏類型時(shí)才可以。 還要吐槽下三菱的fb,接口占用的梯形圖空間大就算了,一個(gè)頁面都看不到幾行梯形圖,最惡心的是他的inout類型接口,居然占用2個(gè)接口,一個(gè)在輸入側(cè)一個(gè)在輸出側(cè),提過意見了那么多年了也不改,沒見過這么惡心的plc。 [ 此帖被幸運(yùn)大彎鉤在2025-03-27 17:34重新編輯 ] |
|
---|---|---|
|
幸運(yùn)大彎鉤
微信1570478188,歡迎各位同行交流
級(jí)別: 探索解密
![]() |
這三菱plc不管新舊的軟件都不支持通過變址寄存器動(dòng)態(tài)訪問數(shù)據(jù)寄存器的特定位,也就是D0Z0.0 或 Array[Index].BitX,還要經(jīng)過種種轉(zhuǎn)換,真是蛋疼,西門子博途甚至匯川小型plc autoshop都支持了,它還在原地踏步 |
|
---|---|---|
|
zmrs163
級(jí)別: 家園常客
![]() |
子程序就是一段程序存放在一個(gè)位置,執(zhí)行時(shí)跳轉(zhuǎn)過去,宏類型編譯時(shí)會(huì)在調(diào)用處展開代碼,更浪費(fèi)步數(shù),早期子程序有bug,重復(fù)調(diào)用內(nèi)部變量不初始化出現(xiàn)很多莫名奇妙的Bug,EN就和西門子一樣的導(dǎo)通就執(zhí)行內(nèi)部代碼,然后分兩種,一種是MCR方式,一種是CJ方式,會(huì)影響你內(nèi)部計(jì)數(shù)器以及上升沿等的工作模式。三菱的塊和西門子的塊執(zhí)行邏輯也不一樣,變量其實(shí)是靜態(tài)變量,調(diào)用時(shí)會(huì)殘留上次的值。 [ 此帖被zmrs163在2025-03-28 10:14重新編輯 ] |
---|---|
|
幸運(yùn)大彎鉤
微信1570478188,歡迎各位同行交流
級(jí)別: 探索解密
![]() |
為啥用宏類型的fb時(shí),fb內(nèi)部可以改變input接口的值? |
|
---|---|---|
|
zmrs163
級(jí)別: 家園常客
![]() |
圖片:
![]() 說的好像子程序類類型就改不了一樣
|
---|---|
|
幸運(yùn)大彎鉤
微信1570478188,歡迎各位同行交流
級(jí)別: 探索解密
![]() |
你fb里面可以復(fù)位in1? |
|
---|---|---|
|
zmrs163
級(jí)別: 家園常客
![]() |
圖片:
![]()
圖片:
![]() 你可以校驗(yàn)下然后看其編譯出來的結(jié)果。區(qū)別正如我所說的,宏類型就是FB在調(diào)用的地方展開,子程序就是調(diào)用,調(diào)用過程涉及了形參和實(shí)參的參數(shù)傳遞過程,而宏類型直接把FB展開把內(nèi)部的變量用引腳的變量替換了,因此會(huì)出現(xiàn)你所說的結(jié)果。這只能說明三菱的軟件不好用,這種違背規(guī)范的程序編譯過程居然連警告都沒有
[ 此帖被zmrs163在2025-03-28 15:03重新編輯 ] |
---|---|
|
幸運(yùn)大彎鉤
微信1570478188,歡迎各位同行交流
級(jí)別: 探索解密
![]() |
確實(shí),那就是說用宏類型的fb會(huì)比子程序類型fb占用的程序步要多? 但是宏類型fb有個(gè)優(yōu)點(diǎn),就是input類型接口有inout類型的屬性,畢竟三菱的fb inout太難用了,還要占一個(gè)輸出引腳,太占空間了 |
|
---|---|---|
|