fgc536
DCS、PLC
級(jí)別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 557 個(gè)
工控威望: 1103 點(diǎn)
下載積分: 1429 分
在線(xiàn)時(shí)間: 36(小時(shí))
注冊(cè)時(shí)間: 2007-01-12
最后登錄: 2017-12-23
查看fgc536的 主題 / 回貼
樓主  發(fā)表于: 2008-05-30 13:38
三菱FX系列PLC編程口通信協(xié)議總覽
該協(xié)議實(shí)際上適用于PLC編程端口以及 FX-232AW 模塊的通信。
通訊格式:
命令 命令碼 目標(biāo)設(shè)備
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傳輸格式: RS232C
波特率: 9600bps
奇偶: even
校驗(yàn): 累加方式(和校驗(yàn))
字符: ASCII 
16進(jìn)制代碼:
ENQ 05H 請(qǐng)求
ACK 06H PLC正確響應(yīng)
NAK 15H PLC錯(cuò)誤響應(yīng)
STX 02H 報(bào)文開(kāi)始
ETX 03H 報(bào)文結(jié)束

幀格式:
STX CMD DATA ...... DATA ETX SUM(upper) SUM(lower)
例子:
STX ,CMD ,ADDRESS, BYTES, ETX, SUM
02H, 30H, 31H,30H,46H,36H, 30H,34H, 03H, 37H,34H
SUM=CMD+......+ETX;
30h+31h+30h+46h+36h+30h+34h+03h=74h;
累加和超過(guò)兩位取低兩位
1、DEVICE READ(讀出軟設(shè)備狀態(tài)值)
計(jì)算機(jī)向PLC發(fā)送:
始 命令 首地址 位數(shù) 終 和校驗(yàn)
STX CMD GROUP ADDRESS BYTES ETX SUM
例子:從D123開(kāi)始讀取4個(gè)字節(jié)數(shù)據(jù)
02h 30h 31h,30h,46h,36h 30h,34h 03h 37h,34h
地址算法:address=address*2+1000h
再轉(zhuǎn)換成ASCII
31h,30h,46h,36h
PLC返回
STX 1ST DATA 2ND DATA ..... LAST DATA ETX SUM
注:最多可以讀取64個(gè)字節(jié)的數(shù)據(jù)
例子:從指定的存儲(chǔ)器單元讀到3584這個(gè)數(shù)據(jù)
02h 33h 35h 38h 34h 03h 44h,36h

2、DEVICE WRITE(向PLC軟設(shè)備寫(xiě)入值)
始 命令 首地址 位數(shù) 數(shù)據(jù) 終 和校驗(yàn)
STX CMD GROUP ADDRESS BYTES 1ST DATA 2ND DATA ...... LAST DATA ETX SUM
例子:向D123開(kāi)始的兩個(gè)存儲(chǔ)器中寫(xiě)入1234,ABCD
02h 31h 31h,30h,46h,36h 30h,34h 33h,34h,31h,32h,43h,44h,41h,42h 03h 34h,39h
PLC返回
ACK (06H) 接受正確
NAK (15H) 接受錯(cuò)誤

3、位設(shè)備強(qiáng)制置位/復(fù)位
FORCE ON置位
始 命令 地址 終 和校驗(yàn)
STX CMD ADDRESS ETX SUM
02h 37h address 03h sum
FORCE OFF復(fù)位
始 命令 地址 終 和校驗(yàn)
STX CMD ADDRESS ETX SUM
02h 38h address 03h sum

PLC返回
ACK(06H) 接受正確
NAK(15H) 接受錯(cuò)誤
設(shè)備強(qiáng)制中的地址公式:Address=Address/8+100h

