三菱Fx系列PLC的編程口協議

本文介紹的 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

命令                    命令碼             目標設備
DEVICE READ CMD             "0"                       X,Y,M,S,T,C,D
DEVICE WRITE CMD            "1"                       X,Y,M,S,T,C,D
FORCE ON CMD                  " 7"                         X,Y,M,S,T,C
FORCE OFF CMD                  "8"                        X,Y,M,S,T,C

五個標示:

ENQ            05H             請求it

ACK            06H             PLC正確響應table

NAK           15H             PLC錯誤響應
STX             02H             報文開始
ETX             03H             報文結束

使用累加方式的和校驗,幀格式以下:
STX CMD DATA ...... DATA ETX SUM(upper) SUM(lower)
和校驗:
SUM= CMD+……+ETX。 如SUM=73H,SUM=「73」。


設備狀態讀取與寫入

地址算法爲:address=address×2+1000h軟件

一、DEVICE READ(讀出軟設備狀態值)
計算機向PLC發送:
始          命令             首地址                        位數             終                 和校驗
STX       CMD             GROUP ADDRESS       BYTES         ETX              SUM
PLC 返回
STX 1ST DATA 2ND DATA ..... LAST DATA ETX SUM

舉例: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  
     二、DEVICE WRITE(向PLC 軟設備寫入值)
計算機向PLC發送:
始          命令      首地址          位數             數據             終                  和校驗
PLC 返回
ACK (06H) 接受正確
NAK (15H) 接受錯誤

舉例:向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

FORCE ON 置位
始                 命令             地址                    終                 和校驗
STX              CMD             ADDRESS            ETX              SUM

02h               37h               address                 03h             sum

                                                                                 

   始       命令    地址    終    和校驗
STX    CMD    ADDRESS    ETX    SUM   
 02h    37h    address    03h    sum

FORCE OFF 復位
始                 命令             地址                    終                 和校驗
STX              CMD             ADDRESS            ETX              SUM

02h               38h               address                 03h               sum

                                                                             

  始    命令    地址    終    和校驗
   STX    CMD    ADDRESS    ETX       SUM 
02h       38h       address    03h    sum

PLC 返回
ACK(06H) 接受正確
NAK(15H) 接受錯誤

以上能夠看出,協議很是簡單,可是因爲沒有寄存器類型信息,因此地址的計算十分關鍵,如D100和M100分別對應哪一個地址呢?下面就是三菱Fx系列PLC地址對應表:

Public Const PLC_D_Base_AddRess = 4096

Public Const PLC_D_Special_Base_AddRess = 3584

Public Const PLC_Y_Group_Base_AddRess = 160

Public Const PLC_PY_Group_Base_AddRess = 672

Public Const PLC_T_Group_Base_AddRess = 192

Public Const PLC_OT_Group_Base_AddRess = 704

Public Const PLC_RT_Group_Base_AddRess = 1216

Public Const PLC_M_SINGLE_Base_AddRess = 2048(命令爲7或8時)

Public Const PLC_M_Group_Base_AddRess = 256

Public Const PLC_PM_Group_Base_AddRess = 768

Public Const PLC_S_Group_Base_AddRess = 0

Public Const PLC_X_Group_Base_AddRess = 128

Public Const PLC_C_Group_Base_AddRess = 448

Public Const PLC_OC_Group_Base_AddRess = 960

Public Const PLC_RC_Group_Base_AddRess = 1472

Public Const PLC_TV_Group_Base_AddRess = 2048

Public Const PLC_CV16_Group_Base_AddRess = 2560

Public Const PLC_CV32_Group_Base_AddRess = 3072
相關文章
相關標籤/搜索