選單

在西門子程式設計中UDT使用中的那些小技巧

關於UDT必要要知道一些問題:

從資料型別的意義上說 UDT 並不被 CPU 所識別,而是在離執行緒序中自定義(組合)的資料型別。 S7 程式的自定義資料型別並不能裝載到 S7 CPU 中。UDT 是由遞增的編輯器建立並編輯或由原始檔的編譯而生成。 當在塊呼叫中進行變數傳遞時是不能將 UDT 作為記憶體地址區域來傳遞的。因此推薦將傳遞的變數指定為位元組資料型別並與其資料長度相一致,或者使用 UDT 的符號名來定義 IN, OUT 和 IN_OUT 引數,因為系統將自動生成相對應的地址。

UDT有什麼用呢?

UDT:概念就是使用者自定義資料型別,我們在程式設計中常常為了方便先建立一個UDT(跟建立DB塊的方法一樣),並寫好資料結構、資料型別等引數。

當需要建多個數據塊,資料塊的結構及資料型別又都是一樣的,這時候我們就可以使用UDT來做,方便而且快捷,不需要一個一個做。

但是UDT對於PLC程式執行其實不是必要的,比如我們在看離執行緒序時是有UDT的,但當你從PLC上傳一個程式(與離執行緒序時同一個程式),你會發現是沒有UDT的,如下圖所示:

圖1是離執行緒序:

在西門子程式設計中UDT使用中的那些小技巧

圖1 離執行緒序

圖2是線上程式,發現並沒有UDT

在西門子程式設計中UDT使用中的那些小技巧

那麼UDT怎麼用呢?

就是在新建DB塊時,在資料型別中選擇你建好的UDT即可,比如我下面的例子,我新建一個UDT1

在西門子程式設計中UDT使用中的那些小技巧

在新建資料塊DB1中新建一個數組,變數的型別選擇UDT1

在西門子程式設計中UDT使用中的那些小技巧

這樣就建立好了!可以透過資料檢視中來看

在西門子程式設計中UDT使用中的那些小技巧

當然也可以同樣應用於FB塊和FC功能中:

在西門子程式設計中UDT使用中的那些小技巧

在西門子程式設計中UDT使用中的那些小技巧