【工控老馬】歐姆龍PLC Socket發送Fins/TCP命令解析


歐姆龍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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM