任意的數(shù)據(jù)類型的常數(shù)裝入S7-300的累加器1后,它的數(shù)據(jù)類型的屬性就消失了,剩下的只有0和1。這樣的數(shù)據(jù)傳送到定義了數(shù)據(jù)類型的變量中,該變量的數(shù)據(jù)類型當(dāng)然不會(huì)變,符號(hào)表管著它的,除非修改符號(hào)表。
符號(hào)表是管不住它的,只有編程者可以。
如果是全局變量,數(shù)據(jù)類型在符號(hào)表中定義,當(dāng)然是符號(hào)表直接管它。
除了符號(hào)表,F(xiàn)B、FC的局部變量表和數(shù)據(jù)塊中的變量都定義了數(shù)據(jù)類型。編程者必須通過這些東西來管數(shù)據(jù)類型。
我說過Word是多義詞,它用來作數(shù)據(jù)類型的名稱,也可以用來作量詞,表示存儲(chǔ)器是16位的。16位存儲(chǔ)器(Word)地址(例如MW0、LW0)沒有定義數(shù)據(jù)類型時(shí),它就沒有數(shù)據(jù)類型。
OB40的參數(shù)OB40_MDL_ADDR的數(shù)據(jù)類型為WORD,不能直接用于要求數(shù)據(jù)類型為INT的整數(shù)比較指令。用MOVE指令把OB40_MDL_ADDR的值傳送給MW10以后,MW10就可以用于比較指令了。MW10并沒有因此自動(dòng)獲得數(shù)據(jù)類型INT,只是CPU“認(rèn)為”MW10中的數(shù)據(jù)類型是INT。
數(shù)據(jù)類型是什么?我講過數(shù)據(jù)類型是人為規(guī)定的數(shù)據(jù)一個(gè)屬性。再打個(gè)比喻:有不良小販把白色的小雞染成五顏六色來騙小孩。放到水里一洗就變白了。如果把小雞看成數(shù)據(jù),染的顏色就是數(shù)據(jù)類型。把定義了數(shù)據(jù)類型的數(shù)據(jù)裝入絕對(duì)地址MW10或累加器(累加器也是一個(gè)特殊的絕對(duì)地址),數(shù)據(jù)類型的屬性就被剝?nèi)チ?,只剩下赤裸裸的?shù)據(jù)了,就像小雞的顏色被水洗掉了一樣。這時(shí)可以把數(shù)據(jù)當(dāng)作規(guī)定了長(zhǎng)度的各種數(shù)據(jù)類型來用。