說(shuō)明:
1.幀中的BYTES表示需要讀取或者寫(xiě)入的字節(jié)數(shù)。
2.地址算法上有說(shuō)明。
3.累加和是從STX后面一個(gè)字節(jié)開(kāi)始累加到ETX的和。
三菱FX系列PLC編程口通信源代碼
fx_comm.h
FX系列PLC四種通信模式的特性
  首先講講FX系列PLC的通信方式。
  FX系列PLC根據(jù)使用的通信模塊與協(xié)議不同,分為以下四種通信模式:
  1、PLC的N:N通信方式
  2、PLC雙機(jī)并聯(lián)通信方式
  3、PLC與計(jì)算機(jī)專(zhuān)有協(xié)議通信方式(無(wú)須梯形圖,電腦直接讀寫(xiě)操縱PLC)
  4、PLC與計(jì)算機(jī)無(wú)協(xié)議通信方式(梯形圖RS指令方式,可自定義通信協(xié)議)
  以下將詳細(xì)列出各通信模式的特性:
  N:N網(wǎng)絡(luò) PLC并聯(lián) 專(zhuān)用協(xié)議計(jì)算機(jī)連接 無(wú)協(xié)議通信
傳輸標(biāo)準(zhǔn) RS485 RS485/RS422 RS485/RS422或RS232
傳輸距離 500m RS485/RS422:500mRS232:15m
連接數(shù)量 8站 1:1 1:N(N<=16) 1:1
通信方式 半雙工 FX,FX2c,FXon:半雙工FX2n: 全雙工
數(shù)據(jù)長(zhǎng)度 固定 7bit/8bit
校驗(yàn)  無(wú)/奇/偶
停止位  1bit/2bit
波特率 38400bps 19200bps 300/600/1200/2400/4800/9600/19200
頭字符 固定 無(wú)/有效
尾字符 
控制線(xiàn) ------
協(xié)議 --- 格式1/格式4 無(wú)
和校驗(yàn) 固定 無(wú)/有效
適用機(jī)型 FX2n,FXon FX2n,FX,FX2c FX2n,FXon,FX,FX2c
FX系列PLC專(zhuān)用協(xié)議通信指令一覽
  以下將詳細(xì)列出PLC專(zhuān)用協(xié)議通信的指令:
指令 注釋  
BR 以1點(diǎn)為單位,讀出位元件的狀態(tài)  
WR 以16點(diǎn)為單位,讀出位元件的狀態(tài),或以1字為單位,讀出字元件的值  
BW 以1點(diǎn)為單位,寫(xiě)入位元件的狀態(tài)  
WW 以16點(diǎn)為單位,寫(xiě)入位元件的狀態(tài),或以1字為單位,寫(xiě)入值到字元件  
BT 以1點(diǎn)為單位,SET/RESET 位元件  
WT 以16點(diǎn)為單位,SET/RESET 位元件,或?qū)懭胫档阶衷? 
RR 控制PLC運(yùn)行RUN  
RS 控制PLC停止STOP  
PC 讀出PLC設(shè)備類(lèi)型  
TT 連接測(cè)試  

注:位元件包括X,Y,M,S以及T,C的線(xiàn)圈等;
  字元件包括D,T,C,KnX,KnY,KnM等。
FX系列PLC專(zhuān)用協(xié)議通信指令格式詳解
 約定說(shuō)明:
     ENQ為請(qǐng)求標(biāo)志,ASCII值5,VB中以chr(5)表示;
     ACK為正確標(biāo)志,ASCII值6,VB中以chr(6)表示;
     STX為請(qǐng)求標(biāo)志,ASCII值2,VB中以chr(2)表示;
     EXT為請(qǐng)求標(biāo)志,ASCII值3,VB中以chr(3)表示;
     表格中紅色字為需要求和效驗(yàn)的部分;
     和效驗(yàn)為每一項(xiàng)的ASCII值的總和轉(zhuǎn)換成十六進(jìn)制后區(qū)低兩位;
     站號(hào)、PLC號(hào)、元件數(shù)量、和效驗(yàn)都是以十六進(jìn)制表示;
     等待延時(shí)為0-150毫秒,以十六進(jìn)制0H-FH表示,如100ms為AH。
  1、批量讀出位元件--BR指令
    格式:
  1 2 3 4 5 6 7 8            15 16 17
