fczxjh
級別: 家園常客
![]() |
如題。在FB1中寫動作,FB2多重調用FB1,用DB2作為FB2的多重背景數據塊,OB1調用FB2時, 是否應該像博圖一樣創建一個新的數據塊,但好像依舊用DB2也沒有報錯 |
---|---|
|
愛釣魚的咸魚
級別: 探索解密
![]() |
正常來說肯定是要新建數據塊的,2個FB的數據存儲在一個DB塊,那你讀取的是哪個FB的數據, 這個就和雙線圈是一樣的,你可以寫,也許沒有報錯,不一定可以正常使用 |
---|---|
本帖最近評分記錄: |
sunzengli
級別: 論壇先鋒
![]() |
可以是可以,但沒必要。 數據沖突問題:由于兩個功能塊共用一個背景數據塊,若在編程時不小心,可能會出現數據覆蓋或沖突的情況。例如,FB1和FB2都對背景數據塊中的同一個變量進行寫操作,就可能導致數據不一致。因此,在設計功能塊和分配背景數據塊的存儲區域時,要確保每個功能塊使用獨立的變量區域。 程序可讀性和維護性:共用背景數據塊會使程序的邏輯變得復雜,降低程序的可讀性和維護性。在后期維護和調試時,可能難以分清每個功能塊對背景數據塊的操作。所以,在實際應用中,除非有特殊需求,一般建議為每個功能塊單獨創建背景數據塊。 |
---|---|
本帖最近評分記錄: |
fczxjh
級別: 家園常客
![]() |
后面又測試了下,實際上使用還是新建一個DB塊為好。 如果FB2不用新的標簽,DB3塊(OB1調用FB2時新建)和DB2(FB2的多重背景數據塊)的內容是一樣的, 但是當FB2新增了標簽,如加了一個引腳,那這個標簽會寄存在DB3內,而DB2內沒有。 也就是說如果FB2作為FC使用,則不需要建立數據塊,如果FB2作為FB使用自身是沒有背景數據塊的, 多重背景數據塊只存放FB2內重復使用的FB的背景數據塊。 如果把OB1的FB2調用回DB2,那DB2會加入FB2所添加的引腳 雖然看起來結果一樣,但多個FB用一個數據塊還是有未可知的風險,初次用還是像博圖一樣新建好了,不會出問題 [ 此帖被fczxjh在2025-04-07 17:58重新編輯 ] |
---|---|
|