Exemple #1
0
 private void buttonParametr_Click(object sender, EventArgs e)
 {
     try
     {
         if (modbusClient == null || modbusClient.Connected == false)
         {
             connectSKU(IpAdress.Text, Convert.ToInt32(Port.Text));
             textBoxNumberBrigada.Text = RegisterValueConvertToInt(modbusClient, 28).ToString();//Id текущей бригады 27 регистр
             if (RegisterValueConvertToInt(modbusClient, 8) == 1)
             {
                 radioButton2.Checked = true;
             }
             else if (RegisterValueConvertToInt(modbusClient, 8) == 0)
             {
                 radioButton1.Checked = true;
             }
             LabelTimeNow.Text = getDateTimeFromDevice();//время и дата(число секунд прошедших с 1.1.2013 0х420,0х421)
             if (!SubscribeToTimerEvent)
             {
                 TimeSubscribe();
             }
             textBoxPorogLog.Text = RegisterValueConvertToFloat(modbusClient, 58).ToString(); //Порог логирования
             textBoxPorogK2.Text  = RegisterValueConvertToFloat(modbusClient, 54).ToString(); //Порог K1 оповщатель
             textBoxPorogK1.Text  = RegisterValueConvertToFloat(modbusClient, 56).ToString(); //Порог K2 отс клапан
             textBoxImpVP.Text    = RegisterValueConvertToInt(modbusClient, 59).ToString();   //Импульс на оборот ВП
             textBoxImpNP.Text    = RegisterValueConvertToInt(modbusClient, 99).ToString();   //Импульс на оборот НП
             LabelTimeNow.Visible = true;
         }
         modbusClient.WriteSingleRegister(55, ModbusClient.ConvertFloatToRegisters(Convert.ToSingle(textBoxPorogK1.Text))[1]);
         modbusClient.WriteSingleRegister(53, ModbusClient.ConvertFloatToRegisters(Convert.ToSingle(textBoxPorogK2.Text))[1]);
         modbusClient.WriteSingleRegister(57, ModbusClient.ConvertFloatToRegisters(Convert.ToSingle(textBoxPorogLog.Text))[1]);
         modbusClient.WriteSingleRegister(27, Convert.ToInt32(textBoxNumberBrigada.Text));
         modbusClient.WriteSingleRegister(58, Convert.ToInt32(textBoxImpVP.Text));
         modbusClient.WriteSingleRegister(98, Convert.ToInt32(textBoxImpNP.Text));
         if (radioButton2.Checked == true)
         {
             modbusClient.WriteSingleRegister(7, Convert.ToInt32("1"));
         }
         else if (radioButton1.Checked == true)
         {
             modbusClient.WriteSingleRegister(7, Convert.ToInt32("0"));
         }
         modbusClient.ConnectionTimeout = 1;
     }
     catch (Exception ex)
     {
         if (ex.Message == "connection timed out")
         {
             MessageBox.Show("Подключение не установленно. Время ожидания подключения истекло");
         }
         else
         {
             MessageBox.Show(ex.Message);
         }
     }
 }
        private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            ModbusClient modbusClient = new ModbusClient("192.168.1.101", 502);    //Ip-Address and Port of Modbus-TCP-Server

            modbusClient.Connect();
            float TolerancjaTemperatury = float.Parse(txtTolerancjaTemperatury.Text);

            int[] aaa = ModbusClient.ConvertFloatToRegisters(TolerancjaTemperatury);
            modbusClient.WriteMultipleRegisters(4508, aaa);
            modbusClient.Disconnect();
        }
        private void BtnUstawTolerancjeCisnienia_N4_Click(object sender, RoutedEventArgs e)
        {
            ModbusClient modbusClient = new ModbusClient("192.168.1.101", 502);    //Ip-Address and Port of Modbus-TCP-Server

            modbusClient.Connect();
            float TolerancjaCisnienia_N4 = float.Parse(txtCisnienieTolerancja_N4.Text);

            int[] aaa = ModbusClient.ConvertFloatToRegisters(TolerancjaCisnienia_N4);
            modbusClient.WriteMultipleRegisters(4530, aaa);
            modbusClient.Disconnect();
        }
        private void btnTemperatuaZadana(object sender, RoutedEventArgs e)
        {
            ModbusClient modbusClient = new ModbusClient("192.168.1.101", 502);    //Ip-Address and Port of Modbus-TCP-Server

            modbusClient.Connect();
            float TemperaturaZadana = float.Parse(txtTemperaturaZadana.Text);

            int[] aaa = ModbusClient.ConvertFloatToRegisters(TemperaturaZadana);
            modbusClient.WriteMultipleRegisters(4506, aaa);
            modbusClient.Disconnect();
        }
        private void TnUstawCisnienie_N3_Click(object sender, RoutedEventArgs e)
        {
            ModbusClient modbusClient = new ModbusClient("192.168.1.101", 502);    //Ip-Address and Port of Modbus-TCP-Server

            modbusClient.Connect();
            float CisnienieZadane_N3 = float.Parse(txtCisnienieZadane_N3.Text);

            int[] aaa = ModbusClient.ConvertFloatToRegisters(CisnienieZadane_N3);
            modbusClient.WriteMultipleRegisters(4516, aaa);
            modbusClient.Disconnect();
        }
