FINS OMRON PLC Java 命令故障排除
FINS OMRON PLC Java Command Troubleshooting
简单地说,我很难为 PLC 准备正确的 FINS 命令。
拓扑结构:
- PC(带Java应用程序)IP:10.1.0.57
- 欧姆龙CS1 PLC IP: 10.1.0.50
正在尝试为 D0100 地址准备消息。消息如下所示:
80 00 02 00 32 00 00 39 00 01 01 01 82 00 64 00 00 01
所以:
ICF: 0x80
RSV: 0x00
GCT: 0x20
DNA: 0x00
DA1: 0x32 (50(dec) which is last octet of PLC IP)
DA2: 0x00
SNA: 0x00
SA1: 0x39 (57(dec) which is last octet of PC IP)
SA2: 0x00
SID: 0x01 (I am increasing this val in every new read)
COMMAND CODE: 0x01 0x01 (read Memory value)
MEM: 0x82
ADDR: 0x00 0x64 (100dec)
BIT: 0x00 (whole address)
LEN: 0x00 0x01 (1 address)
根据文档,一切似乎都正常,但我收到的答案有 16 个字节,看起来像这样:
70 73 78 83 00 00 00 08 00 00 00 03 00 00 00 03
套接字在第二次读取尝试后崩溃。
编辑:
我设法在消息的开头添加了 FINS Header:
46 49 4e 53 00 00 00 1a 00 00 00 02 00 00 00 00
应该是:
0x46: F
0x49: I
0x4e: N
0x53: S
0x00 0x00 0x00 0x1a: 26 - message length
0x00 0x00 0x00 0x02 &
0x00 0x00 0x00 0x00 - part of the response which I got on the beginning. Not sure at all if correct...
现在 Socket 没有崩溃,但是,如果我试图读取任何内容,则没有数据。
我缺少什么?我应该去哪里解决问题?我无法直接访问 PLC,但我可以在同一台 PC 上看到 OPC Server 中的数据流。
提前致谢。
亚当
好的,答案很简单...
Host 的最后一部分 Link Header 必须表示 PC 的 IP,如果您尝试通过网络连接到 OMRON PLC:
46 49 4e 53 00 00 00 1a 00 00 00 02 00 00 00 39
0x39 是 57dec,所以我的 PC IP 的最后一个八位字节。
修改后一切正常!
简单地说,我很难为 PLC 准备正确的 FINS 命令。
拓扑结构:
- PC(带Java应用程序)IP:10.1.0.57
- 欧姆龙CS1 PLC IP: 10.1.0.50
正在尝试为 D0100 地址准备消息。消息如下所示:
80 00 02 00 32 00 00 39 00 01 01 01 82 00 64 00 00 01
所以:
ICF: 0x80
RSV: 0x00
GCT: 0x20
DNA: 0x00
DA1: 0x32 (50(dec) which is last octet of PLC IP)
DA2: 0x00
SNA: 0x00
SA1: 0x39 (57(dec) which is last octet of PC IP)
SA2: 0x00
SID: 0x01 (I am increasing this val in every new read)
COMMAND CODE: 0x01 0x01 (read Memory value)
MEM: 0x82
ADDR: 0x00 0x64 (100dec)
BIT: 0x00 (whole address)
LEN: 0x00 0x01 (1 address)
根据文档,一切似乎都正常,但我收到的答案有 16 个字节,看起来像这样:
70 73 78 83 00 00 00 08 00 00 00 03 00 00 00 03
套接字在第二次读取尝试后崩溃。
编辑: 我设法在消息的开头添加了 FINS Header:
46 49 4e 53 00 00 00 1a 00 00 00 02 00 00 00 00
应该是:
0x46: F
0x49: I
0x4e: N
0x53: S
0x00 0x00 0x00 0x1a: 26 - message length
0x00 0x00 0x00 0x02 &
0x00 0x00 0x00 0x00 - part of the response which I got on the beginning. Not sure at all if correct...
现在 Socket 没有崩溃,但是,如果我试图读取任何内容,则没有数据。 我缺少什么?我应该去哪里解决问题?我无法直接访问 PLC,但我可以在同一台 PC 上看到 OPC Server 中的数据流。
提前致谢。 亚当
好的,答案很简单...
Host 的最后一部分 Link Header 必须表示 PC 的 IP,如果您尝试通过网络连接到 OMRON PLC:
46 49 4e 53 00 00 00 1a 00 00 00 02 00 00 00 39
0x39 是 57dec,所以我的 PC IP 的最后一个八位字节。
修改后一切正常!