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