PLC中的數據類型有哪些_第1頁
PLC中的數據類型有哪些_第2頁
PLC中的數據類型有哪些_第3頁
PLC中的數據類型有哪些_第4頁
PLC中的數據類型有哪些_第5頁
已閱讀5頁,還剩14頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

/PLC的數據類型在工業自動化的控制系統中,PLC(可編程邏輯控制器)是一種非常常見的控制器,比較有名的PLC品牌,國外有西門子、三菱、歐姆龍、施耐德等,國內有信捷、臺達等。PLC作為工業現場使用的控制器,具有安全穩定的特性,適用于工業現場復雜的生產環境以與對于通訊的實時性的高要求。對于工廠的制造設備來說,數據的傳輸,是非常重要的,一般來說,一個完整的工廠內,充滿了各種傳感器、儀器儀表、執行器、驅動器、電機等元器件,它們之間通過電線或總線連接,將現場設備產生的實時生產數據,傳送到PLC中,經過PLC中的程序的處理,最終輸出到現場的各個執行器,形成了一個周而復始的自動化過程。如果我們要使用PLC來進行編程,首先就要了解PLC的可使用的數據類型有哪些?我們以西門子S7-1200系列的PLC為例,來進行說明。(西門子的PLC市場占有率在所以PLC品牌中居首位,是十分具有代表性的品牌)我們先來看1200的基本數據類型,包括:位和位序列:位和位序列主要包括以下類型:位(Bit)、字節(Byte)、字(Word)、雙字(DWORD),西門子官方將這四類綜合在一起,是因為這四個數據類型都是由位組成。首先來說“位”,即一個Bit,也就是布爾量(BOOL),其數值為二進制的0或者1,其詳細信息可見下圖(1),眾所周知,計算機是一個二進制的系統,這是所有計算的基礎,無論什么數據,最終都會轉化為二進制,才能被計算機的芯片識別,PLC也是一種計算機,所以,也是以二進制為基礎的。位數據可以表示一個傳感器的狀態,比如0表示無信號,1表示有信號,也可以作為輸出狀態,比如0表示電磁閥或電機無輸出,1表示閥體動作或電機運行,等等,在PLC中,特別是梯形圖邏輯中,位數據是最常用的一種數據類型,盡管每個位只能表示兩個狀態,但當多個位邏輯組合在一起,就可以形成一個復雜的邏輯條件,從而實現復雜的動作控制。Bit11第二個是“字節”,即一個Byte,在對應關系上,每個字節有8個位(Bit),如果寫成等式,即:1Byte=8Bits。Byte:Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit00010001000100010假設Byte0,在西門子PLC中,可以表示為MB0或者QB0等,其中M、Q為存儲區域類型,如M為中間存儲區,Q為輸出存儲區。以M區為例,上面的Byte可以表示為:MB0=00001001(一個字節中的位從左到右,依次從高位到低位),即:M0.0=1(Bit0),M0.1=0(Bit1),M0.2=0(Bit2),M0.3=1(Bit3),M0.4=0(Bit4),M0.5=0(Bit5),M0.6=0(Bit6),M0.7=0(Bit7)。其中M0.0、M0.1等寫法是字節MB0中的各個位的表示形式。因為一個字節有8個位,所以每個字節的數值就不只0或者1這么簡單,它至多可以表示2的8次方個值,十進制范圍為0~255,或者-128~+127。第三個是字,即一個Word,與字節類似,只不過字的位數更多,有16位,寫成等式為:1Word=16Bits,也可以寫成1Word=2Bytes。可以說,有了對字節的了解,那么字也不成問題,簡單理解,就是兩個字節加起來,即是一個字。不過,在西門子的PLC中,關于字的位數據表示,有一個值得注意的問題,即所謂“大端”、“小端”問題。這么來說,1Word由兩個字節組成,以M區舉例,寫成MW0,也就是MB0+MB1。請看下面的表示:MB0:bit7bit6bit5bit4bit3bit2bit1bit0MW0:bit15bit14bit13bit12bit11bit10bit9bit8bit7bit6bit5bit4bit3bit2bit1bit0如果按照從左到右,從高位到低位的順序,bit15-bit8應該是MB1,bit7-bit0應該是MB0,這樣一一對應,也就是所謂的“小端”模式,然而,西門子采用的是大端模式,也就是說,bit15-bit8表示的是MB0,bit7-bit0表示的是MB1,依舊是從左到右,不過是寫成:Bit15bit8bit7bit0MB1MB0MB1MB0這個地方容易造成的困惑在于,當你把word當做一個整體時,比如MW0,這時如果讓你表示MW0的第8個位是多少,你可能需要注意,它應該是M0.0,而不是M1.0。第四個是雙字,即DWord,與字節和字的關系類似,雙字就是兩個字的組合,即1DWord=2Word,注意,雙字也是“大端”模式,所以,在表示其中的某一位時,需要特別注意。以上是位以與位序列的數據類型的說明,下圖(1)中有詳細的列舉,可以說位以與位序列的數據類型,是最常用的數據類型之一。而且,這些數據類型不只是在PLC中有此概念,它們是整個計算機系統的基本概念。圖(1)整數數據類型在1200中,整數分為USint(8位無符號)、Sint(8位有符號)、Uint(16位無符號)、Int(16位有符號)、UDint(32位無符號)、Dint(32位有符號)六種。顧名思義,整數類型是用來表示整數數值的,其實,整數數據類型完全可以放在上面的位數據類型中一起說明,從本質上來說,它與位序列的byte、Word、Dword沒有區別,只是在PLC中,整數數據被專門表示用于整數值的運算。浮點型實數數據類型S7-1200中,實數類型有兩種,分別是Real(32位)、LReal(64位),即32位單精度、64位雙精度實數。二者的差別除了數值表示范圍之外,最主要的事顯示精度的區別,其中Real類型,即單精度實數,最高可以顯示6位有效數字,而LReal類型,最高可顯示15位有效數字,從精度上來說,有非常大的提升,適用于對于精度要求非常高的使用場景。這里需要注意的地方,就是精度,實際上,當你使用浮點數進行運算的時候,大多數時候也會對精度有所要求,這時候,如果對精度要求超過6位數時,就要特別注意,單精度實數的運算問題,最好采用雙精度。時間和日期數據類型PLC作為工業控制器,對于定時器這類指令的需求,是非常大的,在S7-1200中,西門子提供了專用于時間和日期顯示的數據類型,分別是:Time:32位Date:16位TimeofDay:32位本質上,日期數據只是一種表示形式,其基礎依舊是以位為基礎的數據,TIME數據作為有符號雙整數存儲,基本單位為毫秒。存儲的數值是多少,就代表有多少ms。編輯時可以選擇性使用日期(d)、小時(h)、分鐘(m)、秒(s)和毫秒(ms)作為單位。

