This commit is contained in:
nikzori
2024-12-09 17:58:37 +03:00
parent 38fb1dfa84
commit edf447db75
5 changed files with 19 additions and 7 deletions

View File

@@ -87,7 +87,7 @@ namespace Gidrolock_Modbus_Scanner
public async Task PollForEntry(Entry entry)
{
byte[] message = new byte[7];
byte[] message = new byte[9];
Console.WriteLine("Sending message: " + Modbus.ByteArrayToString(Modbus.BuildMessage(slaveID, (byte)entry.registerType, entry.address, entry.length, ref message)));
var send = await Modbus.ReadRegAsync(port, slaveID, (FunctionCode)entry.registerType, entry.address, entry.length);
isAwaitingResponse = true;
@@ -125,7 +125,7 @@ namespace Gidrolock_Modbus_Scanner
port.Read(message, i + 3, 1);
}
byte[] data = new byte[length];
for (int i = 0; i < length - 2; i++)
for (int i = 0; i < length; i++)
{
data[i] = message[i+3];
}

View File

@@ -40,5 +40,5 @@ namespace Gidrolock_Modbus_Scanner
this.readOnce = readOnce;
}
}
public enum RegisterType { Coil, Discrete, Holding, Input }
public enum RegisterType { Coil = 1, Discrete = 2, Holding = 3, Input = 4}
}

View File

@@ -280,6 +280,8 @@ namespace Gidrolock_Modbus_Scanner
void PortDataReceived(object sender, EventArgs e)
{
if (datasheet is null)
return;
if (datasheet.Enabled)
return;
@@ -329,7 +331,7 @@ namespace Gidrolock_Modbus_Scanner
private async void Button_SendCommand_Click(object sender, EventArgs e)
{
FunctionCode functionCode = (FunctionCode)CBox_Function.SelectedIndex;
FunctionCode functionCode = (FunctionCode)CBox_Function.SelectedIndex + 1;
ushort address = (ushort)UpDown_RegAddress.Value;
ushort length = (ushort)UpDown_RegLength.Value;
@@ -427,4 +429,4 @@ namespace Gidrolock_Modbus_Scanner
}
}
public enum FunctionCode { ReadCoil, ReadDiscrete, ReadHolding, ReadInput, WriteCoil, WriteRegister, WriteMultCoils, WriteMultRegisters };
public enum FunctionCode { ReadCoil = 1, ReadDiscrete = 2, ReadHolding = 3, ReadInput = 4, WriteCoil = 5, WriteRegister = 6, WriteMultCoils = 15, WriteMultRegisters = 16};

View File

@@ -48,7 +48,7 @@ namespace Gidrolock_Modbus_Scanner
byte[] message = new byte[8];
//Build outgoing modbus message:
BuildMessage(slaveID, (byte)(1 + (int)functionCode), address, length, ref message);
BuildMessage(slaveID, (byte)functionCode, address, length, ref message);
//Send modbus message to Serial Port:
try

View File

@@ -53,7 +53,17 @@
### To-Do
1. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> `.json` <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
1. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> `.json` <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
```js
"checkEntry": {
"registerType": "input"
"address": 200,
"length": 6,
"dataType": "string"
"expectedValue": "SWT485"
}
```
2. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
3. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Modbus TCP