Browse Source

Merge cca238e043 into de2e4ed071

pull/23/merge
blankboy 5 years ago
committed by GitHub
parent
commit
abfd677039
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      SCADA/Program/DataService/CacheReader.cs
  2. 27
      SCADA/Program/ModbusDriver/ModbusRTUDriver.cs

2
SCADA/Program/DataService/CacheReader.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);
}

27
SCADA/Program/ModbusDriver/ModbusRTUDriver.cs

@ -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;
}

Loading…
Cancel
Save