不需要指定全部時間單位。例如,T#5h10s和500h均有效。所有指定單位值的組合值不能超過以毫秒表示的時間日期類型的上限或下限(-2,147,483,648ms到+2,147,483,647ms)。DATE數據作為無符號整數值存儲,被解釋為添加到基礎日期1990年1月1日的天數,用以獲取指定日期。編輯器格式必須指定年、月和日。TOD(TIME_OF_DAY)數據作為無符號雙整數值存儲,被解釋為自指定日期的凌晨算起的毫秒數(凌晨=0ms)。必須指定小時(24小時/天)、分鐘和秒。可以選擇指定小數秒格式。其他數據類型:1、結構數據類型(Struct)上面所說的,都是1200的基本數據類型,而實際使用中,對于數據的使用是多樣的,有的時候,可能需要將多個基本數據類型集中在一起,最大的優點,是一種數據管理,即方便將某個元素的多種屬性集中在一起,方便編程人員進行數據調用和管理。Struct可以嵌套,最多8層,實際上,它與西門子的另一種數據類型UDT(自定義數據)比較類似,但相比之下,有一些缺點:維護成本增加:如果對一個Struct進行了多次復制,則在更改過程中該Struct也必需進行相應的多次更改。Struct與PLC數據類型(UDT)的相同結構不兼容。由于系統會檢查所有結構元素的類型是否匹配,因而會導致性能下降。存儲空間要求增加:每個Struct都是一個單獨的對象,其描述信息將加載到PLC中。所以,需要使用Struct類型時,也可以使用PLC數據類型(UDT)代替。UDTPLC數據類型(UDT)從TIA博途V11開始,S7-1200支持PLC數據類型(UDT)。UDT類型是一種由多個不同數據類型元素組成的數據結構,元素可以是基本數據類型,也可以是STRUCT、數組等復雜數據類型以與其它UDT等。UDT類型嵌套UDT類型的深度限制為8級。

UDT類型可以在DB、OB/FC/FB接口區處使用。從TIA博途V13SP1開始,S7-1200V4.0開始,PLC變量表中的I和Q也可以使用UDT類型。

UDT類型可在程序中統一更改和重復使用,一旦某UDT類型發生修改,執行軟件全部編譯可以自動更新所有使用該數據類型的變量。

定義為UDT類型的變量在程序中可作為一個變量整體使用,也可單獨使用組成該變量的元素。此外還可以在新建DB塊時,直接創建UDT類型的DB,該DB只包含一個UDT類型的變量。

UDT類型作為整體使用時,可以與Variant、DB_ANY類型與相關指令默契配合。

理論上來說,UDT是Struct類型的升級替代,功能基本完全兼容Struct類型。UDT建立與應用案例1.新建UDT點擊CPU菜單下,PLC數據類型中的“添加新數據類型”按鈕,如圖1所示。圖1新建UDT2.在彈出頁面可以添加需要的變量、類型、起始值、注釋等,如圖2所示。圖2定義UDT內的變量3.在圖2紅框處右鍵屬性常規,可以修改該數據類型的名稱,如圖3所示。圖3修改UDT名稱4.DB中使用,如圖4所示。圖4定義UDT類型的變量5.程序中使用,類似于Struct,如圖5所示。圖5UDT的使用6.根據UDT定義DB塊,如圖6所示。圖6建立UDT類型的DB此時打開DB塊,可以發現和在DB中新建UDT變量差了層級,在使用內部變量沒有太多差別。并且這種方式下,除非修改UDT,否則無法更改DB塊中的內容,如圖7所示,變量均為灰色。重要用途:參見DB_ANY。圖7UDT類型的DB展開7.從TIA博途V14SP1開始,相同結構,但不同名稱的UDT的變量,可以直接復制,如圖8-11所示。圖8定義不同名稱的UDT,但內部變量類型相同圖9使用UDT建立變量圖10UDT類型間的MOVESCL的版本程序,如圖11所示圖

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論