Files
KinginfoGateway/doc/docs/20005.mdx
Kimdiego2098 98ae8e692e 添加文档
2024-04-17 12:20:01 +08:00

113 lines
2.9 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
id: 20005
title: Dlt645
---
import useBaseUrl from "@docusaurus/useBaseUrl";
import Tag from "@site/src/components/Tag.js";
import Highlight from '@site/src/components/Highlight.js';
## 定义
程序集:[ThingsGateway.Foundation.Dlt645](https://www.nuget.org/packages/ThingsGateway.Foundation.Dlt645)
## 一、说明
**ThingsGateway.Foundation.Dlt645**是对于Dlt645-2007协议的封装类库
支持多个通讯链路Tcp/Udp/SerialPort
## 二、Dlt645-2007主站
1、创建Dlt645Master
```
/// <summary>
/// 新建链路
/// </summary>
/// <returns></returns>
public IChannel GetChannel()
{
TouchSocketConfig touchSocketConfig = new TouchSocketConfig();
return touchSocketConfig.GetSerialPortWithOption(new("COM1")); //直接获取串口对象
//return touchSocketConfig.GetChannel(ChannelTypeEnum.SerialPortClient, null, null, new("COM1"));//通过链路枚举获取对象
}
/// <summary>
/// 新建协议对象
/// </summary>
/// <param name="channel"></param>
/// <returns></returns>
public IProtocol GetProtocol(IChannel channel)
{
var client = new Dlt645_2007Master(channel);
client.Station = "311111111114";//表号
return client;
}
```
2、读写操作
```
Dlt645MasterTest dlt645MasterTest = new Dlt645MasterTest();
var channel = dlt645MasterTest.GetChannel();
var protocol = dlt645MasterTest.GetProtocol(channel);
var data = await protocol.ReadDoubleAsync("02010100"); //读取A相电压
```
`02010100`是Dlt645中的地址表示方式代表A相电压请查看相关协议文档可在源码附件中找到文档
- 基本地址
| 地址 | 说明 |
| ---------------| --------------------------|
| 02010100 | 读取02010100(A相电压) |
参考DLT2007协议文档数据标识可在插件源码中找到附件
- 站号(可选)
当需要指定站号地址时可使用,举例:
| 地址 | 说明 |
| ---------------| --------------------------|
| s=111111111111;02010100 | 读取02010100 ,设备地址为111111111111 |
- Dtu注册(可选)
当需要指定Dtu客户端可使用举例
| 地址 | 说明 |
| ---------------| --------------------------|
| id=12;40001 | 读取03功能码 ,设备地址为默认Dtu注册包为"12",注意是UTF8格式 |
3、其他方法
修改密码
```
var result = await protocol.WritePasswordAsync(level, oldPassword, newPassword);
```
更改表号
```
var result = await protocol.WriteDeviceStationAsync(station);
```
修改波特率
```
var result = await protocol.WriteBaudRateAsync(baudRate);
```
读取表号
```
var result = await protocol.ReadDeviceStationAsync;
```