本文介紹的 PC 與三菱 FX 系列 PLC 通訊,是經過 PLC 的編程口與 PC 機的串口進行的,採用 SC-09 編程電纜做爲計算機與 PLC 通訊的連線。電纜的 9 芯 D 形插頭鏈接在計算機串口上,另外一端鏈接 PLC 的 RS-422 編程口。算法
編寫 PC 的通訊程序可採用匯編語言、各類高級語言,也能夠採用工控組態軟件或直接採用 PLC 廠家的通訊軟件。本文采用 VB6 . 0 軟件,它必須依據所鏈接 PLC 的通訊規程來編寫通訊協議,因此先簡單介紹 FX 系列 PLC 的通訊協議。編程
數據傳輸格式異步
FX 系列 PLC 採用異步格式,由 1 位起始位、 7 位數據位、 1 位偶校驗位及1位中止位組成,波特率爲 9600bps ,字符爲 ASCII碼。spa
PLC的存儲單元分別爲: X 爲輸入繼電器; Y 爲輸出繼電器; M 爲輔助繼電器; S 爲狀態元件; T 爲定時器; C 爲計數器; D 爲數據寄存器。
三菱PLC編程口的通信只有四個命令,即:ci
命令 命令碼 目標設備ENQ 05H 請求it
ACK 06H PLC正確響應table
NAK 15H PLC錯誤響應
地址算法爲:address=address×2+1000h軟件
一、DEVICE READ(讀出軟設備狀態值)舉例:PC 從 PLC 中讀取數據定時器
假設 PC 要從 PLC 中讀入從 D123 開始的 4 個字節的數據 ( 佔用兩個數據寄存器: D123 、 D124) ,其報文如表 5 所示。請求
根據三菱 FX 系列 PLC 編程口通訊協議,地址算法爲
address=address×2+1000h
將地址 123 轉換成十六進制爲 7Bh ,所以首地址爲:
address=addressx2+1000h=7Bhx2+1000h=10F 6h .
再轉換成 ASCII 碼爲 31h,30h,46h,36h
校驗和 SUM=30H+31H+30H+46H+36H+30H+34H+03H=174H ,溢出部分不計,故 SUMH 爲 "7" , SUML 爲 "4" ,相應的 ASC Ⅱ碼爲「 37H 」和「 34H 」。
計算機向PLC發送:
始 | 命令 | 首地址 | 位數 | 終 | 和校驗 |
STX 02h |
CMD 30h |
GROUP ADDRESS 31h,30h,46h,36h |
BYTES 30h,34h |
ETX 03h |
SUM 37h,34h |
PLC返回,從指定的存儲器單元讀到3584這個數據
STX |
1ST DATA |
ND DATA | .... | LAST DATA | ETX | SUM |
02h | 33h | 35h | 38h | 34h | 03h | 44h,36h |
舉例:向D123開始的兩個存儲器中寫入1234,ABCD
始 | 命令 | 首地址 | 位數 | 數據 | 終 | 和校驗 | |||
STX | CMD | GROUP ADDRESS | BYTES | 1ST DATA | 2ND DATA | ...... | LAST DATA | ETX | SUM |
02h | 31h | 31h,30h,46h,36h | 30h,34h | 33h,34h,31h,32h,43h,44h,41h,42h | 03h | 34h,39h |
PLC返回:ACK (06H) 接受正確 ;或者是NAK (15H) 接受錯誤
設備強制中的地址公式:Address=Address/8+100h
02h 37h address 03h sum
始 | 命令 | 地址 | 終 | 和校驗 |
STX | CMD | ADDRESS | ETX | SUM |
02h | 37h | address | 03h | sum |
02h 38h address 03h sum
始 | 命令 | 地址 | 終 | 和校驗 |
STX | CMD | ADDRESS | ETX | SUM |
02h | 38h | address | 03h | sum |