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(); }
// 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); } }