以下指令均为16进制数,PC IP地址:192.168.250.24,PLC IP地址:192.168.250.23
一、Fins Tcp
1. 捂手指令
1.1. 发送
46494E53 0000000C 00000000 00000000 00000018
46494E53:ASCII编码:FINS;
0000000C:指后面跟的字节长度;
00000000:固定命令;
00000000:错误代码;
00000018:PC节点IP,当设置为0时,会自动获取节点IP。
1.2. 反馈
46494E53 00000010 00000001 00000000 00000018 00000017
46494E53:ASCII编码:FINS;
00000010:指后面跟的字节长度;
00000001:固定命令;
00000000:错误代码;
00000018:本机电脑节点IP;
00000017:PLC节点IP。
2. 读取指令
读D100开始的2个地址,注:一次最多读1000个地址。
2.1. 发送
46494E53 0000001A 00000002 00000000 80 00 02 001700 001800 FF 0101 82 006400 0002
46494E53:ASCII编码:FINS;
0000001A:指后面跟的字节长度;
00000002:固定命令;
00000000:错误代码;
80:ICF;
00:RSV;
02:GCT;
00:PLC网络地址;
17:PLC节点地址;
00:PLC单元地址;
00:PC网络地址;
18:PC节点地址;
00:PC单元地址;
FF:SID;
0101:读指令;
82:读地址区(D位:02,D字:82,W位:31,C位:30,W字:B1,C字:B0);
006400:起始地址;
0002:读个数。
2.2. 反馈
46494E53 0000001A 00000002 00000000 C0 00 02 001800 001700 FF 0101 0000 AABB CCDD
46494E53:ASCII编码:FINS;
0000001A:指后面跟的字节长度;
00000002:固定命令;
00000000:错误代码;
C0:ICF;
00:RSV;
02:GCT;
00:PC网络地址;
18:PC节点地址;
00:PC单元地址;
00:PLC网络地址;
17:PLC节点地址;
00:PLC单元地址;
FF:SID;
0101:读指令;
0000:读取成功标识;
AABB CCDD:读到的数据。
3. 写入指令
往W10,W11写入AABB,CCDD
3.1. 发送
46494E53 0000001E 00000002 00000000 80 00 02 001700 001800 FF 0102 B1 000A00 0002 AABBCCDD
46494E53:ASCII编码:FINS;
0000001E:指后面跟的字节长度;
00000002:固定命令;
00000000:错误代码;
80:ICF;
00:RSV;
02:GCT;
00:PLC网络地址;
17:PLC节点地址;
00:PLC单元地址;
00:PC网络地址;
18:PC节点地址;
00:PC单元地址;
FF:SID;
0102:写指令;
B1:读地址区(D位:02,D字:82,W位:31,C位:30,W字:B1,C字:B0);
000A00:起始地址;
0002:写个数;
AABBCCDD:写入数据。
3.2. 反馈
46494E53 00000016 00000002 00000000 C0 00 02 001800 001700 FF 0102 0000
46494E53:ASCII编码:FINS;
00000016:指后面跟的字节长度;
00000002:固定命令;
00000000:错误代码;
C0:ICF;
00:RSV;
02:GCT;
00:PC网络地址;
18:PC节点地址;
00:PC单元地址;
00:PLC网络地址;
17:PLC节点地址;
00:PLC单元地址;
FF:SID;
0102:写指令;
0000:写入成功标识。
二、Fins Udp
Fins Udp与Fins Tcp很像,只是Fins Udp不需要发捂手指令,指令从80(ICF)开始。
1. 读取指令
读D100开始的2个通道
1.1. 发送
80 00 02 001700 001800 FF 0101 82 006400 0002
80:ICF;
00:RSV;
02:GCT;
00:PLC网络地址;
17:PLC节点地址;
00:PLC单元地址;
00:PC网络地址;
18:PC节点地址;
00:PC单元地址;
FF:SID;
0101:读指令;
82:读地址区(D位:02,D字:82,W位:31,C位:30,W字:B1,C字:B0);
006400:起始地址;
0002:读个数。
1.2. 反馈
C0 00 02 001800 001700 FF 0101 0000 AABB CCDD
C0:ICF;
00:RSV;
02:GCT;
00:PC网络地址;
18:PC节点地址;
00:PC单元地址;
00:PLC网络地址;
17:PLC节点地址;
00:PLC单元地址;
FF:SID;
0101:读指令;
0000:读取成功标识;
AABB CCDD:读到的数据。
2. 写入指令
往W10,W11写入AABB,CCDD
2.1. 发送
80 00 02 001700 001800 FF 0102 B1 000A00 0002 AABBCCDD
80:ICF;
00:RSV;
02:GCT;
00:PLC网络地址;
17:PLC节点地址;
00:PLC单元地址;
00:PC网络地址;
18:PC节点地址;
00:PC单元地址;
FF:SID;
0102:写指令;
B1:读地址区(D位:02,D字:82,W位:31,C位:30,W字:B1,C字:B0);
000A00:起始地址;
0002:写个数;
AABBCCDD:写入数据。
2.2. 反馈
C0 00 02 001800 001700 FF 0102 0000
C0:ICF;
00:RSV;
02:GCT;
00:PC网络地址;
18:PC节点地址;
00:PC单元地址;
00:PLC网络地址;
17:PLC节点地址;
00:PLC单元地址;
FF:SID;
0102:写指令;
0000:写入成功标识。