這次研究 三菱 MC protocol

這個通訊協定分為串列介面(4C,3C,2C,1C)、網路介面(4E,3E,1E)

我這次使用的是 Q03UDVCPU ,使用網路介面,所以用 3E frame,

 

設定PLC的通訊

請開GX Work2 建立新程式

 

選擇PLC 系列 與 Type

 

連線設定

 

各種連線方式都可以,先要連的上PLC

 

在專案中選擇PLC 參數

 

設定IP,通訊資料碼維持在二進制 ,下面介紹會以二進制格式講解

 

按 Open Setting,設定MC Protocol 通訊協定

 

將參數寫入到PLC

 

寫完之後要斷電重開

 

通訊測試(二進制 3E frame format)

PC端我用C# 寫Socket程式

 

我直接從結果介紹起,如果讀者傳送這個指令都沒有回碼了,就不用繼續往下測了。

送碼 (讀兩筆資料)

500000FFFF03000C00010001040000000000A80200

回碼 (正常回應兩筆資料)

D00000FFFF03000600000000000000

指令結構(二進制格式)

5000 00 FF FF03 00 0C00 0100 0104 0000 000000 A8 0200

標頭(Header),E71模組會自動添加,因此這邊送碼不用加 +

副標頭(Subheader) +

網路編號(Network No.) +

PC編號(PC No.) +

請求目標模組I/O編號(Request destination module I/O No.) +

請求目標模組站號(Request destination module station No.) +

請求資料長度(Request data length) +

監視計時器(Monitoring timer) + 

指令(Command) +

子指令(Subcommand) +

暫存器位址(Device number) +

暫存器代碼(Device code) +

暫存器數(Number of device points) 

 

D000 00 FF FF03 00 0600 0000 0000 0000

標頭(Header),E71模組會自動添加,因此這邊送碼不用加 +

副標頭(Subheader) +

網路編號(Network No.) +

PC編號(PC No.) +

請求目標模組I/O編號(Request destination module I/O No.) +

請求目標模組站號(Request destination module station No.) +

請求資料長度(Request data length) +

錯誤碼(Error code) + 

資料1(Data1) +

資料2(Data2)

 

詳細解說格式

 

請求主要由6個區塊組成

Header + Subheader + Access route + Request data length + Monitoring timer + Request data

 

標頭區塊,0 Byte (Header)

E71模組會自動添加,因此這邊送碼不用加

 

子標頭區塊,2 Byte (Subheader)

3E frame 固定送碼 5000,固定回碼D000

 

存取路徑區塊,5 Byte (Access route)

網路編號 + PC編號 + 請求目的模組I/O編號 + 請求目的模組站號

(Network No. + PC No. + Request destination module I/O No. + Request destination module station No.)

一對一訪問時,網路編號指定00、PC編號指定FF

沒使用請求目的模組時,請求目的模組I/O編號固定FF03,請求目的模組站號固定00

 

請求資料長度區塊,2 Byte (Request data length)

後面兩個區塊(Monitoring timer + Request data)的Byte數,注意:Low Byte 先放

 

監視計時器區塊,2 Byte

單位為250 ms,注意:Low Byte 先放

 

請求資料區塊,(讀取指令10 Byte,寫入指令10+2N Byte)

讀取Word資料指令(2 + 2 + 3 + 1 + 2  Byte): 指令+子指令+暫存器位址+暫存器代碼+暫存器數

寫入Word資料指令(2 + 2 + 3 + 1 + 2 + 2 * N Byte): 指令+子指令+暫存器位址+暫存器代碼+暫存器數+資料

注意:2 Byte 及 3Byte 的資料 Low Byte 先放

 

暫存器代碼

例 D1000 暫存器:

D暫存器代碼 = A8,

1000轉16進制 = 03E8,注意:Low Byte 先放

送碼中的暫存器位址+暫存器代碼 = E80300A8

 

3E 指令表

例如寫Word資料:

指令 = 0401,注意:Low Byte 先放

子指令 = 0000,注意:Low Byte 先放

送碼中的指令+子指令 = 01040000

 

 

參考資料

arrow
arrow
    文章標籤
    三菱PLC 通訊 MC protocol
    全站熱搜
    創作者介紹
    創作者 史克威爾凱特 的頭像
    史克威爾凱特

    史克威爾凱特的部落格

    史克威爾凱特 發表在 痞客邦 留言(0) 人氣()