Example #1
0
        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);
            }
        }
Example #2
0
        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);
                }
            }
        }
Example #4
0
        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);
        }
Example #6
0
 private ushort FixedDecimalBeforeWrite(int addr, EUT55ARegisterAddress register, float value)
 {
     return((ushort)(value *= dicRegRatio[addr][register]));
 }
Example #7
0
 private float Read(int addr, EUT55ARegisterAddress register)
 {
     return(FixedDecimalAfterRead(addr, register, (float)((short)Read(addr, register, 1)[0])));
 }
Example #8
0
 public void SetFixedDecimal(int addr, EUT55ARegisterAddress register, float value)
 {
     dicRegRatio[addr][register] = value;
 }