台达 - Snet Docs

Delta 协议驱动

包: Snet.Delta | 类: DeltaOperate | 类型: 5

提供通过串行或以太网上的 Delta 专用协议连接台达 PLC(DVP、AS、AH 系列)的能力。

安装

dotnet add package Snet.Delta

快速开始

using Snet.Delta;

var op = await DeltaOperate.InstanceAsync(new DeltaData.Basics
{
    IpAddress = "192.168.1.100",
    Port = 502
});

var address = new Address(new List<AddressDetails>
{
    new("读数", "D100", DataType.Int16),
    new("读数2", "D102", DataType.Int16)
});
var result = await op.ReadAsync(address);
if (result.Status)
{
    var data = result.GetSource<ConcurrentDictionary<string, AddressValue>>();
    foreach (var kv in data)
        Console.WriteLine($"{kv.Key} = {kv.Value.ResultValue}");
}
else
{
    Console.WriteLine($"读取失败: {result.Message}");
}

// 订阅之前 绑定数据事件
op.OnDataEventAsync += async (sender, e) =>
{
    if (e.Status)
    {
        var data = e.GetSource<ConcurrentDictionary<string, AddressValue>>();
        foreach (var kv in data)
            Console.WriteLine($"{kv.Key} = {kv.Value.ResultValue}");
    }
    else
    {
        Console.WriteLine($"{e.Message}");
    }
};

var subAddr = new Address(new List<AddressDetails>
{
    new("读数", "D100", DataType.Int16)
});
await op.SubscribeAsync(subAddr);

// 后续:取消订阅
// await op.UnSubscribeAsync(subAddr);

await op.DisposeAsync();

配置

参数 类型 默认值 描述
IpAddress string PLC IP 地址
Port int 502 通信端口
ConnectTimeOut int 1000 连接超时(毫秒)
ReceiveTimeOut int 1000 接收超时(毫秒)

支持的协议类型

类型 描述
DeltaTcpNet Delta 专用协议通过以太网 TCP(DVP/AS/AH 系列)
DeltaSerial Delta 专用协议通过串行 RS-232/485
DeltaSerialOverTcp 通过 TCP 桥接的 Delta 串行协议
DeltaSerialAscii Delta ASCII 串行协议
DeltaSerialAsciiOverTcp 通过 TCP 桥接的 Delta ASCII 串行协议

支持的操作

操作 方法
连接 OnAsync()
断开 OffAsync()
读取 ReadAsync(address)
写入 WriteAsync(values)
订阅 SubscribeAsync(address)

参见