1 引言
可編程控制器(以下簡稱PLC)由于其高可靠性、編程簡單、通用性強、體積小、結構緊湊、安裝維護方便等特點,而在工業控制中得到了廣泛應用。PLC的模塊一般分為以下幾大類:開關量輸入模塊、開關量輸出模塊、模擬量輸入模塊、模擬量輸出模塊。在工業控制中特別是過程控制領域中需要采集和控制的模擬量比較多,因而對PLC的模擬量輸入、輸出模塊需要的較多,而">

      技術頻道

      PLC模擬量輸入、輸出模塊低成本擴展的一種方法

      1 引言
      可編程控制器(以下簡稱PLC)由于其高可靠性、編程簡單、通用性強、體積小、結構緊湊、安裝維護方便等特點,而在工業控制中得到了廣泛應用。PLC的模塊一般分為以下幾大類:開關量輸入模塊、開關量輸出模塊、模擬量輸入模塊、模擬量輸出模塊。在工業控制中特別是過程控制領域中需要采集和控制的模擬量比較多,因而對PLC的模擬量輸入、輸出模塊需要的較多,而模擬量輸入、輸出模塊比較貴,增加模擬量輸入、輸出模塊就增加了成本,降低了整個系統的性價比,限制了PLC的應用。本文提出了一種基于通訊的模擬量輸入、輸出模塊的擴展方法力圖解決這一問題。
      2 基于通訊的模擬量輸入、輸出模塊的擴展方法
      (1) 模擬量輸入模塊擴展
      這里以一路12位模擬量輸入為例,模擬信號以0~5V標準電壓的形式送入信號輸入端,應用12位A/D轉換芯片MAX187實現模數轉換。MAX187是12位串行A/D,具有較高的轉換速度,采樣頻率是75kHz,適用于較高精度的過程控制。考慮到實際工業現場中的高頻干擾,在采樣信號送MAX187之前還使用了低通濾波器濾波,如圖1所示。


      圖1 低通濾波、放大器及A/D轉換

      MAX187具有內部參考電壓,既4#管腳(REF)為 4.096V,因此,A/D轉換的全量程為4.096V。而輸入信號是0~5V,因此,要加一級運放把0~5V轉換成0~4.096V后送入MAX187。AT89C52的P1.3和MAX187的片選端(CS)相連、AT89C52的P1.4和MAX187的串行時鐘信號端(SCLK)相連、AT89C52的P1.5和MAX187的串行數據輸出端(DOUT)相連。模擬量采樣的值存入單片機的內存中,再由單片機的串行口傳送給PLC。A/D轉換的C51程序如下:
      #include
      #include
      sbit IC4_S = P1^4; /* AD輸入端口設置*/
      sbit IC4_D = P1^5;
      sbit IC4_C = P1^3;
      void input(void )
      { unsigned char idata i;
      unsigned int idata result=0x0000;
      IC4_C = 0; /* CS端為低電平*/
      for(i=0;i<12;i++)
      { result = result << 1;
      IC4_S = 0; /*時鐘端產生時鐘脈沖*/
      IC4_S = 1;
      if( IC4_D ) result++; /*從串行數據輸出端讀入A/D轉換數據*/
      }
      IC4_C = 1; /* CS端為高電平*/
      pdat[1] = result;
      }
      MAX187的工作時序圖見圖2。


      圖2 MAX187的工作時序圖

      (2) 模擬量輸出模塊擴展
      這里以一路12位模擬量輸出為例,設計中將采用12位D/A轉換芯片MAX531來實現數摸轉換。我們在MAX531的輸出端接運算放大器,將模擬輸出調節至0~5V,輸出部分的硬件電路如圖3所示。這里,MAX531是12位串行D/A,具有較高的轉換速度, MAX531具有內部參考電壓,既10#管腳(REFOUT)為2.048V,因此, D/A轉換的全量程為2.048V。而輸出信號一般要求是標準的0~5V,因此,要加一級運放把MAX531輸出的0~2.048V信號轉換成 0~5V信號。AT89C52的P1.0和MAX531的串行時鐘信號端(SCLK)相連、AT89C52的P1.1和MAX531的串行數據輸入端(DIN)相連、AT89C52的P1.2和MAX531的片選端(CS)相連。PLC把要輸出的模擬量通過串行口傳送給單片機,存入的內存中,再由單片機完成D/A轉換進行輸出。A/D轉換的C51程序如下:


      圖3 D/A轉換及放大器原理圖

      #include
      #include
      sbit IC2_S = P1^0; /*DA輸出端口設置*/

      sbit IC2_D = P1^1;
      sbit IC2_C = P1^2;
      void output(unsigned int dat)
      { unsigned char idata i = 12;
      IC2_C = 0; /* CS端為低電平*/
      while( i-- )
      { IC2_S = 0; /*時鐘端產生時鐘脈沖*/
      if ( dat &0x0800 ) IC2_D =1; /*從串行數據輸入端讀入DA轉換數據*/
      else IC2_D =0;
      IC2_S = 1;
      dat = dat << 1;
      }
      IC2_C=1; /* CS端為高電平*/
      }
      MAX531的工作時序圖見圖4。



      圖4 MAX531的工作時序圖


      3 PLC與擴展模塊之間的通信接口及通信協議
      (1) 通信接口
      以松下FP1系列PLC為例來闡述PLC與擴展模塊之間的通信,FP1系列PLC的通信接口采用標準9芯RS232接口,它與擴展模塊之間的接線如圖5所示。


      圖5 擴展模塊與PLC的通訊連接


      · 擴展模塊的RXD端與PLC的TXD端聯接,使擴展模塊接收到PLC發出的數據;
      ·擴展模塊的TXD端與PLC的RXD端聯接,使擴展模塊發出的數據被PLC接收到;
      · 擴展模塊的地與PLC的SG端互聯,使兩者的工作基準地電平相同。

      上面采用的是RS232接口,PLC一次只能擴展一個模塊。如果要擴展多個模塊,可以采用RS485接口,現代的PLC一般都帶有RS485接口。

      (2) 通信協議
      松下FP1系列PLC與擴展模塊之間的通信協議為松下公司專用的MEWTOCOL-COM協議,該協議采用異步通信方式,其波特率有1200、2400、4800、9600、19200、38400、57600、115200bps等多種可選,且報文長度可變可固定。該協議格式分為命令消息(Command Message),正常響應消息(Response Message-normal),出錯響應消息(Response Message-error)三種。


      其中:%為起始符,標記每一幀報文的開始;CR為結束符,標記每一幀報文的結束;
      AD為PLC的站地址,為兩位16進制數,如00則表示第一臺PLC;
      #、$、!標注該幀報文為何種類型。
      Command code為命令代碼,如例1中的“RD”,表示讀數據區。Response code為響應代碼一般返回接收到的命令消息中的命令代碼。Error(H)和Error(L)為出錯代碼,是兩位16進制數, 可根據其值在協議中查出錯誤的描述。
      Text code為命令參數,如例1命令消息中“D 01105 01107”,“D”表示數據寄存器,“01105 01107”表示第1105號至1107號,而在例1響應消息中,“6300 4433 0A00”則表示DT1105至DT1107中數據分別為6300、4433、0A00。
      BCC(H)和BCC(L)為前面字符串的BCC校驗碼的高、低位,為兩位16進制數。其初值為0,然后從起始符開始與該幀報文中每一字節按位進行異或運算得到。
      l 例1:讀取DT1105至DT1107中的數據的命令消息如下:

      若DT1105至DT1107中數據分別為6300、4433和0A00,PLC返回的響應消息如下:

      那么, 模擬量輸入擴展模塊與PLC通訊的報文可如下:

      表示1號模擬量輸入擴展模塊把模擬量采樣值0FFF存入PLC的第1105個數據寄存器
      模擬量輸出擴展模塊與PLC通訊的報文可如下:

      表示1號模擬量輸出擴展模塊請求把PLC中第1106個數據寄存器保存的模擬量輸出值讀入。
      若DT1106中數據為0fff,PLC返回的響應消息如下:

      1號模擬量輸出擴展模塊就把接收到的數字量0fff轉換成模擬量輸出。
      4 結束語
      本文提出的方法已在實驗室中調試通過,并多次長時間運行測試,以驗證其準確性與穩定性,收到了令人滿意的效果,通信十分穩定可靠。各位讀者可在本文的基礎上,開發出8路、16路8位、10位、12位等模擬量輸入、輸出擴展模塊;本文使用的是松下公司已有的MEWTOCOL-COM協議,讀者也可以自己編制通訊協議。本文意在提出一種低成本的PLC模擬量輸入、輸出模塊擴展方法,如果要把它變成產品還有很長的路要走,例如,如何讓用戶使用得更方便,可靠性更高等等。這些都是需要進一步完善的。


      文章版權歸西部工控xbgk所有,未經許可不得轉載。

      主站蜘蛛池模板: 熟妇人妻系列av无码一区二区| 香蕉久久ac一区二区三区| 波多野结衣的AV一区二区三区| 日韩一区精品视频一区二区| 武侠古典一区二区三区中文| 亚洲av无码一区二区三区人妖| jazzjazz国产精品一区二区| 国产精品一区二区香蕉| 国产亚洲福利一区二区免费看| 精品一区二区三区影院在线午夜| 久久综合九九亚洲一区| 日韩精品视频一区二区三区| 日韩免费视频一区| 无码人妻av一区二区三区蜜臀| 一区二区不卡视频在线观看| 色妞AV永久一区二区国产AV| 冲田杏梨高清无一区二区| 波多野结衣中文一区| 国模视频一区二区| 亚洲A∨精品一区二区三区下载| 国产吧一区在线视频| 欧美人妻一区黄a片| 精品无码一区二区三区电影| 国产福利微拍精品一区二区| 中文字幕在线看视频一区二区三区| 久久亚洲一区二区| 国精品无码一区二区三区左线| 国产吧一区在线视频| 精品亚洲AV无码一区二区三区| 国产精品久久久久久麻豆一区 | 国产成人精品一区二区三区无码| 无码AⅤ精品一区二区三区| 日韩A无码AV一区二区三区| 一区二区三区免费视频观看| 精品一区二区三区免费观看| 99久久精品日本一区二区免费| 蜜桃无码一区二区三区| 亚洲中文字幕乱码一区| 国产成人精品亚洲一区| 亚洲av成人一区二区三区在线播放 | 日韩人妻一区二区三区免费|