欧姆龙FinsTcp通信详解(一)--PLC常用命令格式

文章目录

    • 1 获取PLC节点地址
    • 2 读写PLC地址内容
      • 2.1 Fins/Tcp Header
      • 2.2 Fins Frame
        • 2.2.1 Fins Command Frame
        • 2.2.2 Fins Header信息
        • 2.2.3 FINS command和FINS parameter/data
        • 2.2.4 I / O存储器地址标识
    • 3 常用Fins Command格式
      • 3.1 读存储区: 01 01
      • 发送格式
      • 返回格式
      • 举例:
      • 3.2 写入存储区:01 02
      • 发送格式
      • 返回格式
      • 结束码

1 获取PLC节点地址

PLC和上位机建立TCP通信后,可以发送Fins Node Address Data Send(Client to Server) Command命令获取PLC的节点地址。

具体格式如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WdQp9bKS-1571825512529)(https://note.youdao.com/yws/api/personal/file/WEBdf968b520a3e150bd6f157bc1eb8c18f?method=download&shareKey=8bb855386e0290087ee1db7c7bfa97de)]

详细说明:

列表 内容(十六进制) 说明
Header 46494E53 ASCII码:FINS
Length 0000000C 从command之后的数据长度
Command 00000000
Error code 00000000 没用,服务器不需要检测错误
Client node address(Fins node address of Fins/Tcp client 00000000到000000FE 0到254。设置为0,自动获取客户端的Fins节点地址
该命令是在建立Tcp连接之后发送的,当FINS/TCP客户端或服务器建立连接后,再次发送该命令会产生错误,错误代码会通过FINS FRAME SEND ERROR NOTIFICATION命令发送给客户端, 并中断连接。

2 读写PLC地址内容

PLC和上位机建立通信后,可以通过Fins Frame Send命令读写PLC地址。Fins Frame Send命令分为两部分:Fins/Tcp Header和Fins frame。具体格式如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-asIIhu6b-1571825512531)(https://note.youdao.com/yws/api/personal/file/WEB1fc1bdb379ced01eee42ae5827dbda6d?method=download&shareKey=80d933acc01d3971d88846d814047034)]

详细说明:

列表 内容(十六进制) 说明
Header 46494E53 ASCII码:FINS
Length 00000014到000007E4 从command之后的数据长度,包含FinsFrame
Command 00000002
Error code 00000000 没用,接收结束后不需要检测错误
FINS frame …… 从Fins header ICF到最后的数据

2.1 Fins/Tcp Header

Fins/Tcp Header格式相对简单,内容见上表。

2.2 Fins Frame

FINS通信服务是通过FINS命令帧(FINS command frames)及其对应的响应帧(response frames)来实现的。 (也存在没有回应的命令)。
命令帧(command frames)和响应帧(response frames)用于存储传送控制信息,并且都包含FINS header,FINS命令字段存储命令,FINS参数/数据字段用于存储命令参数和传输/响应数据。

2.2.1 Fins Command Frame

Fins Command Frame的格式如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6Jf3hMFV-1571825512532)(https://note.youdao.com/yws/api/personal/file/WEB920e6fd29e415f9247fcb7a3a1dd4838?method=download&shareKey=67530c7fa5bc79801e3a290cfea0c4a0)]

2.2.2 Fins Header信息

列表 说明
ICF (Information Control Field) 欧姆龙FinsTcp通信详解(一)--PLC常用命令格式_第1张图片
RSV (Reserved by System) 设置为00(Hex)
GCT (Permissible Number of Gateways) 设置为02(Hex)
DNA (Destination Network Address) 指定目标节点所在的网络的编号
00(hex):           本地网络
01 to 7F (Hex): 目标网络地址(1到127)
DA1 (Destination Node Address) 指定发送命令的节点的编号。 这个节点地址是FINS所用的地址,不同于IP用于以太网的地址:
00 (Hex):           本地PLC
01 to FE (Hex): 目标节点地址 (1 to 254)
FF (Hex):           广播
当安装多个通信单元时,DA1指定连接到由DNA指定的网络的单元的节点地址
DA2 (Destination Unit Address) 指定目标节点上的单元数:
00 (Hex):           PLC(CPU单元)
10 to 1F (Hex): CPU总线单元号0〜15(16〜31)
E1 (Hex):           内板
FE (Hex):           连接到网络的单元
SNA (Source Network Address) 指定本地节点所在网络的编号。 可以指定的数字范围与DNA相同
SA1 (Source Node Address) 指定本地节点地址。 可以指定的数字范围与DA1相同
SA2 (Source Unit Address) 指定本地节点的单元号。可以指定的数字范围与DA2相同
SID (Service ID) SID用于标识数据发送的过程。 SID可以设置为00到FF十六进制的任何数字。SID用于检测响应请求是否正确,当发送节点与响应节点的SID值相同,代表响应的数据是请求的数据,不相同,代表响应的数据非请求数据。

2.2.3 FINS command和FINS parameter/data

常用Fins命令如下表所示:

类型 命令代码 名称 功能
MR SR
访问I/O存储区 01 01 读内存区 读取连续I/O存储区字的内容
01 02 写内存区 写入连续I/O存储区字的内容
01 03 填充内存区 将相同的数据写入指定范围的I/O存储器区
01 04 多个存储区读取 读取指定的非连续I/O存储区字
01 05 存储区传输 将连续存储I/O存储区字内容复制到另外的I/O存储区
访问参数区 02 01 读取参数区 读取连续参数区字内容
02 02 写入参数区 写入连续参数区字内容
02 03 填充参数区 将相同数据写入到指定范围参数区域字
改变操作模式 04 01 RUN 将CPU单元的操作模式更改为RUN或MONITOR
04 02 STOP 将CPU单元的操作模式更改为编程
读取状态 06 01 读取CPU单元状态 读取CPU单元状态
06 20(*) STOP 读取最大、最小和平均周期时间
错误日志 21 01 错误清除 清除错误或错误信息
21 02 读取错误日志 读取错误日志
21 03 清除错误日志 清除错误日志指针

2.2.4 I / O存储器地址标识

区域 数据类型 CS/CJ/CP/NSJ-series CVM1/CV-series 占用字节长度
存储区代码 存储区地址 存储地址 存储区代码 存储区地址 存储地址
DM区 DM Bit 02 D0000000到D3276715 000000到7FFF0F …… …… …… 1
DM区 DM Word 82 D00000到D32767 000000到7FFF00 82 D00000到D32767 000000到7FFF00 2

3 常用Fins Command格式

3.1 读存储区: 01 01

发送格式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wFgTMJa4-1571825512532)(https://note.youdao.com/yws/api/personal/file/WEBdc7714f99a3300c54ab5636b101ba47a?method=download&shareKey=dbe1c4b5d180f18ddb5ba4ec46f063d1)]

返回格式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-m1hhdDYf-1571825512533)(https://note.youdao.com/yws/api/personal/file/WEBa080804848023c94b443f869c90b965a?method=download&shareKey=88adaf80c4902bf124337762fcbc4d4b)]

举例:

读取DM区地址100,连续10个地址的数据

发送命令:010182006400000A
返回命令:010100000102030405060708090A

3.2 写入存储区:01 02

发送格式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-G95t2wxF-1571825512533)(https://note.youdao.com/yws/api/personal/file/WEBedfb96b9b171595cf41a2220e6a9447e?method=download&shareKey=9dae1f29b956fc2378a80e19ca5565cc)]

返回格式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O0iPkf9P-1571825512534)(https://note.youdao.com/yws/api/personal/file/WEB9f8c7cc1658bfd56cd0a4105dd6337fc?method=download&shareKey=af063328bb91ec681efbd2eeb22534c8)]

结束码

主码 子码 描述 问题原因 解决方法
00:正常情况 00 正常结束 -- ---
01 服务被取消 服务被取消 检查PLC目标节点容量或数据连接状态
01:本地节点错误 01 本地节点错误 本地节点不在网络中 将目标节点添加到网络中
02 令牌超时 超出最大节点地址 设置本地节点小于最大节点地址
03 重试失败 在指定的重试次数内,发送失败 测试通信是否正常
04 发送的帧太多 超出设置的最大发送值 循环发送或重设最大发送值
05 节点地址错误 节点地址设置错误 检查旋转开关的设置,以确保地址在范围内,并且每个地址只在同一个网络中设置一次
06 节点地址重复 相同的节点地址在同一个网络中设置两次 更改相同地址中的节点地址
02:目标节点错误 01 目标节点不在网络中 目标节点不在网络中 将目标节点添加到网络中
02 Unit missing There is no Unit with thespecified unit address. Check the destination unit address
03 Third node missing The third node does not exist. Check the unit address of the third node. Check the node address of the third node in the send data for CMND(490).
Broadcasting was specified. Specify only one node for the third node.
04 Destination node busy The destination node is busy. Increase the number of retries or review the system so that the destination node does not receive so many messages.
05 Response timeout The message was destroyed by noise. Increase the number of retries or test communications between nodes to see if there is too much noise.
The response monitor time is too short. Increase the length of the response monitor time.
The send/receive frame was discarded. Take appropriate measures based on the error history.

注:结束码未完,详见w342-e1-16_cs1_cj1_cp1_com_cmd.pdf中5-1-3 End Code章节中

通信手册下载地址:Ethernet Units Operation Manual

你可能感兴趣的:(通信协议)