回收西門子模塊6ES75511AB000AB0 回收西門子模塊6ES75511AB000AB0
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)以全局數(shù)據(jù)通信的方式可方便地建立起聯(lián)系,實現(xiàn)一個項目中各CPU共享信息
典型的情況是一個過程控制任務(wù)只有一個項目,該項目下也僅有一個CPU程序,每一個CPU程序又可依據(jù)時間特性或事件觸發(fā)特性的差異分類編入不同的組織塊(OB)中。例如,需要以固定時間間隔循環(huán)執(zhí)行的那部分程序編入組織塊OB35中,為PLC正常運行而需進行初始化的程序編入組織塊OBl00中。又如,由硬件觸發(fā)的中斷服務(wù)程序編入組織塊OB40中,對程序執(zhí)行中產(chǎn)生的同步錯誤的響應(yīng)處理程序編入組織塊OB121或OB122中。
-
對于各組織塊中的程序,可以根據(jù)其復(fù)雜程度分別選用線性、分部或結(jié)構(gòu)化等三種形式中的一種程序結(jié)構(gòu)。由于組織塊OB1(主程序循環(huán))中的程序是應(yīng)用程序中主要的也是復(fù)雜的部分,因此,對OB1中的程序設(shè)計合理的結(jié)構(gòu)是十分重要的。下面分別說明三種典型結(jié)構(gòu)的特點及選用原則。