blankboy
5 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with
28 additions and
1 deletions
-
SCADA/Program/DataService/CacheReader.cs
-
SCADA/Program/ModbusDriver/ModbusRTUDriver.cs
|
|
|
@ -389,7 +389,7 @@ namespace DataService |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
result = (_cache[startIndex + 1] << 16) | ((ushort)_cache[startIndex]); |
|
|
|
result = (_cache[startIndex] << 16) | ((ushort)_cache[startIndex + 1]); |
|
|
|
} |
|
|
|
return new ItemData<int>(result, 0, QUALITIES.QUALITY_GOOD); |
|
|
|
} |
|
|
|
|
|
|
|
@ -414,6 +414,17 @@ namespace ModbusDriver |
|
|
|
dv.Bit--; |
|
|
|
} |
|
|
|
break; |
|
|
|
case '5': |
|
|
|
{ |
|
|
|
dv.DBNumber = Modbus.fctWriteSingleCoil; |
|
|
|
int st; |
|
|
|
int.TryParse(address.Substring(1), out st); |
|
|
|
dv.Bit = (byte)(st % 16); |
|
|
|
st /= 16; |
|
|
|
dv.Start = st; |
|
|
|
dv.Bit--; |
|
|
|
} |
|
|
|
break; |
|
|
|
case '1': |
|
|
|
{ |
|
|
|
dv.DBNumber = Modbus.fctReadDiscreteInputs; |
|
|
|
@ -457,6 +468,22 @@ namespace ModbusDriver |
|
|
|
dv.ByteOrder = ByteOrder.BigEndian; |
|
|
|
} |
|
|
|
break; |
|
|
|
case 'F': |
|
|
|
{ |
|
|
|
int index = address.IndexOf('.'); |
|
|
|
dv.DBNumber = Modbus.fctWriteMultipleRegister; |
|
|
|
if (index > 0) |
|
|
|
{ |
|
|
|
dv.Start = int.Parse(address.Substring(1, index - 1)); |
|
|
|
dv.Bit = byte.Parse(address.Substring(index + 1)); |
|
|
|
} |
|
|
|
else |
|
|
|
dv.Start = int.Parse(address.Substring(1)); |
|
|
|
dv.Start--; |
|
|
|
dv.Bit--; |
|
|
|
dv.ByteOrder = ByteOrder.BigEndian; |
|
|
|
} |
|
|
|
break; |
|
|
|
} |
|
|
|
return dv; |
|
|
|
} |
|
|
|
|