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

欧姆龙FinsTcp通信详解(一)–PLC常用命令格式文章目录 1 获取 PLC 节点地址 2 读写 PLC 地址内容 2 1Fins TcpHeader2 2FinsFrame2 2 1FinsCommand 2 2FinsHeader 信息 2 2 3FINScommand 和 FINSparamete data2 2 4I O 存储器地址标识 3 常用 FinsCommand 格式 3 1 读存储区 0101 发送格式返回格式举

1 获取PLC节点地址

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

具体格式如下:

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

详细说明:

列表 内容(十六进制) 说明
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-31)(https://note.youdao.com/yws/api/personal/file/WEB1fc1bdb379ced01eee42ae5827dbda6d?method=download&shareKey=80d933acc01d3971d88846d)]

详细说明:

列表 内容(十六进制) 说明
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

2.2.1 Fins Command Frame

2.2.2 Fins Header信息

列表 说明
ICF (Information Control Field) 欧姆龙FinsTcp通信详解(一)--PLC常用命令格式
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到D 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-32)(https://note.youdao.com/yws/api/personal/file/WEBdc7714f99a3300c54ab5636b101ba47a?method=download&shareKey=dbe1c4b5d180f18ddb5ba4ec46f063d1)]

返回格式

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

举例:

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

发送命令:0000A 返回命令:00090A 

3.2 写入存储区:01 02

发送格式

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

返回格式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O0iPkf9P-34)(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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/224868.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 上午10:57
下一篇 2026年3月17日 上午10:57


相关推荐

  • 叉积和点积

    叉积和点积向量是由 n 个实数组成的一个 n 行 1 列 n 1 或一个 1 行 n 列 1 n 的有序数组 向量的点乘 也叫向量的内积 数量积 对两个向量执行点乘运算 就是对这两个向量对应位一一相乘之后求和的操作 点乘的结果是一个标量 点乘公式对于向量 a 和向量 b nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp a 和 b 的点积公式为

    2026年3月16日
    2
  • html css js 注释符号,js 注释怎么写 javascript注释格式|js注释

    html css js 注释符号,js 注释怎么写 javascript注释格式|js注释javascript 注释源码中被 JavaScript 引擎忽略的部分就叫做注释 它的作用是对代码进行解释 即可提高代码的可读性 也可以防止新老同事由于时间间隔很久 看旧代码时业务逻辑难以理解 Javascript 提供两种注释的写法 一种是单行注释 用 起头 另一种是多行注释 放在 和 之间 这是单行注释 这是多行注释 此外 由于历史上 JavaScript 可以兼容 HTML

    2026年3月20日
    2
  • pycharm中查看某个函数定义_pycharm无法调用模块函数

    pycharm中查看某个函数定义_pycharm无法调用模块函数参考文章:pycharm查看函数信息

    2022年8月28日
    4
  • [数学学习笔记]导数的定义

    [数学学习笔记]导数的定义导数的定义 为处的一个增量 这样 称函数 y f x 在处可导 极限值 A 为 y f x 在处的导数 并记作或或导数表示 因变量 y 在自变量处的变化率 例 1 利用导数的定义求函数在 x 3 处的导数 解 例 2 利用导数的定义求函数在 x 0 处的导数 解 导函数的定义 nbsp nbsp 如果函数 f x 在开区间 a b 内可导 那么对于开区间 a b 内的任意一点 x

    2026年3月18日
    2
  • HONOR荣耀50/荣耀50Pro怎么解锁huawei 荣耀50pro屏幕锁开机锁激活设备锁了应该如何强制解除鸿蒙系统刷机解锁方法流程步骤不开机跳过锁屏移除锁定进系统方法经验

    HONOR荣耀50/荣耀50Pro怎么解锁huawei 荣耀50pro屏幕锁开机锁激活设备锁了应该如何强制解除鸿蒙系统刷机解锁方法流程步骤不开机跳过锁屏移除锁定进系统方法经验今天带来一台用户华为荣耀50手机强制清除华为账号锁案例分享,这个台手机是用户公司手机,由于前使用者离职后未能退出手机的华为账号和锁屏密码,导致手机无法使用。自己通过简单的恢复出厂设置后,发现手机有华为账号锁无法激活手机,这才联系到刷机爱好者技术人员,给予远程强制刷机移除华为荣耀60的账号锁。在此提醒广大用户,登录的华为账号建议绑定经常使用的手机号码,防止无法找回密码从而到时手机无法使用。在刷机解锁过程中需要准备以下工具:链接:百度网盘请输入提取码提取码:8888备用下载连接:yun.p

    2022年6月19日
    483
  • 医学图像处理最全综述「建议收藏」

    目录0、引言1、病变检测2、图像分割基于深度学习的医学图像分割与检测3、图像配准图像配准的定义4、图像融合5、预测与挑战6、结论参考文献0、引言医学图像处理的对象是各种不同成像机理的医学影像,临床广泛使用的医学成像种类主要有X-射线成像(X-CT)、核磁共振成像(MRI)、核医学成像(NMI)、超声波成像(UI)四类。在目前的影像医疗诊断中,主要是通过观察一组二维切片图象去发现病变体,这往往需要借助医生的经验来判定。利用计算机图像处理技术对二维切片图象进行.

    2022年4月7日
    202

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号