ETN21以太网fins/TCP命令
实验时间:2014年10月8日
实验设备:CP1H-XA40DR-A、CP1W-EXT01、CJ1W-ETN21、网线
实验目的:利用SOCKETTOOL发送fins/TCP命令,对CPU内存进行读取和写入。
实验步骤:
1、IP地址设置:
①打开电脑本地连接查看IP地址如下:
②usb线连上电脑,打开I/O表,将ETN21模块的ip地址与电脑设置为同一
个网段不同节点,节点号跟硬件上的node number一样,下载重启模块,如下:
2、配置socketool软件
①软件选TCP Client,创建,输入ETN21的IP地址和端口号,端口号9600,如下:
点击连接,显示十六进制值打勾:
3、握手信号
TCP方式客户端需要发给服务器握手信号,等待服务器正常反馈表示握手成功,才能正常交流数据。客户端发出的命令格式如下:
服务器反馈的命令格式如下:
故sockettool发送命令为:46494E53(FINS)0000000C(长度12字节)00000000(命令代码)00000000(错误代码)000000D6(客户端节点号214),即:
46494E530000000C0000000000000000000000D6
46494E530000000C00000000000000000000003C
反馈是46494E53(FINS)00000010(长度16字节)00000001(命令代码)00000000(错误代码)000000D6(客户端节点号)00000003(服务器节点号)
通讯建立成功。
4、TCP命令
①命令帧如下,ETN手册W421第7-4有相关介绍,如下:
Fins 命令格式:
实验现象:
1、勾选16进制,输入读取D1命令:发送Fins/TCP命46494E53(FINS)0000001A(数据长度26)00000002(命令代码)00000000(错误代码)80000200030000D600000101820001000001(FINS命令帧),即:
46494E530000001A000000020000000080000200030000D600000101820001000001
46494E530000001A0000000200000000800002000100003C00000101820001000001
写入命令,CIO区100.01和100.02置位:发送Fins/TCP命令46494E53(FINS)0000001C(数据长度28)00000002(命令代码)00000000(错误代码)
80000200030000D6000001023000640100020101(FINS命令帧)
即:46494E530000001C000000020000000080000200030000D6000001023000640100020101
查看内存:
并可看到输出灯100.01和100.02亮。
Response
实验总结:
1、Socket Tool 中一定要将下面以显示十六进制值打钩,否则无法正确读到数据。
2、对为操作由于命令发送是按字节发送,故对单个字置1或0时要用01或者00。
3、注意ETN模块面板node number要和IP地址最后一位一样。
4、如果通讯建立之后又发送了一次握手信号,将会反馈错误代码00000003(该命令不支持)并且通讯将会中断;发送错误会反馈错误信息,一样会中断。
5、错误代码有如下: