西門子產(chǎn)品代理商哪家服務(wù) 好 西門子產(chǎn)品代理商哪家服務(wù) 好
建立構(gòu)造
構(gòu)造(STRUCT)只能在數(shù)據(jù)塊或變量聲明表中定義。圖5.7所示為由整數(shù)(存放數(shù)量)、字節(jié)(存放原始數(shù)據(jù))、字符(存放控制碼)、浮點數(shù)(存放溫度)、布爾數(shù)(完成標(biāo)志信號)組成的構(gòu)造。該構(gòu)造的名稱為Stack_1。
2) 賦初始值
按每個元素的類型和名稱給構(gòu)造的每個元素賦初始值。并將其寫入圖5.8中Initial Value(初始值欄)的相應(yīng)行中。例如,可以分配如下初始值:
Amount=0
Original_data=B#l6#0
Control_code=“Z”
Temperature=98.6
End:=FALSE
3) 訪問構(gòu)造
(1) 用符號地址訪問:如MOTO.Stack_1.Temperature,其中,MOTO為構(gòu)造所在數(shù)據(jù)塊DB20的符號名。
(2) 用物理地址訪問:如Stack_l從DB20的字節(jié)0開始存放,Amount的物理地址是DB20.DBW0,Temperature的地址為DB20.DBD4。
4) 利用構(gòu)造傳遞參數(shù)
構(gòu)造可以作為參數(shù)來傳遞。將構(gòu)造作為參數(shù)傳遞時,要求形式參數(shù)和實際參數(shù)必須有同樣的數(shù)據(jù)組織結(jié)構(gòu)、相同的數(shù)據(jù)類型,并按相同的順序排列。
3. 用戶數(shù)據(jù)類型
STEP 7允許將基本數(shù)據(jù)類型或復(fù)式數(shù)據(jù)類型組合成用戶自己定義的數(shù)據(jù)類型,這種類型稱為用戶數(shù)據(jù)類型或UDT。用戶數(shù)據(jù)類型必須首先單獨建立,并存放在稱為UDT的特殊數(shù)據(jù)塊中,見圖5.8。
圖5.8是用“程序編輯器”建立的一個UDT,其數(shù)據(jù)組織結(jié)構(gòu)與圖5.7相同,該用戶數(shù)據(jù)類型被定義為UDT200,并單獨存儲在被稱為UDT200的特殊塊中。也可以為UDT200建立符號名(如process_data),但是,命名只能在符號表中進行。圖5.9給出了一個使用UDT定義數(shù)據(jù)塊(如DBl0)的例子,數(shù)據(jù)塊DBl0中定義兩個變量,一個為整型,另一個為用戶數(shù)據(jù)類型(UDT200)。從圖中可以看出,數(shù)據(jù)塊中UDT的用法與基本數(shù)據(jù)類型的用法類似。
用符號地址或物理地址兩種方式可以訪問UDT中的變量。例如,在DB10中定義了圖5.9格式的數(shù)據(jù),DB10的符號名為Process,訪問Amount變量可分別寫為DB10.DBW 2或Process.Stack_2.Amount。
建立用戶數(shù)據(jù)類型的目的是為了將UDT作為一種數(shù)據(jù)類型使用,以方便定義多個結(jié)構(gòu)相同的構(gòu)造變量。圖5.9建立的Stack_2與圖5.7建立的Stack_1相比,不僅大小結(jié)構(gòu)*相同,而且對Stack_1和Stack_2中元素的訪問方法也*相同。在建立DB10時,由于使用了UDT而使得數(shù)據(jù)塊建立過程方便快捷。在多處使用同樣的UDT時,這一優(yōu)點將更加突出。
程序結(jié)構(gòu)設(shè)計
STEP 7不僅從不同層次充分支持合理的程序結(jié)構(gòu)設(shè)計,而且也簡化了結(jié)構(gòu)設(shè)計的復(fù)雜程度。
一個復(fù)雜的自動化過程可以被分解并定義為一個或多個項目(PROJECT);而對于每個項目,又可以進一步分解并定義給一個或多個CPU,每個CPU都有一個控制程序(CPU_PROGRAM)。圖5.10顯示了一個樣本過程,它分成4個不同的項目:項目1和項目2只有一個CPU,而項目3和項目4有多個CPU。這樣,一個很復(fù)雜的控制任務(wù)的結(jié)構(gòu)設(shè)計,就被簡化為各個CPU程序的結(jié)構(gòu)設(shè)計。項目間或項目中的各CPU程序之間,能以某種方式聯(lián)網(wǎng),實現(xiàn)信息共享。如在S7協(xié)議支持下,用MPI網(wǎng)以全局?jǐn)?shù)據(jù)通信的方式可方便地建立起聯(lián)系,實現(xiàn)一個項目中各CPU共享信息