close

2019.06.05 update

 

下載了兩個手冊,分別有兩種協定(Protocol),

MR-J4-_A_(-RJ),當中有介紹 MITSUBISHI ELECTRIC GENERAL-PURPOSE AC SERVO PROTOCOL (中文手冊沒有14章之後的通訊內容)

MR-J4-_A_-RJ,當中有介紹 Modbus-RTU Protocol

手冊在介紹通訊協定其實都滿詳細的,

原本還很期待MR-J4-60A會有Modbus,測試結果是沒有,

所以我只能接著介紹 MITSUBISHI ELECTRIC GENERAL-PURPOSE AC SERVO PROTOCOL。

上面兩個通訊協定都是用CN3 這個Port,是使用RJ-45的頭(一般網路線的水晶頭),腳位定義為RS422,

它支援RS485的短路接法,Modbus篇有畫。

無論哪種protocol,接線是不會改變。

而我使用RS422轉USB的介面接到電腦上。

我接3,4,5,6腳位。奇怪的是...N是+、P是-

參數的部分,它只有鮑率跟站號可以設定,其他都是固定的,比-RJ系列少一些些

站號設定:PC20,我設定1當做我的站號

鮑率設定:

置於是否要延遲回碼就看個人

我是使用115200 + 延遲回碼

所以我參數 PC21 設定值為:0140

設定完成後記得關大電重開。

 

 

首先我先介紹幾個ASCII 當中四個控制符,等等會用到:

SOH : 指令的開頭要加的

STX : 開始傳送資料的部分

ETX : 代表資料的部分傳送完畢

EOT : 程式關閉前要丟出來的碼,我是覺得可有可無。

 

寫資料的結構:

有些指令可能會有資料(Data)

 

讀資料的結構:

 

我參考手冊,下指令:

Command pulse frequency(指令脈波頻率 單位) :

Command : "01"

Data No : "04"

 

 

CheckSumStation No + Command + STX + Data No + ETX = 31 + 30 + 31 + 02 + 30 + 34 + 03 = "FB" = 46 42

檢查碼不算開頭,送碼開頭為 SOH ( ASCII 的 01h)

Station No (設定PC20)  = 1 (ASCII 的 31h)

Command = 字串 "01" (ASCII 的 30h 31h)

STX (ASCII 的 02h)

Data No = 字串 "04" (ASCII 的 30h 34h)

ETX (ASCII 的 03h)

十六進制加法 31 + 30 + 31 + 02 + 30 + 34 + 03 = FB

計算如果超過就取後兩位轉十六進制字串

CheckSum 計算結果為 字串 "FB" (ASCII 的 46h 42h)

SOH + Station No + Command + STX + Data No + ETX + CheckSum = 01 31 30 31 02 30 34 03 46 42

 

實際使用:

PC20(站號) : 1

PC21(鮑率) : 0000 (9600 無延遲)

資料位元 : 8 (內定)

檢查位元 : Event (內定)

停止位元 : 1 (內定)

 

參數有PA、PB、PC、PD、PE、PF,讀取參數前要先設定群組

這個案子我只用到PC,因此,程式開始寫一次就可以了,

設定參數群組到Pr. PC : 

電腦→驅動器 : 0131383502303030303032034335

電腦←驅動器:023141033735

送碼:

SOH + Station No + Command + STX + Data No + Data + ETX + CheckSum

01 + 31 + 3835 + 02 + 3030 + 30303032 + 03 + 4335

Data 的長度 (Frame length) 為 4 個Byte ,PC群組是 "0002" (ASCII 的 30h 30h 30h 32h)

回碼:

STX + Station No + Error Code + ETX + CheckSum

02 + 31 + 41 + 03 + 3735

 

讀取參數06 : 

電腦→驅動器 : 01313135023036033032

電腦←驅動器:023141303030303030303030303030034235

送碼:

SOH + Station No + Command + STX + Data No + ETX + CheckSum

01 + 31 + 3135 + 02 + 3036 + 03 + 3032

回碼:

回碼的 Data 的長度 (Frame length) 為 12 個Byte

STX + Station No + Error Code + Data + ETX + CheckSum

02 + 31 + 41 + 303030303030303030303030 + 03 + 4235

讀到的數值是 0

寫入參數05 : 

寫入數值 100

電腦→驅動器 : 01313934023035303030303030303030303634033532

 

arrow
arrow
    創作者介紹
    創作者 史克威爾凱特 的頭像
    史克威爾凱特

    史克威爾凱特的部落格

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