private void WriteSingleRegister(Device _d, ModbusCommandSignal _commandSignal) { ModbusTCPDevice d = Devices.Where(device => device.ID == _d.ID).First(); ushort value = 0; try { switch (_commandSignal.commandType) { case ModbusCommandSignal.CommandType.Binary: int bit = (_commandSignal.CommandValue) > 0 ? 1 : 0; value = (ushort)(bit << _commandSignal.BitNumber); master.WriteSingleRegister(d.SlaveID, _commandSignal.Address, value); break; case ModbusCommandSignal.CommandType.Analog: value = (ushort)_commandSignal.CommandValue; break; default: break; } master.WriteSingleRegister(d.SlaveID, _commandSignal.Address, value); } catch (Exception ex) { Log.Instance.Error("{0}: {1} adlı sinyale {2} değeri yazılamadı => {3}", this.GetType().Name, _commandSignal.Identification, _commandSignal.CommandValue, ex.Message); } }
private void WriteSingleCoil(Device _d, ModbusCommandSignal _commandSignal) { ModbusTCPDevice d = Devices.Where((device) => device.ID == _d.ID).First(); try { bool value = _commandSignal.CommandValue > 0 ? false : true; master.WriteSingleCoil(d.SlaveID, _commandSignal.Address, value); } catch (Exception ex) { Log.Instance.Error("{0}: {1} adlı sinyale {2} değeri yazılamadı => {3}", this.GetType().Name, _commandSignal.Identification, _commandSignal.CommandValue, ex.Message); } }