Exemple #6
0
 // 1. Run the Write - Part on a Threadpool Thread ...
 private Task WriteRegAsync(float variable, ModbusClient client)
 {
     return(Task.Run(() =>
     {
         client.WriteMultipleRegisters(
             2,
             ModbusClient.ConvertFloatToRegisters(variable,
                                                  ModbusClient.RegisterOrder.HighLow)
             );
     }));
 }
 public override void writeFloat(string var, float value)
 {
     try
     {
         var reg = ModbusClient.ConvertFloatToRegisters(value);
         this.client.WriteMultipleRegisters(int.Parse(var), reg);    //Read 10 Holding Registers from Server, starting with Address 1
     }
     catch (Exception ex)
     {
         this.client.Disconnect();
         throw ex;
     }
 }
            public void Tick(ModbusClient c)
            {
                gas_v     = ModbusClient.ConvertRegistersToFloat(c.ReadHoldingRegisters(0, 2), ModbusClient.RegisterOrder.HighLow);
                pump      = ModbusClient.ConvertRegistersToFloat(c.ReadHoldingRegisters(2, 2), ModbusClient.RegisterOrder.HighLow);
                steam_v   = ModbusClient.ConvertRegistersToFloat(c.ReadHoldingRegisters(4, 2), ModbusClient.RegisterOrder.HighLow);
                water_lvl = ModbusClient.ConvertRegistersToFloat(c.ReadHoldingRegisters(6, 2), ModbusClient.RegisterOrder.HighLow);
                pressure  = ModbusClient.ConvertRegistersToFloat(c.ReadHoldingRegisters(8, 2), ModbusClient.RegisterOrder.HighLow);
                torch     = c.ReadCoils(5, 1)[0];

                alrm = c.ReadHoldingRegisters(10, 1)[0];

                if (alrm == 0)
                {
                    water_lvl += 0.02f * pump;
                    if (torch)
                    {
                        water_lvl -= 0.01f * gas_v;
                        pressure  += 0.01f * gas_v;
                    }
                    pressure -= 0.03f * steam_v;

                    if (water_lvl < 0)
                    {
                        water_lvl = 0;
                        alrm      = 3;
                    }
                    if (water_lvl > 1)
                    {
                        water_lvl = 1;
                        alrm      = 4;
                    }
                    if (pressure < 0.3f)
                    {
                        pressure = 0.3f;
                    }
                    if (pressure > 0.95f)
                    {
                        alrm = 1;
                    }
                    if (pressure > 1)
                    {
                        alrm = 2;
                    }

                    c.WriteMultipleRegisters(6, ModbusClient.ConvertFloatToRegisters(water_lvl, ModbusClient.RegisterOrder.HighLow));
                    c.WriteMultipleRegisters(8, ModbusClient.ConvertFloatToRegisters(pressure, ModbusClient.RegisterOrder.HighLow));
                    c.WriteSingleRegister(10, alrm);
                }
            }