using HslCommunication.Core.Address; using HslCommunication.Profinet.Melsec; using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace HslCommunication.Profinet.Panasonic { /// /// 松下PLC的MC协议的信息,具体的地址格式请参考备注说明 /// /// /// 地址的输入的格式说明如下: /// /// /// 地址名称 /// 地址代号 /// 地址示例一 /// 地址范围 /// 字操作 /// 位操作 /// /// /// 输入继电器 /// X /// X0000,X100F /// X0000~X109F /// /// /// /// /// 输出继电器 /// Y /// Y0000,Y100F /// Y0000~Y109F /// /// /// /// /// 链接继电器 /// L /// L0000,L100F /// L0000~L0127F /// /// /// /// /// 内部继电器 /// R /// R0000,R100F /// R0000~R511F,R9000~R951F /// /// /// /// /// 数据存储器 /// D /// D100,D200 /// D0~D65532,D90000~D90999 /// /// × /// /// /// 链路寄存器 /// LD /// LD0,LD100 /// LD0~LD255 /// /// × /// /// /// 定时器(当前值) /// TN /// TN100,TN200 /// TN0~TN1023 /// /// × /// /// /// 定时器(接点) /// TS /// TS100,TS200 /// TS0~TS1023 /// /// /// /// /// 计数器(当前值) /// CN /// CN100,CN200 /// CN0~CN1023 /// /// × /// /// /// 计数器(接点) /// CS /// CS100,CS200 /// CS0~CS1023 /// /// /// /// /// public class PanasonicMcNet : MelsecMcNet { #region Constructor /// /// 实例化松下的的Qna兼容3E帧协议的通讯对象 /// public PanasonicMcNet( ) : base( ) { } /// /// 实例化一个基恩士的Qna兼容3E帧协议的通讯对象 /// /// PLC的Ip地址 /// PLC的端口 public PanasonicMcNet( string ipAddress, int port ) : base( ipAddress, port ) { } #endregion #region Address Overeride /// /// 分析地址的方法,允许派生类里进行重写操作 /// /// 地址信息 /// 数据长度 /// 解析后的数据信息 protected override OperateResult McAnalysisAddress( string address, ushort length ) { return McAddressData.ParsePanasonicFrom( address, length ); } #endregion #region Object Override /// /// 返回表示当前对象的字符串 /// /// 字符串信息 public override string ToString( ) { return $"PanasonicMcNet[{IpAddress}:{Port}]"; } #endregion } }