任意的數(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)表,fb、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)チ耍皇O鲁嗦懵愕臄?shù)據(jù)了,就像小雞的顏色被水洗掉了一樣。這時(shí)可以把數(shù)據(jù)當(dāng)作規(guī)定了長(zhǎng)度的各種數(shù)據(jù)類型來用。