2012年5月28日 星期一

PLC 與台達VFD-M 系列變頻器通訊RS485(modbus)


PLC 與台達VFD-M 系列變頻器通訊 (MODRD/MODWR)

【控制要求】
☆讀取VFD-M 系列變頻器主頻率(頻率指令)、輸出頻率並將其分別存於D0、D1 中。(MODRD
指令)
☆設定變頻器以主頻率為40Hz 正方向啟動。(MODWR 指令)

【VFD-M 變頻器參數設定】
參數 設定值 說明
P00 03 主頻率輸入由串列通信控制(RS485)
P01 03 運轉指令由通訊控制,鍵盤STOP 有效
P88 01 VFD-M 系列變頻器的通訊位址為1
P89 01 通訊傳送速度Baud rate 9600
P92 01 MODBUS ASCII 模式,資料格式<7,E,1>
☆當出現變頻器因參數設定錯亂而導致不能正常運轉時,可先設定P76=10(回歸出廠值),再按
照上表進行參數設定。

【裝置說明】
PLC 裝置 控制說明
M0 執行MODRD 指令
M1 執行第1 個MODWR 指令
M2 執行第2 個MODWR 指令

【控制程式】







【程式說明】
☆對PLC RS-485 通訊埠進行初始化,使其通訊格式為MODBUS ASCII,9600,7,E,1。
變頻器RS-485 通訊埠通訊格式需與PLC 通訊格式一致。
☆MODBUS 通訊只會出現4 種情況,正常通訊完成對應通訊標誌M1127、通訊錯誤對應通訊標誌:M1129、M1140、M1141,所以,在程式中通過對這4 個通訊標誌信號的On/Off 狀態進
行計數,再利用C0 的數值來控制3 個MODBUS 指令的依次執行,保證通訊的可靠性。
☆當M0=On 時,[ MODRD K1 H2102 K2 ] 指令被執行,PLC 讀取變頻器的“主頻率"和
“輸出頻率"以ASCII 碼字元形式存放在D1073~D1076,並自動將其內容轉化成16 進制數
值儲存至D1050、D1051 中。
☆當M1=On 時,[ MODWR K1 H2000 H12 ] 指令被執行,變頻器啟動並正方向運轉。
☆當M2=On 時,[ MODWR K1 H2001 K4000 ] 指令被執行,將變頻器的主頻率設定為
40Hz。
☆程式的最後兩列 [MOV D1050 D0 ] 是將變頻器的主頻率存儲在D0 中,[ MOV D1051
D1 ] 是把變頻器的輸出頻率存儲於D1 中。
☆PLC 一開始RUN,比較C0=0,就一直反復地對變頻器進行通訊的讀寫。


資料來源:DVP-PLC應該101例 

9 則留言:

  1. 請問大大三菱PLC跟台達VFD-M 系列變頻器通訊RS485(modbus)使用方式一樣嗎

    回覆刪除
    回覆
    1. 三菱PLC應該要用"ADPRW/MODBUS读出·写入" 指令,
      傳送的資料一樣即可

      刪除
  2. 請問陳老師,MODWR K1 H2000 H12,以及 MODWR K1 H2001 K4000 中的 H2000、H2001 與 H12 是參考哪份手冊決定出來的,謝謝您!

    回覆刪除
    回覆
    1. 在VFD-M的手冊參數P92裡面有寫到
      H2000、H2001 是通訊位址
      位址H2000是對驅動器的命令
      位址H2001是對驅動器的頻率命令

      H12是輸入值=正向轉動 + 啟動

      刪除
    2. 陳老師,看懂了,非常謝謝您的指導!!!

      刪除
  3. 另外想請問陳老師:

    在台達DVP-PLC 編程實作範例,章節 12.8 PLC LINK 16 台從站及資料讀寫16 筆 (Word) 模式的程式中,第6行程式開始寫到:
    MOV K1 D1399 設定起始從站的站號為 K1
    MOV H1000 D1355 讀取從站 1 的起始裝置為 D0
    MOV K100 D1434 讀取從站 的數據筆數為 100 筆
    MOV K0 D1480 主站存放從從站 1 的 D0~D99 讀回來的數據起始裝置為 D0
    MOV H1064 D1415 寫入從站 1 的起始裝置為 D100
    MOV K100 D1450 寫入從站 1 的數據筆數為 100 筆
    MOV K100 D1496 主站 D100 起始的連續 100個暫存器中 數據將被寫入到從站 1 的 D200~D299
    MOV H10C8 D1356 讀取從站 2 的起始裝置為 D200
    ...
    ... (略) ...
    ...
    以上由 MOV K1 D1399 這行程式雖然設定了 起始從站的站號為 K1
    然而,PLC編譯軟體或系統是如何知道 MOV H10C8 D1356 是讀取從站 2 的資料,而非從站 1 或 從站 3 的資料呢???
    請問老師,這種邏輯關係,從哪份文件可以看得出來呢???








    回覆刪除
    回覆
    1. 基本上這個是台達PLC LINK 內定位址。
      可以從PLC手冊去搜尋 d1355 d1356 就可以知道它的用法了。
      我是查SX2的操作手冊 程式篇,搜尋「d1355」可以找到詳細的用法及說明。


      這跟標準的modbus不同,簡化了一些東西,所以規則有些被定死了。

      刪除
    2. 老師,謝謝您的指導:
      根據台達 DPD-PLC 應用技術手冊(程式篇),
      文中的確定死了16個從站對應的特殊暫存器 D1355~D1370

      D1355* 讀取從站ID#1 的起始通訊位址設定
      D1356* 讀取從站ID#2 的起始通訊位址設定
      ...
      ...
      ...
      D1370* 讀取從站ID#16 的起始通訊位址設定

      D1415* 寫入從站ID#1 的起始通訊位址設定
      D1416* 寫入從站ID#2 的起始通訊位址設定
      ...
      ...
      D1430* 寫入從站ID#16 的起始通訊位址設定

      刪除