2020年7月28日 星期二

台達PLC連線DTC1000 RS485介面使用MODRW指令

前言:因為應用上有透過RS485和其他設備溝通,而台達PLC除了有基本的通訊功能,還有特別的PLC-LINK功能.因為PLC LINK功能只要去控制M暫存器,用不到指令.看範例都是輪循的!
有興趣可以找:台達文件 DVP 系列 PLC Link 功能應用說明

硬體架構:


通訊結構:
1.首先定義好DTC1000&PLC 雙方的通訊協定,以及通訊站號
這次測試的通訊協定設定 鮑率:9600,data bit:8  check bit:even ,stop bit:1 ,模式設定為RTU

DTC1000 站號就預設為1,沒有參數可修改.如果還有接其他DTC1000時,記住要去修改DTC1000的參數1022要改為1.DTC控制器只要確認通訊協定的部分,其他部份都是由PLC做讀取或寫入!

PLC2的站號不能和其他站號重複,這次測試設定為PLC站號為32

PLC架構:


從上圖可知,PLC第一個周期:
D1120設定PLC COM2通訊協定
D1121設定PLC COM2站號為32
D1255設定PLC COM3站號為32(有用到才需要設定)
D1038設定RS-485延遲時間5ms
M1120通訊設定保持
M1143設定MODBUS為RTU模式(資料位元一定要設為8)
M1161設定為8位元轉換模式,16位元會切換成兩組8位元儲存
D1129設定通訊逾時秒數




從上圖可知,
M1122在每一次COM2要通訊前,一定要設定為ON,執行完畢會自動清除
MODRW指令結構,詳細可參考程式篇手冊

MODRW K1 H3 H1000 D0 K2
K1:要通訊的RS485 對方站號(因為DTC1000預設為1,所以設為1)
H3:讀取多筆字元WORD
H1000:讀取目標裝置的資料位址
D0:MODRW指令會從PLC的D0開始寫入
K2:讀取兩個字元資料長度,所以會讀取DTC1000的H1000 和H1001兩個位址的資料.
實際上放到PLC暫存器會將上8位元和下8位元各自儲存,所以兩個字元會占用4個PLC 暫存器

監控從DTC1000讀取資料後,PLC的D0所呈現資料

D0:顯示H1代表是目標裝置站號

D1:顯示H3代表是讀取多筆字元

D2:H4代表會占用4個資料,因為MODRW讀取資料長度設2,實際上PLC會變成占用4個

D3&D4:代表DTC1000的H1000,D3是上8位元,D4是下8位元,合起來是13B轉成10進制是315
因為當初DTC1000是設定為K-TYPESENSOR,所以H1000是實際讀取溫度

D5&D6:代表DTC1000的H1001,D5是上8位元,D6是下8位元,合起來是226轉成10進制是550
因為當初DTC1000是設定為K-TYPESENSOR,所以H1001是目標溫度

D7&D8:MODBUS CRC碼




參考文件: DVP-PLC 應用技術手冊101例_20080218
                  DVP-PLC應用技術手冊(程式篇)_20200123
                  DTC系列 數位控制器操作手冊_2016/03/11
                 DELTA  產品 MODBUS RS-485 通訊設定_20141103
                 DVP系列PLC Link功能應用說明_20160127