其他分享
首页 > 其他分享> > 【工控老马】欧姆龙PLC Socket发送Fins/TCP命令解析

【工控老马】欧姆龙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

标签:00,欧姆龙,Socket,错误代码,工控,TCP,命令,46494E53,FINS
来源: https://www.cnblogs.com/xushengming/p/15821817.html