mirror of
https://gitee.com/ThingsGateway/ThingsGateway.git
synced 2025-10-23 03:50:30 +08:00
39 lines
1.3 KiB
Plaintext
39 lines
1.3 KiB
Plaintext
---
|
||
id: 601
|
||
title: 采集插件开发
|
||
---
|
||
|
||
import useBaseUrl from "@docusaurus/useBaseUrl";
|
||
import Tag from "@site/src/components/Tag.js";
|
||
import Highlight from '@site/src/components/Highlight.js';
|
||
|
||
## 说明
|
||
|
||
ThingsGateway封装了丰富的协议解析方法,方便开发多种PLC通讯插件
|
||
下面我们以Omron FinsTcp/Udp为例,讲解如何基于ThingsGateway开发一个**通用驱动**以及ThingsGateway插件
|
||
|
||
## 一、协议解析
|
||
|
||
`Fins` 协议是OSI模型第7层上的应用层报文传输协议,我们画一个简单的应用层协议报文解析图
|
||
|
||
| Fins over TCP | Fins over UDP |
|
||
| ---------------| --------------------------|
|
||
| FinsTCP Header | None |
|
||
| FinsUDP Header | FinsUDP Header |
|
||
| Command Data |Command Data |
|
||
|
||
|
||
可以看出,基于Tcp的Fins和基于Udp的Fins协议,差别只是Tcp连接时会加一个FinsTcp报文头。
|
||
下面我们进行每个部分的说明
|
||
|
||
|
||
### 1、FinsTCP Header
|
||
|
||
FinsTcp头部固定为16个字节
|
||
|
||
| FinsTCP Header | 说明 |
|
||
| ---------------| --------------------------|
|
||
| Magic | 固定0x46494E53,也就是FINS字符串的ASCII码 |
|
||
| Length | 后续全部字节的长度 |
|
||
| Command | 0是客户端请求握手,1是服务端返回握手信息,除0,1外是其他方法 |
|