跳到主要内容

Dlt645

定义

程序集:ThingsGateway.Foundation.Dlt645

一、说明

ThingsGateway.Foundation.Dlt645是对于Dlt645-2007协议的封装类库

支持多个通讯链路:Tcp/Udp/SerialPort

二、Dlt645-2007主站

1、创建Dlt645Master

      
/// <summary>
/// 新建协议对象
/// </summary>
/// <returns></returns>
public Dlt645_2007Master GetDevice()
{
var clientConfig = new TouchSocket.Core.TouchSocketConfig();
var client = new Dlt645_2007Master();
var clientChannel = client.CreateChannel(clientConfig, new ChannelOptions() { ChannelType = ChannelTypeEnum.SerialPort, PortName = "COM1" });
client.InitChannel(new(clientChannel));

client.Station = "311111111114";//表号

return client;
}

2、读写操作

        public async Task Test()
{
var dlt2007 = GetDevice();

var data = await dlt2007.ReadDoubleAsync("02010100"); //读取A相电压
Console.WriteLine(data.IsSuccess ? $"A相电压:{data}" : data.ToString());
}


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 dlt2007.WritePasswordAsync(level, oldPassword, newPassword);

更改表号

      var result = await dlt2007.WriteDeviceStationAsync(station);

修改波特率

      var result = await dlt2007.WriteBaudRateAsync(baudRate);

读取表号

      var result = await dlt2007.ReadDeviceStationAsync;