三菱 - Snet Docs

Mitsubishi 协议驱动

包: Snet.Mitsubishi | 类: MitsubishiOperate | 类型: 14

提供通过 MC 协议(1E/3E/4E 帧)、FX 编程口和 A1E(AnA/AnU CPU)协议连接三菱 PLC 的能力。

安装

dotnet add package Snet.Mitsubishi

快速开始

using Snet.Mitsubishi;

var op = new MitsubishiOperate(new MitsubishiData.Basics
{
    IpAddress = "192.168.1.100",
    Port = 6000
});

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 6000 通信端口
ConnectTimeOut int 1000 连接超时(毫秒)
ReceiveTimeOut int 1000 接收超时(毫秒)

支持的协议类型

类型 描述
MelsecCipNet CIP(EtherNet/IP),适用于 iQ-R/iQ-F 系列
MelsecA1ENet A1E 二进制帧通过以太网(A/QnA 系列)
MelsecA1EAsciiNet A1E ASCII 帧通过以太网
MelsecMcNet MC 3E 二进制帧通过 TCP(iQ-R/iQ-F/Q/L 系列)
MelsecMcUdp MC 3E 二进制帧通过 UDP
MelsecMcAsciiNet MC 3E ASCII 帧通过 TCP
MelsecMcAsciiUdp MC 3E ASCII 帧通过 UDP
MelsecMcRNet MC 4E 二进制帧支持路由(iQ-R 系列)
MelsecFxSerial FX 编程口协议(FX 系列,RS-232/485)
MelsecFxSerialOverTcp 通过 TCP 桥接的 FX 串行协议
MelsecFxLinks FX Links 协议(FX 系列,RS-485)
MelsecFxLinksOverTcp 通过 TCP 桥接的 FX Links 协议
MelsecA3CNet A3C 帧通过以太网(A 系列)
MelsecA3CNetOverTcp 通过 TCP 桥接的 A3C 帧

地址格式

  • 数据寄存器: D100, D200
  • 链接寄存器: W0, W1FF
  • 输入: X0, X10
  • 输出: Y0, Y10
  • 内部继电器: M0, M100
  • 锁存继电器: L0
  • 特殊继电器: SM400, SD400
  • 定时器/计数器: TN0, CN0
  • 文件寄存器: R0, ZR0

支持的操作

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

参见