Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
        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);
            }
        }