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