PC側(cè): ENQ 站號(hào) PLC號(hào) BR 延時(shí) 首地址 數(shù)量 和效驗(yàn)      ACK 站號(hào) PLC號(hào)
PLC側(cè):        STX 站號(hào) PLC號(hào) 數(shù)據(jù) EXT 和效驗(yàn) 
                  9 10 11 12 13 14     
   [注] 上述中:1、"PLC號(hào)"系統(tǒng)默認(rèn)為"FF";2、"首地址 "應(yīng)以十進(jìn)制表示,如首地址"X0018"表示從X寄存器的第18地址單元開(kāi)始讀取I/O量;3、"數(shù)量"表示讀取的I/O量個(gè)數(shù);4、"和效驗(yàn)"是指從"站號(hào)"到"數(shù)量"之間的各代碼的ASCII碼的累加和;5、PLC側(cè)的響應(yīng)碼中"和效驗(yàn)"是指從"站號(hào)"到"EXT"之間的各代碼的ASCII碼的累加和。6、可以讀出"X"、"Y"和"M"寄存器的內(nèi)容。
例如:要讀出站號(hào)為0的Fx2n系列PLC的X00到X08共9點(diǎn)的狀態(tài)值,延時(shí)100ms,假設(shè)采用Communication Format(D8120)的Format 1 方式::
注  釋: 請(qǐng)求 站號(hào) PLC號(hào) 命令 延時(shí) 元件首地址 元件數(shù)量 和效驗(yàn)
代  碼: ENQ 0 0 F F B R A X 0 0 0 0 0 9 4 2
ASCII碼: 05H 30H 30H 46H 46H 42H 52H 41H 58H 30H 30H 30H 30H 30H 35H 34H 32H
  您只要將以上蘭色部分的代碼以字符串形式(VB中可以表示為CHR(5)&" 00FFBRAX00000942")發(fā)送到PLC,就會(huì)有正確的回應(yīng)信息,如下:
注 釋: 頭 站號(hào) PLC號(hào) 元件首地址 尾 和效驗(yàn)
代 碼: STX 0 0 F F 0 0 1 1 0 1 1 0 1 EXT 0 5
ASCII碼: 02H 30H 30H 46H 46H 30H 30H 31H 31H 30H 31H 31H 30H 31H 03H 30H 35H
  若發(fā)送碼有誤,則有以下回應(yīng):
注 釋: 頭 站號(hào) PLC號(hào) 和效驗(yàn)
代 碼: NAK 0 0 F F 0 6
ASCII碼: 15H 30H 30H 46H 46H 30H 36H

2、批量讀出字元件--WR指令
  格式:
  1 2 3 4 5 6 7 8            15 16 17
PC側(cè): ENQ 站號(hào) PLC號(hào) WR 延時(shí) 首地址 數(shù)量 和效驗(yàn)      ACK 站號(hào) PLC號(hào)
PLC側(cè):        STX 站號(hào) PLC號(hào) 數(shù)據(jù) EXT 和效驗(yàn) 
                  9 10 11 12 13 14     
  該命令使用方法與1(BR)命令相同,不再贅述。
  3、批量寫(xiě)入位元件--BW指令
  格式:
  1 2 3 4 5 6 7 8 9     
PC側(cè): ENQ 站號(hào) PLC號(hào) BW 延時(shí) 首地址 數(shù)量 寫(xiě)入值 和效驗(yàn) 
PLC側(cè):          ACK 站號(hào) PLC號(hào)
                    10 11 12
  4、批量寫(xiě)入字元件--WW指令(M寄存器100單元置"1")
  格式:01FFWWAM01000100010C
  1 2 3 4 5 6 7 8 9     
PC側(cè): ENQ 站號(hào) PLC號(hào) WW 延時(shí) 首地址 數(shù)量 寫(xiě)入值 和效驗(yàn) 
PLC側(cè): 05H 01 FF  A M0100 01 0001  0C ACK 站號(hào) PLC號(hào)
                    10 11 12
 請(qǐng)自行分析以上代碼。
請(qǐng)繼續(xù)關(guān)注如何控制PLC的運(yùn)行/停止。
要贏別人,先贏自己!
dianchisun
級(jí)別: *
精華主題: * 篇
發(fā)帖數(shù)量: * 個(gè)
工控威望: * 點(diǎn)
下載積分: * 分
在線(xiàn)時(shí)間: (小時(shí))
注冊(cè)時(shí)間: *
最后登錄: *
查看dianchisun的 主題 / 回貼
1樓  發(fā)表于: 2008-07-28 14:47
不錯(cuò),應(yīng)該好好消化。