public void Write(int addr, EUT55ARegisterAddress register, float value) { if (Mode == EEthernetMode.Virtual) { return; } if ((addr < SlaveAddr) || (addr >= (SlaveAddr + SlaveCount))) { Log(EEthernetLogItem.Exception, "Occurred invalid address error in UlUT55AEthernetClient.Write"); throw new UT55AException( "Occurred invalid address error in UlUT55AEthernetClient.Write", EUT55AException.InvalidAddress); } try { lock (master) { ushort nValue = FixedDecimalBeforeWrite(addr, register, value); master.WriteSingleRegister((byte)addr, (ushort)register, nValue); } Log(EEthernetLogItem.Send, $"Address : {addr:X2}, Register : {register} - {value:F1}"); } catch (Exception e) { Log(EEthernetLogItem.Exception, e.Message); throw new UT55AException( "Occurred TCP stream sending error in UlUT55AEthernetClient.Write", EUT55AException.Send); } }
private ushort[] Read(int addr, EUT55ARegisterAddress register, int count) { ushort[] nValues; lock (master) { nValues = master.ReadHoldingRegisters((byte)addr, (ushort)register, (ushort)count); if (Logging == EEthernetLogging.All) { logStr.Clear(); logStr.Append($"Address : {addr:X2}, Register : {register} -"); for (int i = 0; i < nValues.Length; i++) { if (i == 0) { logStr.Append($" {nValues[i]:X4}"); } else { logStr.Append($", {nValues[i]:X4}"); } } Log(EEthernetLogItem.Receive, logStr.ToString()); } } return(nValues); }
private void settingController(FormControllerEdit form) { float value = 0; EUT55ARegisterAddress address = EUT55ARegisterAddress.SV; foreach (CheckBox chk in form.Checks) { if (chk.Checked == true) { EUT55ARegisterSeries tag = (EUT55ARegisterSeries)int.Parse(chk.Tag.ToString()); switch (tag) { case EUT55ARegisterSeries.SV: address = EUT55ARegisterAddress.SV; value = float.Parse(form.svEdit.Text); break; case EUT55ARegisterSeries.OUT: address = EUT55ARegisterAddress.MOUT; value = float.Parse(form.outEdit.Text); break; case EUT55ARegisterSeries.Mode: address = EUT55ARegisterAddress.Mode; value = form.modeCombo.SelectedIndex; break; case EUT55ARegisterSeries.P: address = EUT55ARegisterAddress.P; value = float.Parse(form.pEdit.Text); break; case EUT55ARegisterSeries.I: address = EUT55ARegisterAddress.I; value = float.Parse(form.iEdit.Text); break; case EUT55ARegisterSeries.D: address = EUT55ARegisterAddress.D; value = float.Parse(form.dEdit.Text); break; case EUT55ARegisterSeries.FL: address = EUT55ARegisterAddress.FL; value = float.Parse(form.flEdit.Text); break; } Resource.Client.Sender.SetController( NetworkNo, ControllerNo, (int)address, value); } } }
private float FixedDecimalAfterRead(int addr, EUT55ARegisterAddress register, float value) { try { value /= dicRegRatio[addr][register]; } catch (Exception e) { value = 0; Log(EEthernetLogItem.Exception, e.Message); } return(value); }
private void SetController() { int networkNo = packet.IArg1; int controllerNo = packet.IArg2; EUT55ARegisterAddress regAddr = (EUT55ARegisterAddress)packet.IArg3; float value = packet.FArg1; if (server.Devices.Controller.Count == 0) { return; } if (server.Devices.Controller[networkNo].Connected == false) { return; } UlUT55AEthernetClient device = server.Devices.Controller[networkNo]; logger.Log((int)EListenerLogItem.Note, "Changed PID Controller (IP : {0}, Port : {1}, Address : {2}, Register : {3}) to {4:F2}", device.Ip, device.Port, controllerNo, regAddr.ToString(), value); device.Write(controllerNo, regAddr, value); }
private ushort FixedDecimalBeforeWrite(int addr, EUT55ARegisterAddress register, float value) { return((ushort)(value *= dicRegRatio[addr][register])); }
private float Read(int addr, EUT55ARegisterAddress register) { return(FixedDecimalAfterRead(addr, register, (float)((short)Read(addr, register, 1)[0]))); }
public void SetFixedDecimal(int addr, EUT55ARegisterAddress register, float value) { dicRegRatio[addr][register] = value; }