...
- 常用寄存器有:
- DM
- CIO,单位:字(2个字节)。用户给的点表地址,可能是CIO:xxx.xx,也可能是I:xx.xx,这个类型也对应CIO
- eview地址按字节或双字示例:CIO:30,CIO数据块的第30个数据。数据长度取决于eview的数据类型。
- eview按位取示例:CIO:30.1,CIO数据块的第30个数据的第2位。最小位0,最大位15。数据长度取决于eview的数据类型,按位必须是BOOL。
- WR,HR,AR,PV,CF,IR,DR,EM
- 点配置方式:寄存器类型:寄存器地址。示例,如:
- DMD:10 CIO:30 WR:10 HR:100
...
1、客户端向服务器发送命令00000000。这个命令长20字节,分成5组4字节。分别是:
头(FINS) + 长度(Hex0C) + 命令(00000000)+ 错误码(00000000) + 客户机节点地址。
46494E53是FINS的ASCII码值,即命令头。客户机节点地址(这个地址可以是IP后几位,也可以是随机数或固定数。但要保证和其他客户端不冲突)。
46 49 4E 53是FINS的ASCII码值,即命令头。
在发送区输入:
46 49 4E 53 00 00 00 0C 00 00 00 00 00 00 00 00 00 00 00 05
头(FINS:46 49 4E 53) + 长度(Hex0C,20字节) + 命令(00 00 00 00)+ 错误码(00 00 00 00) + 客户机节点地址(00 00 00 05,电脑IP地址05),电脑IP地址192.168.0.05的最后一段hex)。的最后一段hex,也可以是任意值)。
2、这个是服务器端(PLC)向客户端(电脑)发送:
...
头(FINS: 46 49 4E 53)+ 长度(24字节-8头,Hex10: 8头,Hex10:00 00 00 10) + 命令(00 00 00 01) + 错误码 (00 00 00 00)+ 客户机节点地址 (00 00 00 05)+ 服务器地址(00 00 00 20)。
上面的命令错误代码为0,客户端ip地址05已被服务器32(hex20)成功记录。
如果发生错误,服务器回应的命令会包含错误码,连接断开,端口立刻关闭。当连接建立之后,不要再次发送这个命令,否则服务器会返回03错误码,即不支持的命令。全部的错误代码如下:
十六进制错误码 含义
00000000 正常
00000001 头不是‘FINS’ (ASCII code)。
00000002 数据太长。
00000003 不支持的命令。
00000020 所有的连接被占用。
00000021 制定的节点已经连接。
00000022 未被指定的IP地址试图访问一个被保护的节点。
00000023 客户端FINS节点地址超范围。
00000024 相同的FINS节点地址已经被使用。
00000025 所有可用的节点地址都已使用。
...
头(46 49 4E 53)+负载长度(26字节,00 00 00 1A)+命令(00 00 00 02:读)+错误码(00 00 00 00)
+??(80 00 02 ICF(80)+RSV(00) + GCT(02) + DNA(00)+目标地址(20 )+00 00+原地址(05)+SN2(00)+事务号(FF)
00)+原地址(00 05)+??(00 FF)+读操作(01 01)+DM存储区代码(82)+起始地址(00 00 00)+数量(02)数量( 02 02)
20000005:20是目标地址,05是源地址;
00FF0101 :0101是读操作;
82000000:82是DM存储区代码,000000是起始地址;
0002:是数量。
返回:
46 49 4E 53 00 00 00 1A 00 00 00 02 00 00 00 00 C0 00 02 00 05 00 00 20 00 FF 01 01 00 00 12 34 56 78
头(46 49 4E 53)+负载长度(26字节,00 00 00 1A)+命令(00 00 00 02:读)+错误码(00 00 00 00)+??(C0 00 02 00)+目标地址(05 00)+原地址(00 20 )+??(00 FF )+读操作(01 01)+操作结果(00 00 )+D0的Hex值(12 34)+数量(56 78)
00001234:0000代表操作成功,1234是读回的第一个字,即D0=Hex1234, 5678:D1=Hex5678
例2-2、W210寄存器写入Hex0388:
发送:
46494E53 0000001C 00000002 00000000 80000200 20000005 00FF0102 B100D200 00010388
20000005:20是目标地址,05是源地址;
00FF0102:0102是写操作代码;
B100D200:B1是W字代码,00D2是起始地址,Hex00D2=212,;
00010388:是写入数量,0388是写入首个内容;
回应:
46494E53 00000016 00000002 00000000 C0000200 05000020 00FF0102 0000
0102后面紧跟的0000代表写入成功。
http://blog.sina.com.cn/hulx
例2-3、W210寄存器读取:
发送:
46494E53 0000001A 00000002 00000000 80000200 20000005 00FF0101 B100D200 0001
20000005:20是目标地址,05是源地址;
00FF0101:0101是读操作代码;
B100D200:B1是W字代码,00D2是起始地址,Hex00D2=212,;
0001:是读取数量。
http://blog.sina.com.cn/hulx
回应:
46494E53 00000018 00000002 00000000 C0000200 05000020 00FF0101 00000388
0102后面紧跟的0000代表读取成功,W210=Hex0388
http://blog.sina.com.cn/hulx
例2-4、强制W212.01=On:
发送:
46494E53 0000001C 00000002 00000000 80000200 20000005 00FF2301 00010001 3100D401
20000005:20是目标地址,05是源地址;
00FF2301:2301是强制操作代码;
00010001:前面的0001是数量,后面的0001代表强制置位操作;
3100D401:31是W位代码,00D401是起始地址,Hex00D446 49 4E 53 00 00 00 1C 00 00 00 02 00 00 00 00 80 00 02 00 20 00 00 05 00 FF 23 01 00 01 00 01 31 00 D4 01
20 00 00 05:20是目标地址,05是源地址;
00 FF 23 01:2301是强制操作代码;
00 01 00 01:前面的0001是数量,后面的00 01代表强制置位操作;
31 00 D4 01:31是W位代码,00D401是起始地址,Hex00D4.01=212.01。
http://blog.sina.com.cn/hulx
回应:
46494E53 00000016 00000002 00000000 C0000200 05000020 00FF2301 000046 49 4E 53 00 00 00 16 00 00 00 02 00 00 00 00 C0 00 02 00 05 00 00 20 00 FF 23 01 00 00
2301后面紧跟的0000表示操作成功。
例2-5、强制W212.01=Off:
发送:
46494E53 0000001C 00000002 00000000 80000200 20000005 00FF2301 00010000 3100D401
20000005:20是目标地址,05是源地址;
00FF2301:2301是强制操作代码;
00010000:0001是数量,0000代表强制复位操作;
3100D401:31是W位代码,00D401是起始地址,Hex00D446 49 4E 53 00 00 00 1C 00 00 00 02 00 00 00 00 80 00 02 00 20 00 00 05 00 FF 23 01 00 01 00 00 31 00 D4 01
20 00 00 05:20是目标地址,05是源地址;
00 FF 23 01:2301是强制操作代码;
00 01 00 00:0001是数量,00 00代表强制复位操作;
31 00 D4 01:31是W位代码,00 D4 01是起始地址,Hex00D4.01=212.01。
回应:
46494E53 00000016 00000002 00000000 C0000200 05000020 00FF2301 0000
2301后面紧跟的0000表示操作成功。
http://blog.sina.com.cn/hulx
例2-6、取消W212.01强制:
发送:
46494E53 0000001C 00000002 00000000 80000200 20000005 00FF2301 0001FFFF 3100D401
20000005:20是目标地址,05是源地址;
00FF2301:2301是强制操作代码;
0001FFFF:0001是数量,FFFF代表取消强制操作;
3100D401:31是W位代码,00D401是起始地址,Hex00D4.01=212.01。
http://blog.sina.com.cn/hulxhttp://blog.sina.com.cn/hulx
回应:
46494E53 00000016 00000002 00000000 C0000200 05000020 00FF2301 0000
2301后面紧跟的0000表示操作成功。
注意在CX-Programmer查看窗口中W212.01的值0后面的(强制)字样不见了,表示已经成功地取消了强制。
...