歐姆龍Socket tool發送Fins/TCP命令
實驗設備:CJ2M-CPU33(PLC)
實驗目的:發送Fins/TCP命令讀寫CJ2M-CPU33的數據
實驗步驟:
1、 系統概述,硬件搭建和接線:
圖1.1
2、軟件設置
①首先在PLC里通過CX-Programmer設置CJ2M-CPU33模塊的IP地址和子網掩碼,傳送IO表設置,如下圖所示:
圖1.2
②修改電腦的IP地址:
CJ2M-CPU33的IP地址要與電腦同網段。
圖1.3
③Socket tool設置如下
選擇TCP Client,點擊創建
圖1.4
點擊連接
圖1.5
④發送握手信號
從客戶端發送給服務器的握手信號格式:
圖1.6
從服務器發送給客戶端的握手信號格式:
圖1.7
本實驗是從客戶端發命令到PLC,故發送命46494E53(FINS)0000000C(長度12字節)00000000(命令代碼)00000000(錯誤代碼)00000003(客戶端節點號)
圖1.8
反饋是46494E53(FINS)00000010(長度16字節)00000001(命令代碼)00000000(錯誤代碼)00000003(客戶端節點號)00000001(服務器節點號)
通訊建立成功。
TCP命令格式
圖1.9
FINS FRAME格式
圖1.10
3、實驗現象:
A、讀取W100的數據
給CJ2M-CPU33的W100賦值#1234
圖1.11
發送Fins/TCP命46494E53(FINS)0000001A(數據長度26)00000002(命令代碼)00000000(錯誤代碼)800002000100000300000101B10064000001(FINS命令幀)
圖1.12
反饋是46494E53(FINS)00000018(數據長度24)00000002(命令代碼)0000 0000(錯誤代碼)C0 00 02 00 03 00 00 01 00 00 01 01 00 00 12 34 (FINS反饋幀1234是反饋數據)
B、往D0中寫入數據#1234
發送Fins/TCP命令46494E53(FINS)0000001C(數據長度28)00000002(命令代碼)00000000(錯誤代碼)8000020001000003000001028200000000011234(FINS命令幀)
圖1.13
反饋如下46494E53(FINS)00000016(數據長度22)00000002(命令代碼)00 000000(錯誤代碼)C0 00 02 00 03 00 00 01 00 00 01 02 00 00(FINS反饋幀0000是反饋代碼表示通訊正常)
在CX-Programmer中監控D0可以看到值是#1234
圖1.14
4、實驗總結:
A、如果通訊建立之后又發送了一次握手信號,將會反饋錯誤代碼00000003(該命令不支持)並且通訊將會中斷
B、錯誤代碼是
圖1.15