工业互联网通讯协议—欧姆龙(Fins tcp)

2024-05-01 08:44

本文主要是介绍工业互联网通讯协议—欧姆龙(Fins tcp),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、场景

近期公司要对欧姆龙CP系列设备的数据采集,于是就研究了下欧姆龙的Fins Tcp协议。

二、Fins Tcp

组成字节说明
固定头446494E53 FINS对应的ASCII码的十六进制
长度4后面剩余指令的长度
命令4

握手固定为:00000000

读写固定为:00000002

错误码4

00000000:正常

00000001:头不是‘FINS’(ASCII code)

00000002:数据太长

00000003:不支持的命令

00000020:超过连接上限

00000021:指定的节点已经处于连接中

00000022:尝试去连接一个受保护的网络节点,该节点还未配置到PLC中

00000023:客户端FINS节点地址超范围

00000024:当前客户端的节点地址已被使用

00000025:所有的节点地址已被使用

ICF1

信息控制域,发送固定为80(1000 0000),响应固定位C0(1100 0000)。

bit0:0表示需要回复,1表示不需要回复;

bit6: 0表示发送,1表示响应

RSV1固定值00,系统预留
GCT1固定值02,(Permissible Number of Gateways)
DNA1固定值00,目标网络号,即PLC网络地址。01-7F: 目标网络地址(1到127)

DA1

1目标节点地址,即PLC IP最后一位的hex
DA21目标单元地址,固定值00
SNA1PC网络地址,固定值00
SA11PC节点地址,即PC IP地址最后一位的hex,为0时PLC自己获取
SA21PC单元地址,固定为00
SID1

固定值00,用于表示数据发送的过程,00-FF,用于检测响应请求是否正确。

当发送节点与响应节点SID值相同,则代表响应的数据是请求的数据;

不同时,代表响应的数据非请求数据

MRC1主请求码
SRC1次请求码,主/次组合:0101读操作 0102写操作 2301强制操作
ParameterN具体看情况区分

Parameter读写命令格式分类

组成字节说明
Area1D位:02,D字:82; W位:31,W字:B1; C位:30,C字:B0
Address3起始地址(2bit)+位地址(1bit)
Length2读取或写入的数据长度
Value2写操作时的数据

Parameter中PLC回复报文
组成字节说明
错误码2错误码(先判断错误码,再去解析后面的数值)
数据Length * 2读取到的数值,每个数值占2字节
  • 握手报文

Socket连接上后,需要第一时间发送握手报文,否则PLC会断开与PC的连接。

PC Send: 

46 49 4E 53 00 00 00 0C 00 00 00 00 00 00 00 00 00 00 00 01

PC Recevice:

46 49 4E 53 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01
  • 读取点位报文

这篇关于工业互联网通讯协议—欧姆龙(Fins tcp)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/951228

相关文章

HTTP 与 SpringBoot 参数提交与接收协议方式

《HTTP与SpringBoot参数提交与接收协议方式》HTTP参数提交方式包括URL查询、表单、JSON/XML、路径变量、头部、Cookie、GraphQL、WebSocket和SSE,依据... 目录HTTP 协议支持多种参数提交方式,主要取决于请求方法(Method)和内容类型(Content-Ty

Java对接MQTT协议的完整实现示例代码

《Java对接MQTT协议的完整实现示例代码》MQTT是一个基于客户端-服务器的消息发布/订阅传输协议,MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛,:本文主要介绍Ja... 目录前言前置依赖1. MQTT配置类代码解析1.1 MQTT客户端工厂1.2 MQTT消息订阅适配器1.

Linux中的自定义协议+序列反序列化用法

《Linux中的自定义协议+序列反序列化用法》文章探讨网络程序在应用层的实现,涉及TCP协议的数据传输机制、结构化数据的序列化与反序列化方法,以及通过JSON和自定义协议构建网络计算器的思路,强调分层... 目录一,再次理解协议二,序列化和反序列化三,实现网络计算器3.1 日志文件3.2Socket.hpp

Linux中的HTTPS协议原理分析

《Linux中的HTTPS协议原理分析》文章解释了HTTPS的必要性:HTTP明文传输易被篡改和劫持,HTTPS通过非对称加密协商对称密钥、CA证书认证和混合加密机制,有效防范中间人攻击,保障通信安全... 目录一、什么是加密和解密?二、为什么需要加密?三、常见的加密方式3.1 对称加密3.2非对称加密四、

Linux之UDP和TCP报头管理方式

《Linux之UDP和TCP报头管理方式》文章系统讲解了传输层协议UDP与TCP的核心区别:UDP无连接、不可靠,适合实时传输(如视频),通过端口号标识应用;TCP有连接、可靠,通过确认应答、序号、窗... 目录一、关于端口号1.1 端口号的理解1.2 端口号范围的划分1.3 认识知名端口号1.4 一个进程

如何在Spring Boot项目中集成MQTT协议

《如何在SpringBoot项目中集成MQTT协议》本文介绍在SpringBoot中集成MQTT的步骤,包括安装Broker、添加EclipsePaho依赖、配置连接参数、实现消息发布订阅、测试接口... 目录1. 准备工作2. 引入依赖3. 配置MQTT连接4. 创建MQTT配置类5. 实现消息发布与订阅

使用Python进行GRPC和Dubbo协议的高级测试

《使用Python进行GRPC和Dubbo协议的高级测试》GRPC(GoogleRemoteProcedureCall)是一种高性能、开源的远程过程调用(RPC)框架,Dubbo是一种高性能的分布式服... 目录01 GRPC测试安装gRPC编写.proto文件实现服务02 Dubbo测试1. 安装Dubb

C#使用MQTTnet实现服务端与客户端的通讯的示例

《C#使用MQTTnet实现服务端与客户端的通讯的示例》本文主要介绍了C#使用MQTTnet实现服务端与客户端的通讯的示例,包括协议特性、连接管理、QoS机制和安全策略,具有一定的参考价值,感兴趣的可... 目录一、MQTT 协议简介二、MQTT 协议核心特性三、MQTTNET 库的核心功能四、服务端(BR

SpringBoot快速搭建TCP服务端和客户端全过程

《SpringBoot快速搭建TCP服务端和客户端全过程》:本文主要介绍SpringBoot快速搭建TCP服务端和客户端全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录TCPServerTCPClient总结由于工作需要,研究了SpringBoot搭建TCP通信的过程

Nginx中配置HTTP/2协议的详细指南

《Nginx中配置HTTP/2协议的详细指南》HTTP/2是HTTP协议的下一代版本,旨在提高性能、减少延迟并优化现代网络环境中的通信效率,本文将为大家介绍Nginx配置HTTP/2协议想详细步骤,需... 目录一、HTTP/2 协议概述1.HTTP/22. HTTP/2 的核心特性3. HTTP/2 的优