Wrong COM default settings fix.

This commit is contained in:
luosheng
2023-03-21 16:08:13 +08:00
parent c89869086b
commit 94fdb61f38
37 changed files with 150 additions and 244 deletions

View File

@@ -1,8 +1,4 @@
using Microsoft.Extensions.Configuration;
using System;
using System.IO;
namespace Modbus.Net.Modbus
namespace Modbus.Net.Modbus
{
/// <summary>
/// Modbus/Ascii码协议Tcp透传

View File

@@ -1,7 +1,4 @@
using Microsoft.Extensions.Configuration;
using System;
using System.IO;
using System.Text;
using System.Text;
namespace Modbus.Net.Modbus
{

View File

@@ -1,8 +1,4 @@
using Microsoft.Extensions.Configuration;
using System;
using System.IO;
namespace Modbus.Net.Modbus
namespace Modbus.Net.Modbus
{
/// <summary>
/// Modbus/Ascii码协议Udp透传
@@ -15,7 +11,7 @@ namespace Modbus.Net.Modbus
/// <param name="slaveAddress">从站号</param>
/// <param name="masterAddress">主站号</param>
public ModbusAsciiInUdpProtocol(byte slaveAddress, byte masterAddress)
: this(ConfigurationReader.GetValueDirect("UDP:Modbus","IP"), slaveAddress, masterAddress)
: this(ConfigurationReader.GetValueDirect("UDP:Modbus", "IP"), slaveAddress, masterAddress)
{
}

View File

@@ -1,7 +1,4 @@
using Microsoft.Extensions.Configuration;
using System;
using System.IO;
using System.Text;
using System.Text;
namespace Modbus.Net.Modbus
{

View File

@@ -1,8 +1,4 @@
using Microsoft.Extensions.Configuration;
using System;
using System.IO;
namespace Modbus.Net.Modbus
namespace Modbus.Net.Modbus
{
/// <summary>
/// Modbus/Ascii码协议

View File

@@ -1,8 +1,4 @@
using Microsoft.Extensions.Configuration;
using System;
using System.Collections.Generic;
using System.IO;
using System.IO.Ports;
using System.Collections.Generic;
using System.Text;
namespace Modbus.Net.Modbus

View File

@@ -1,8 +1,4 @@
using Microsoft.Extensions.Configuration;
using System;
using System.IO;
namespace Modbus.Net.Modbus
namespace Modbus.Net.Modbus
{
/// <summary>
/// Modbus/Rtu协议tcp透传

View File

@@ -1,8 +1,4 @@
using Microsoft.Extensions.Configuration;
using System;
using System.IO;
namespace Modbus.Net.Modbus
namespace Modbus.Net.Modbus
{
/// <summary>
/// Modbus/Rtu协议连接器Tcp透传

View File

@@ -1,8 +1,4 @@
using Microsoft.Extensions.Configuration;
using System;
using System.IO;
namespace Modbus.Net.Modbus
namespace Modbus.Net.Modbus
{
/// <summary>
/// Modbus/Rtu协议udp透传

View File

@@ -1,8 +1,4 @@
using Microsoft.Extensions.Configuration;
using System;
using System.IO;
namespace Modbus.Net.Modbus
namespace Modbus.Net.Modbus
{
/// <summary>
/// Modbus/Rtu协议连接器Udp透传

View File

@@ -1,8 +1,4 @@
using Microsoft.Extensions.Configuration;
using System;
using System.IO;
namespace Modbus.Net.Modbus
namespace Modbus.Net.Modbus
{
/// <summary>
/// Modbus/Rtu协议

View File

@@ -1,8 +1,4 @@
using Microsoft.Extensions.Configuration;
using System;
using System.Collections.Generic;
using System.IO;
using System.IO.Ports;
using System.Collections.Generic;
namespace Modbus.Net.Modbus
{

View File

@@ -1,8 +1,4 @@
using Microsoft.Extensions.Configuration;
using System;
using System.IO;
namespace Modbus.Net.Modbus
namespace Modbus.Net.Modbus
{
/// <summary>
/// Modbus/Tcp协议

View File

@@ -1,9 +1,4 @@
using Microsoft.Extensions.Configuration;
using System;
using System.Collections.Generic;
using System.IO;
namespace Modbus.Net.Modbus
namespace Modbus.Net.Modbus
{
/// <summary>
/// Modbus/Tcp协议连接器

View File

@@ -1,8 +1,4 @@
using Microsoft.Extensions.Configuration;
using System;
using System.IO;
namespace Modbus.Net.Modbus
namespace Modbus.Net.Modbus
{
/// <summary>
/// Modbus/Udp协议

View File

@@ -1,9 +1,4 @@
using Microsoft.Extensions.Configuration;
using System;
using System.Collections.Generic;
using System.IO;
namespace Modbus.Net.Modbus
namespace Modbus.Net.Modbus
{
/// <summary>
/// Modbus/Udp协议连接器

View File

@@ -1,7 +1,4 @@
using Microsoft.Extensions.Configuration;
using Nito.AsyncEx;
using System;
using System.IO;
using Nito.AsyncEx;
using System.Threading.Tasks;
namespace Modbus.Net.Siemens

View File

@@ -1,8 +1,4 @@
using Microsoft.Extensions.Configuration;
using System;
using System.IO;
using System.IO.Ports;
using System.Threading;
using System.Threading;
using System.Threading.Tasks;

View File

@@ -1,7 +1,4 @@
using Microsoft.Extensions.Configuration;
using Nito.AsyncEx;
using System;
using System.IO;
using Nito.AsyncEx;
using System.Threading.Tasks;
namespace Modbus.Net.Siemens

View File

@@ -1,7 +1,5 @@
using Microsoft.Extensions.Configuration;
using System;
using System;
using System.Collections.Generic;
using System.IO;
namespace Modbus.Net.Siemens
{

View File

@@ -306,7 +306,8 @@ namespace Modbus.Net.Siemens
Wrapper.SendReceiveAsync<WriteRequestSiemensOutputStruct>(
Wrapper[typeof(WriteRequestSiemensProtocol)],
writeRequestSiemensInputStruct);
return new ReturnStruct<bool> {
return new ReturnStruct<bool>
{
Datas = writeRequestSiemensOutputStruct?.AccessResult == SiemensAccessResult.NoError,
IsSuccess = writeRequestSiemensOutputStruct?.AccessResult == SiemensAccessResult.NoError,
ErrorCode = writeRequestSiemensOutputStruct?.AccessResult == SiemensAccessResult.NoError ? 0 : (int)writeRequestSiemensOutputStruct?.AccessResult,

View File

@@ -1,10 +1,7 @@
using Microsoft.Extensions.Configuration;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Modbus.Net
{
@@ -56,7 +53,7 @@ namespace Modbus.Net
var firstColon = path.IndexOf(":");
while (firstColon != -1)
{
root = root?.GetSection(path.Substring(0,firstColon));
root = root?.GetSection(path.Substring(0, firstColon));
path = path.Substring(firstColon + 1);
firstColon = path.IndexOf(":");
}

View File

@@ -1,8 +1,6 @@
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading;
@@ -38,7 +36,7 @@ namespace Modbus.Net
public FifoController(int acquireTime, bool activateSema = true, Func<byte[], ICollection<byte[]>> duplicateFunc = null, int? waitingListMaxCount = null)
: base(duplicateFunc)
{
_waitingListMaxCount = int.Parse(waitingListMaxCount != null ? waitingListMaxCount.ToString() : null ?? ConfigurationReader.GetValueDirect("Controller","WaitingListCount"));
_waitingListMaxCount = int.Parse(waitingListMaxCount != null ? waitingListMaxCount.ToString() : null ?? ConfigurationReader.GetValueDirect("Controller", "WaitingListCount"));
if (activateSema)
{
_taskCycleSema = new Semaphore(0, _waitingListMaxCount);

View File

@@ -21,7 +21,7 @@ namespace Modbus.Net
/// <param name="count">重复次数负数为无限循环0为执行一次</param>
/// <param name="intervalSecond">间隔秒数</param>
/// <returns></returns>
public static ParallelLoopResult RunScheduler<TKey>(IEnumerable<IMachine<TKey>> machines, Func<IMachine<TKey>, MachineGetJobScheduler, Task> machineJobTemplate, int count = 0, int intervalSecond = 1) where TKey: IEquatable<TKey>
public static ParallelLoopResult RunScheduler<TKey>(IEnumerable<IMachine<TKey>> machines, Func<IMachine<TKey>, MachineGetJobScheduler, Task> machineJobTemplate, int count = 0, int intervalSecond = 1) where TKey : IEquatable<TKey>
{
_machineCount = machines.Count();
return Parallel.ForEach(machines, (machine, state, index) =>

View File

@@ -1,6 +1,4 @@
using Microsoft.Extensions.Configuration;
using System;
using System.IO;
using System;
using System.IO.Ports;
namespace Modbus.Net
@@ -24,7 +22,7 @@ namespace Modbus.Net
protected ComProtocolLinker(string com, int slaveAddress, int? baudRate = null, Parity? parity = null, StopBits? stopBits = null, int? dataBits = null,
int? connectionTimeout = null, bool? isFullDuplex = null)
{
baudRate = int.Parse(baudRate != null ? baudRate.ToString() : null ?? ConfigurationReader.GetValue("COM:"+com, "BaudRate"));
baudRate = int.Parse(baudRate != null ? baudRate.ToString() : null ?? ConfigurationReader.GetValue("COM:" + com, "BaudRate"));
parity = Enum.Parse<Parity>(parity != null ? parity.ToString() : null ?? ConfigurationReader.GetValue("COM:" + com, "Parity"));
stopBits = Enum.Parse<StopBits>(stopBits != null ? stopBits.ToString() : null ?? ConfigurationReader.GetValue("COM:" + com, "StopBits"));
dataBits = int.Parse(dataBits != null ? dataBits.ToString() : null ?? ConfigurationReader.GetValue("COM:" + com, "DataBits"));

View File

@@ -1,9 +1,4 @@
using Microsoft.Extensions.Configuration;
using System;
using System.Configuration;
using System.IO;
namespace Modbus.Net
namespace Modbus.Net
{
/// <summary>
/// Tcp连接对象
@@ -19,7 +14,7 @@ namespace Modbus.Net
/// <param name="isFullDuplex">是否为全双工</param>
protected TcpProtocolLinker(string ip, int port, int? connectionTimeout = null, bool? isFullDuplex = null)
{
connectionTimeout = int.Parse(connectionTimeout != null ? connectionTimeout.ToString() : null ?? ConfigurationReader.GetValue("TCP:"+ip+":"+port, "ConnectionTimeout"));
connectionTimeout = int.Parse(connectionTimeout != null ? connectionTimeout.ToString() : null ?? ConfigurationReader.GetValue("TCP:" + ip + ":" + port, "ConnectionTimeout"));
isFullDuplex = bool.Parse(isFullDuplex != null ? isFullDuplex.ToString() : null ?? ConfigurationReader.GetValue("TCP:" + ip + ":" + port, "FullDuplex"));
//初始化连接对象
BaseConnector = new TcpConnector(ip, port, connectionTimeout.Value, isFullDuplex.Value);

View File

@@ -1,8 +1,4 @@
using Microsoft.Extensions.Configuration;
using System;
using System.IO;
namespace Modbus.Net
namespace Modbus.Net
{
/// <summary>
/// Udp连接对象

View File

@@ -213,7 +213,8 @@ namespace Modbus.Net
await BaseUtility.ConnectAsync();
//如果无法连接,终止
if (!BaseUtility.IsConnected) return
new ReturnStruct<Dictionary<string, ReturnUnit>>() {
new ReturnStruct<Dictionary<string, ReturnUnit>>()
{
Datas = null,
IsSuccess = false,
ErrorCode = -1,
@@ -493,7 +494,7 @@ namespace Modbus.Net
ErrorMsg = datas.ErrorMsg
};
}
else if(datas.Datas.Length <
else if (datas.Datas.Length <
(int)
Math.Ceiling(communicateAddress.GetCount *
BigEndianValueHelper.Instance.ByteLength[

View File

@@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Modbus.Net
namespace Modbus.Net
{
/// <summary>
/// 返回引用类型

View File

@@ -2,9 +2,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Policy;
using System.Threading.Tasks;
using System.Xml.Linq;
/// <summary>
/// 端格式

View File

@@ -26,8 +26,8 @@
"FetchSleepTime": "100",
"ConnectionTimeout": "5000",
"BaudRate": "9600",
"Parity": "Parity.None",
"StopBits": "StopBits.One",
"Parity": "None",
"StopBits": "One",
"DataBits": "8",
"FullDuplex": "False",
"Modbus": {

View File

@@ -26,8 +26,8 @@
"FetchSleepTime": "100",
"ConnectionTimeout": "5000",
"BaudRate": "9600",
"Parity": "Parity.None",
"StopBits": "StopBits.One",
"Parity": "None",
"StopBits": "One",
"DataBits": "8",
"FullDuplex": "False",
"Modbus": {

View File

@@ -26,8 +26,8 @@
"FetchSleepTime": "100",
"ConnectionTimeout": "5000",
"BaudRate": "9600",
"Parity": "Parity.None",
"StopBits": "StopBits.One",
"Parity": "None",
"StopBits": "One",
"DataBits": "8",
"FullDuplex": "False",
"Modbus": {

View File

@@ -46,8 +46,8 @@ namespace MachineJob.Service
IMachine<string> machine = new ModbusMachine<string, string>("ModbusMachine1", ModbusType.Tcp, null, _addresses, true, 1, 2, Endian.BigEndianLsb);
IMachine<string> machine2 = new SiemensMachine<string, string>("SiemensMachine1", SiemensType.Tcp, null, SiemensMachineModel.S7_1200, _addresses2, true, 1, 2);
var machines = new List<IMachine<string>>() { machine, machine2 };
IMachine<string> machine3 = new ModbusMachine<string, string>("ModbusMachine2", ModbusType.Rtu, "COM3", _addresses, true, 3, 2);
var machines = new List<IMachine<string>>() { machine, machine2, machine3 };
return Task.Run(() => MultipleMachinesJobScheduler.RunScheduler(machines, async (machine, scheduler) =>
{
await scheduler.From(machine.Id, machine, MachineDataType.Name).Result.Query(machine.Id + ".ConsoleQuery", QueryConsole).Result.To(machine.Id + ".To", machine).Result.Deal(machine.Id + ".Deal", OnSuccess, OnFailure).Result.Run();
@@ -56,7 +56,7 @@ namespace MachineJob.Service
public override Task StopAsync(CancellationToken cancellationToken)
{
return Task.Run(()=>MultipleMachinesJobScheduler.CancelJob());
return Task.Run(() => MultipleMachinesJobScheduler.CancelJob());
}
public Task OnSuccess(string machineId)
@@ -67,13 +67,15 @@ namespace MachineJob.Service
public Task OnFailure(string machineId, int errorCode, string errorMsg)
{
_logger.LogError("Machine {0} set failure", machineId);
_logger.LogError("Machine {0} set failure: {1}", machineId, errorMsg);
return Task.CompletedTask;
}
private Dictionary<string, double> QueryConsole(DataReturnDef dataReturnDef)
private Dictionary<string, double>? QueryConsole(DataReturnDef dataReturnDef)
{
var values = dataReturnDef.ReturnValues.Datas;
if (dataReturnDef.ReturnValues.IsSuccess)
{
foreach (var value in values)
{
_logger.LogInformation(dataReturnDef.MachineId + " " + value.Key + " " + value.Value.DeviceValue);
@@ -113,5 +115,7 @@ namespace MachineJob.Service
return values.MapGetValuesToSetValues();
}
return null;
}
}
}

View File

@@ -26,8 +26,8 @@
"FetchSleepTime": "100",
"ConnectionTimeout": "5000",
"BaudRate": "9600",
"Parity": "Parity.None",
"StopBits": "StopBits.One",
"Parity": "None",
"StopBits": "One",
"DataBits": "8",
"FullDuplex": "False",
"Modbus": {

View File

@@ -26,8 +26,8 @@
"FetchSleepTime": "100",
"ConnectionTimeout": "5000",
"BaudRate": "9600",
"Parity": "Parity.None",
"StopBits": "StopBits.One",
"Parity": "None",
"StopBits": "One",
"DataBits": "8",
"FullDuplex": "False",
"Modbus": {