回覆列表
  • 1 # 工控人

    PLC的基本資料型別,我們如何在程式設計中選用

    資料在PLC是比較常用的元件,它的種類可以根據位數、用途進行劃分,比如16位資料、32位資料,有一般用的資料、停電保持用的以及特殊用的也就是系統資料暫存器。那我們首先看下資料構造,16位的最高位符號,0代表正數1代表負數,因此可以儲存-32768~+32767的數值,在程式設計時,使用應用指令對資料暫存器的數值進行讀出/寫入,此外,也可以用人機介面、顯示模組、程式設計工具直接進行讀出/寫入。

    那32位的資料則有兩個2個相鄰的資料暫存器構成,資料暫存器的高位編號大,低位編號小。如指定了低位側(例如: D0),高位側就自動佔有緊接的號碼(例如: D1)。因為在我們程式設計時對32位資料的處理一定要小心,地址不能重複佔用否則會出錯,特別是四則運算的時候,當資料的結果超過32位會自動佔用高位,乘法、除法的結果肯定是32位的。

    除了位數需要注意,我們還需要根據用途來選擇資料型別,一般用的資料暫存器在停電後將會清零,如果我們在程式設計的時候需要儲存資料例如一些裝置的工藝引數等在設定好以後就不能清除。這時候就要用停電保持專用的資料型別,可以記錄裝置執行情況、故障報警燈資料。

    還有一類就是PLC的系統暫存器,如看門狗定時器、版本資訊、電池電壓、時鐘訊號、通訊設定的引數、運動控制定位的儲存的脈衝訊號等,有的能讀取能寫入,有的則禁止寫入。比如實時時鐘訊號,我們既可以寫入時間資料進行校正,同時也能讀取時間進行呼叫。

    除了資料暫存器、我們還有擴充套件檔案暫存器、變址暫存器等都能儲存資料的,以上就是

  • 2 # 控制研究控

    不管學習那種品牌的PLC, 首先看的就是I/O的表示方法,以及系統的變數區域劃分,而後就看資料的型別,當前邊這些都搞清楚了,就可以去看指令的具體用法了 !

    ---至少我個人接觸一種新的PLC時候是這樣去看的,這樣才能快速的瞭解一個PLC。

    當然,上邊是說了一點經驗,還是回到你的問題,plc的基本資料型別,當你學會了一種PLC後,應該說絕大多數的PLC的基本資料型別都是一樣的!如果你學過一些計算機程式語言比如C語言或者什麼,那麼就更容易理解了!

    基本上就是bool,byte,word,int,Dword,Dint,real這些,還有定時器T,計數器C,這些!

    其實,我們在程式設計中怎樣選用這些資料型別,主要是和使用的指令相關,更核心的是這種資料型別的本質,比如:

    bool就是一個二進位制位,狀態就只有1和0,因此它就用來當做開關的那些點,可以表示接通或者斷開!

    byte呢就是8個位的長度,可以表示的數值範圍是2的8次方,而且最高位是符號的話,就只能到+127,就是說你要是計算或者什麼,你的數值是大於127的就不能用byte型別的變數!

    同樣的int,word,Dint,Dword也是有資料範圍的,這是我們使用的最重要原因,就是我的運算結果要能被表示出來!

    real,就是實數也叫浮點數,就是表示帶小數點的數,所以你如果想用會帶小數點的數值,就要用real型別的變數!

    而T和C就是PLC的特殊規定了,T1表示1號定時器,C1表示1號定時!

    基本的資料型別基本也就是我說的了,當然還有Sint 這些,其實你多上手程式設計操作,如果你用錯了資料型別,編譯的時候都會有提示,要麼就是溢位,產生錯誤的結果,多做幾個專案,慢慢就瞭解了!

  • 3 # 劍指工控

    PLC的基本資料型別,我們常用的有如下幾種:

    1. 布林型別 BOOL ,也就是我們常說的0和1,也可以理解為 True和False,對於PLC來說就是DI或者DO點的輸入或輸出狀態,我們一般用Bool型別表示。對於西門子PLC的DI點,可以使用 I0.0表示,DO點用Q0.0,還有M0.0,V0.0等表示。所以會經常看到 I0.0~I0.7,布林型別只佔用1位。

    2. 位元組型別 Byte,一個位元組有8位,在PLC的儲存器裡,比如 IB1,MB1,就代表位元組,那麼將位元組分解後是8位,在第一項里布爾型別中提到 I0.0~I0.7就可以組成一個位元組IB0,M0.0~M0.7組成MB0,所以我們想要提高讀取速度,可以直接使用位元組讀取,然後再進行分解。資料範圍0~255。

    3. 字型別 WORD,一個字包含16位,比如MW0,他就是由MB0和MB1組成,在使用字型別時有人使用組態軟體讀取的值不對,那麼就有可能是位元組的排列順序不一樣造成,可以對高低位元組進行交換,很多軟體都有這個功能。資料範圍0~65535

    4. 雙字型別 Double Word,雙字包含32位,由2個字組成,比如DW0,它包含2個字MW0和MW2,包含4個位元組MB0,MB1,MB2,MB3,所以很多人在使用暫存器時會碰到各種問題,那麼就有可能使用的暫存器存在交叉的問題。比如DW0,DW2這兩個雙字就存在地址交叉的問題。資料範圍 0~4294967295

    5. 整數型別 INT,一般又可以分為有符號,無符號,資料範圍 -32768~32767

    6. 雙整形 DINT,同上也可以分為有符號,無符號型別,資料範圍 -2147483648~2147483647

    7.實數型別 real ,顯示十進位制的資料,可以包括小數點,一般都是32位,當然也有64位的實數型別。

    複雜資料型別,包括如下:

    8. 字串型別 string

    9. 日期時間型別 Date ,Time,date-time等

    10. 陣列型別,Array

    11. 結構型別,Struct

    12. 指標,Pointe

    13. 使用者自定義型別,UDT

  • 中秋節和大豐收的關聯?
  • 為什麼國產劇與美劇差距那麼大?