在cfc中所連接的db塊必須是用戶數(shù)據(jù)塊(user db)。在cfc中通過菜單optionscustomizecompile/download… 可以查看和修改用戶數(shù)據(jù)塊的范圍,默認(rèn)范圍是db1-db60,超出該范圍的db塊在cfc中無法引用,如果引用了,cfc編譯時(shí)會(huì)提示錯(cuò)誤。
1. 對(duì)于db塊中定義的基本變量類型,可以在cfc中直接連接到該變量的符號(hào)名。前提是cfc中塊引腳的數(shù)據(jù)類型定義與db塊中的數(shù)據(jù)類型一致。
例如,引腳定義為real類型,則可以連接到db塊中定義為real類型的變量。如果類型不同,即使數(shù)據(jù)長(zhǎng)度一致也無法連接,例如real和dword無法連接。如下圖所示:
2. any類型的引腳可以連接到db塊中的任何類型的變量,包括基本類型和array,struct等復(fù)雜類型。如下圖所示:
3. 如果要連接復(fù)雜變量類型(例如array, udt, struct等)中的某個(gè)變量,則無法通過符號(hào)名稱連接,這種情況下只能使用絕對(duì)地址連接。絕對(duì)地址的引用語法如下:
變量類型
引用語法示例
bit
db1.dx2.0
byte
db1.db2
word
db1.dw2
dword
db1.dd2
在cfc中,絕對(duì)地址引用可以直接連接到bool,byte,word和dword類型的引腳上,但是無法連接到int, dint, real等類型的引腳。如果要連接此類引腳,還需要在連接之前通過類型轉(zhuǎn)換塊進(jìn)行轉(zhuǎn)換。
在下圖所示例子中,要將一個(gè)int類型的引腳連接到db塊中一個(gè)包含5個(gè)int值的array變量的第二個(gè)值。array的起始地址為18,因此第二個(gè)值的地址為20。在cfc中應(yīng)該連接的地址為“db1.dw20”,由于int類型的引腳無法直接連接,因此通過w_i轉(zhuǎn)換塊實(shí)現(xiàn)連接。