2017-02-07 update 1 Add comments and documents.

This commit is contained in:
parallelbgls
2017-02-07 17:15:05 +08:00
parent 0d19567038
commit ff81e4aa09
34 changed files with 463 additions and 16 deletions

View File

@@ -1,5 +1,8 @@
namespace Modbus.Net.Modbus
{
/// <summary>
/// 南大奥拓NA200H专用AddressFormater
/// </summary>
public class AddressFormaterNA200H : AddressFormater
{
public override string FormatAddress(string area, int address)
@@ -13,6 +16,9 @@
}
}
/// <summary>
/// Modbus标准AddressFormater
/// </summary>
public class AddressFormaterModbus : AddressFormater
{
public override string FormatAddress(string area, int address)

View File

@@ -4,12 +4,21 @@ using System.Linq;
namespace Modbus.Net.Modbus
{
/// <summary>
/// NA200H数据单元翻译器
/// 南大奥拓NA200H数据单元翻译器
/// </summary>
public class AddressTranslatorNA200H : AddressTranslator
{
/// <summary>
/// 读功能码
/// </summary>
protected Dictionary<string, AreaOutputDef> ReadFunctionCodeDictionary;
/// <summary>
/// 功能码翻译至标准Modbus地址位置
/// </summary>
protected Dictionary<string, int> TransDictionary;
/// <summary>
/// 写功能码
/// </summary>
protected Dictionary<string, AreaOutputDef> WriteFunctionCodeDictionary;
public AddressTranslatorNA200H()
@@ -188,7 +197,13 @@ namespace Modbus.Net.Modbus
/// </summary>
public class AddressTranslatorModbus : AddressTranslator
{
/// <summary>
/// 读功能码
/// </summary>
protected Dictionary<string, AreaOutputDef> ReadFunctionCodeDictionary;
/// <summary>
/// 写功能码
/// </summary>
protected Dictionary<string, AreaOutputDef> WriteFunctionCodeDictionary;
public AddressTranslatorModbus()

View File

@@ -1,7 +1,7 @@
namespace Modbus.Net.Modbus
{
/// <summary>
/// Modbus/Rtu协议
/// Modbus/Ascii码协议
/// </summary>
public class ModbusAsciiProtocal : ModbusProtocal
{

View File

@@ -3,6 +3,9 @@ using System.Text;
namespace Modbus.Net.Modbus
{
/// <summary>
/// Modbus/Ascii码协议连接器
/// </summary>
public class ModbusAsciiProtocalLinker : ComProtocalLinker
{
public ModbusAsciiProtocalLinker(string com) : base(com, 9600, Parity.None, StopBits.One, 8)

View File

@@ -2,6 +2,9 @@
namespace Modbus.Net.Modbus
{
/// <summary>
/// Modbus设备
/// </summary>
public class ModbusMachine : BaseMachine
{
public ModbusMachine(ModbusType connectionType, string connectionString,

View File

@@ -4,6 +4,9 @@ using System.Threading.Tasks;
namespace Modbus.Net.Modbus
{
/// <summary>
/// 变量功能码
/// </summary>
internal enum ModbusProtocalVariableFunctionCode : byte
{
ReadVariable = 20,
@@ -39,6 +42,9 @@ namespace Modbus.Net.Modbus
WriteMultiRegister = 16
}
/// <summary>
/// Modbus协议
/// </summary>
public abstract class ModbusProtocal : BaseProtocal
{
protected ModbusProtocal(byte slaveAddress, byte masterAddress) : base(slaveAddress, masterAddress)

View File

@@ -57,6 +57,7 @@ namespace Modbus.Net.Modbus
{
public override byte[] BytesExtend(byte[] content)
{
//Modbus/Ascii协议扩张前面增加:后面增加LRC校验和尾字符
var newContent = new List<byte>();
newContent.AddRange(Encoding.ASCII.GetBytes(":"));
foreach (var number in content)
@@ -71,6 +72,7 @@ namespace Modbus.Net.Modbus
public override byte[] BytesDecact(byte[] content)
{
//Modbus/Ascii协议收缩抛弃头尾。
var newContent = new List<byte>();
var ans = Encoding.ASCII.GetString(content);
var index = ans.IndexOf(Environment.NewLine);

View File

@@ -2,6 +2,9 @@
namespace Modbus.Net.Modbus
{
/// <summary>
/// Modbus/Rtu协议连接器
/// </summary>
public class ModbusRtuProtocalLinker : ComProtocalLinker
{
public ModbusRtuProtocalLinker(string com) : base(com, 9600, Parity.None, StopBits.One, 8)

View File

@@ -1,5 +1,8 @@
namespace Modbus.Net.Modbus
{
/// <summary>
/// Modbus/Tcp协议连接器
/// </summary>
public class ModbusTcpProtocalLinker : TcpProtocalLinker
{
public ModbusTcpProtocalLinker(string ip) : base(ip, int.Parse(ConfigurationManager.ModbusPort))

View File

@@ -23,8 +23,14 @@ namespace Modbus.Net.Modbus
Ascii = 2
}
/// <summary>
/// Modbus基础Api入口
/// </summary>
public class ModbusUtility : BaseUtility
{
/// <summary>
/// Modbus协议类型
/// </summary>
private ModbusType _modbusType;
public ModbusUtility(int connectionType, byte slaveAddress, byte masterAddress)
@@ -81,6 +87,7 @@ namespace Modbus.Net.Modbus
_modbusType = value;
switch (_modbusType)
{
//Rtu协议
case ModbusType.Rtu:
{
Wrapper = ConnectionString == null
@@ -88,6 +95,7 @@ namespace Modbus.Net.Modbus
: new ModbusRtuProtocal(ConnectionString, SlaveAddress, MasterAddress);
break;
}
//Tcp协议
case ModbusType.Tcp:
{
Wrapper = ConnectionString == null
@@ -98,6 +106,7 @@ namespace Modbus.Net.Modbus
MasterAddress));
break;
}
//Ascii协议
case ModbusType.Ascii:
{
Wrapper = ConnectionString == null
@@ -114,6 +123,12 @@ namespace Modbus.Net.Modbus
ModbusType = (ModbusType) connectionType;
}
/// <summary>
/// 读数据
/// </summary>
/// <param name="startAddress">起始地址</param>
/// <param name="getByteCount">获取字节个数</param>
/// <returns>获取的结果</returns>
public override async Task<byte[]> GetDatasAsync(string startAddress, int getByteCount)
{
try
@@ -131,6 +146,12 @@ namespace Modbus.Net.Modbus
}
}
/// <summary>
/// 写数据
/// </summary>
/// <param name="startAddress">起始地址</param>
/// <param name="setContents">需要设置的数据</param>
/// <returns>设置是否成功</returns>
public override async Task<bool> SetDatasAsync(string startAddress, object[] setContents)
{
try
@@ -149,6 +170,10 @@ namespace Modbus.Net.Modbus
}
/*
/// <summary>
/// 读时间
/// </summary>
/// <returns>设备的时间</returns>
public override DateTime GetTime()
{
try
@@ -165,6 +190,11 @@ namespace Modbus.Net.Modbus
}
}
/// <summary>
/// 写时间
/// </summary>
/// <param name="setTime">需要写入的时间</param>
/// <returns>写入是否成功</returns>
public override bool SetTime(DateTime setTime)
{
try

View File

@@ -1,4 +1,4 @@
Modbus.Net
Modbus.Net.Modbus
===================
[![NuGet](https://img.shields.io/nuget/v/Modbus.Net.Modbus.svg)](https://www.nuget.org/packages/Modbus.Net.Modbus/)