目標要求:
三菱串行通信模塊QJ71C24N跟FX5U PLC進行Modbus通信,讀FX5U的輸入點,寫入FX5U輸出點信號,寫入數據到FX5U,讀FX5U裡的數據。
一,硬體配置:
1,主站PLC配置:
基板:Q35B。
電源:Q61P。
CPU:Q06H。
輸入:QX40。
輸出:QY41P。
串行通信模塊:QJ71C24N。
2,從站PLC:FX5U-32M。
3,RS485通信接線:
SDA一一一一一一一→SDA
| |
RDA RDA
| |
□←終端電阻110→ □
| |
SDB一一一一一一一→SDB
| |
RDB RDB
SG←一一接屏蔽層一→ SG
二,QPLC軟體設置:
1,IO設置:
導航→工程→參數→PLC參數→I/O分配設置→模塊添加→模塊類型:輸入模塊:QX40→輸出模塊:QY41P→串行通信/數據機接口模塊→模塊型號QJ71C24N→設置結束 。佔32點,0030~001F。
2,通信格式設置:
導航→工程→智能功能模塊→0030:QJ71C24N→開關設置:
選擇通道2(CH2),從下往上設置,先設置通信協議→再設置波特率9600bps→設置更改允許→RUN中寫入允許→和校驗代碼無→停止位1→偶數校驗→校驗位有→數據位8→動作設置獨立→確定。
導航→工程→智能功能模塊→0030:QJ71C24N→各種控制指定:
通信控制指定用→CH2,1:字節單位。
通信控制指定用→CH2,1:響應返回禁止(半雙工)。
3,建立協議:
工具→通信協議支持功能→串行通信模塊:
MODBUS常用功能碼:
01,讀線圈狀態(位)。
02,讀輸入狀態(位)。
03,讀一或多個保持寄存器(字)。
04,讀一或多個寄存器(字)。
05,強置單線圈(位)。
06,把字寫入保持寄存器。
08,回送診斷校驗報告從站。
15,強置多線圈。
16,預置多個連續保持寄存器。
分別建立2、3、15、6,四個協議:
新建→協議號添加→類型:通信協議庫→製造商:Schneider Electric→型號:MODBUS→協議名(功能碼):02讀輸入狀態→確定。
刪除ERR接收:右擊協議號→更改為可編輯協議→是→右擊ERR數據包名→刪除→是。
添加協議:點擊添加→類型:通信協議庫→製造商:Schneider Electric→型號:MODBUS→協議名(功能碼):03讀一或多個保持寄存器(字)→確定。
同樣也要刪除ERR接收:右擊協議號→更改為可編輯協議→是→右擊ERR數據包名→刪除→是。
添加協議:點擊添加→類型:通信協議庫→製造商:Schneider Electric→型號:MODBUS→協議名(功能碼):15強置多線圈→確定。
同樣也要刪除ERR接收:右擊協議號→更改為可編輯協議→是→右擊ERR數據包名→刪除→是。
添加協議:點擊添加→類型:通信協議庫→製造商:Schneider Electric→型號:MODBUS→協議名(功能碼):06把字寫入保持寄存器→確定。
同樣也要刪除ERR接收:右擊協議號→更改為可編輯協議→是→右擊ERR數據包名→刪除→是。
變量設置:
右擊協議號1→軟元件批量設置:設置協議號範圍指定:1-4→起始軟元件號:如D0。→是→確定。
點擊工具欄紅色箭頭圖標把協議寫入模塊。
變量配置元素名解釋:
「02RD讀數據」的發送包變量:
Slave Address:從站地址。D0
Function Code:功能代碼。02
Starting Address:開始地址。D1
Quantity of Inputs:輸入點數量D2
Error Check:錯誤檢查。
「02RD讀數據」的接收包變量:
Slave Address:從站地址。D3
Function Code:功能代碼。02
Byte Count:字節長度。
Input Status:輸入狀態值。D4,D5~129
Error Check:錯誤檢查。
D5.0~D5.F。→返回狀態,16個輸入點。
「03RD讀數據」的發送包變量:
Slave Address:從站地址。D130
Function Code:功能代碼。03
Starting Address:開始地址。D131
Quantity of Registers:寄存器數D132
Error Check:錯誤檢查。
「03RD讀數據」的接收包變量:
Slave Address:從站地址。D133
Function Code:功能代碼。03
Byte Count:字節長度。
Register Value:寄存器數值。D134,D135~259←讀的數量
Error Check:錯誤檢查。
「15,WR寫數據」的發送包變量:
Slave Address:從站地址。D260
Function Code:功能代碼。0F
Starting Address:開始地址。D261
Quantity of Outputs:輸出點數D262
Byte Count:字節長度。1位元組單位。
Outputs Value:輸出點數值。D263長度(字節數),D264(數據值如HFFFF)~D388
Error Check:錯誤檢查。
「15,WR寫數據」的接收包變量:
Slave Address:從站地址。D389
Function Code:功能代碼。0F
Starting Address:開始地址。D390
Quantity of Outputs:輸出數值。D391
Error Check:錯誤檢查。
「06WR寫數據」的發送包變量:
Slave Address:從站地址。D392
Function Code:功能代碼。06
Register Address:寄存器地址。D393
Register Value:寄存器數值。D394
Error Check:錯誤檢查。
「06WR寫數據」的接收包變量:
Slave Address:從站地址。D395
Function Code:功能代碼。06
Register Address:寄存器地址。D396
Register Value:寄存器數值。D397
Error Check:錯誤檢查。
FX5UPLC設置:
打開GX Works3軟體,新建FX5UCPC工程。
導航→參數→FX5UCPC→模塊參數→485串口:
基本設置:
設置項目:
協議格式:MODBUS_RTU通信。
奇偶校驗:偶數。
停止位:1bit。
波特率:9600bps。
固有設置:
設置項目:
本站號:1。
MODBUS軟元件分配:
設置項目:
詳細設置:
線圈Y0,起始地址0,分配點數1024。
輸入X0,起始地址0,分配點數1024。
輸入寄存器,起始地址0,分配點數0。
保持寄存器D0,起始地址0,分配點數8000。
起始地址值為0。
程序編寫:
指令解釋:
G.CPRTCL Un n1 n2 (S)(D)。
GP.CPRTCL Un n1 n2 (S)(D)加沿。
Un:模塊的起始輸入輸出信號,如U03。
n1:通道選擇1:CH1,2:CH2。
n2:協議的連續執行數(1~8)。
S:存儲控制數據的軟元件起始編號。
S+0:執行結果,0正常,0以外錯誤碼。
S+1:執行協議數結果,1~8。
S+2~9:執行協議編號指定。
S+10~17:校驗一致接收數據包編號。
D:執行完成時置為1的位軟元件偏號。
線路跟蹤:
點擊工具欄「串行通信模塊的線路跟蹤圖標」→選擇模塊→選擇通道→開始跟蹤。