public bool WriteRegister(ushort reg, short value) { modbus link = new modbus(); bool ret = link.Open(port, 9600, 8, Parity.None, StopBits.Two); if (!ret) { throw EngineMessageException.offline( "Opening port " + port + " failed: " + link.modbusStatus); } short[] val = { value }; Logger.log( "Writing 0x" + value.ToString("x") + " to register 0x" + reg.ToString("x") + " to address 0x" + address.ToString("x")); ret = link.SendFc16(address, reg, 1, val); if (!ret) { throw new EngineMessageException( "Writing 0x" + value.ToString("x") + " to register 0x" + reg.ToString("x") + " failed: " + link.modbusStatus); } link.Close(); return(ret); }
private void connectButton_Click(object sender, EventArgs e) { short[] values = new short[16]; if (connectButton.Text == "Connect") { if (deviceBox.Text == "") { MessageBox.Show("Please select device com port"); } else { if (mb.Open(deviceBox.Text, 9600, 8, Parity.None, StopBits.One)) { Enable_Panel(); connectButton.Text = "Disconnect"; pleaseclickLabel.Text = ""; actionTextBox.Text += "TM-012P is connected\r\n"; pvLabel.ForeColor = Color.Turquoise; outputLabel.ForeColor = Color.LightBlue; cojLabel.ForeColor = Color.Turquoise; _connected = true; threadstart(); Verifyuser_config(); } else { MessageBox.Show("Failed to connect device or device com port not availble", "Communication failed", MessageBoxButtons.OK); } } } else { //device_serialPort.Close(); if (mb.Close()) { Disble_Panel(); _connected = false; _mbisread = false; //threadstart(); prodIDLabel.Text = ""; connectButton.Text = "Connect"; pleaseclickLabel.Text = "Please click connect...."; actionTextBox.Text += "TM-012P is disconnected\r\n"; swLabel.Text = ""; pvLabel.ForeColor = Color.DarkGray; outputLabel.ForeColor = Color.DarkGray; cojLabel.ForeColor = Color.DarkGray; } else { MessageBox.Show("Can not close communication, device might be unplugged", "Communication failed", MessageBoxButtons.OK); } } }
public short ReadRegister(ushort reg) { modbus link = new modbus(); link.Open(port, 9600, 8, Parity.None, StopBits.Two); short[] val = new short[1]; bool ret = link.SendFc3(address, reg, 1, ref val); if (!ret) { throw new EngineMessageException( "Read from register 0x" + reg.ToString("x") + " failed: " + link.modbusStatus); } link.Close(); return(val[0]); }
/* inicia pesquisa */ private void StartPoll() { /* abre a porta COM selecionada com os parametros baudrate 115200 e 8 bits */ if (mb.Open(lstPorts.SelectedItem.ToString(), Convert.ToInt32("115200"), 8, Parity.None, StopBits.One)) { /* desabilita botão para evitar mais de um acionamento */ btnStart.Enabled = false; dataType = "Decimal"; /* determina variavel como verdadeiro */ isPolling = true; /* inicia o time com intervalo de 1000 milesegundos */ timer.AutoReset = true; timer.Interval = 1000; timer.Elapsed += timer_Elapsed; timer.Enabled = true; timer.Start(); } /* atualiza o status e chama o gravalog */ lblStatus.Text = mb.modbusStatus; Grava_Log(lblStatus.Text); }
private void Page_Loaded(object sender, RoutedEventArgs e) { link.Open("COM3", 9600, 8, SerialParity.None, SerialStopBitCount.Two); }
private void Form1_Load(object sender, EventArgs e) { link.Open("COM3", 9600, 8, Parity.None, StopBits.Two); }
public string ReadVariables(string comport, string NameService, string numkonv, int addr1, int addr2, int addr3, int addr4, out string dataXML) { string _log = null; dataXML = GetTag("NUMKONV", Convert.ToString(numkonv)); int error = 1; ushort CountReg = 18; ushort pollStart = 0; CultureInfo myCI = new CultureInfo("ru-RU", false); myCI.NumberFormat.NumberDecimalSeparator = "."; //Открытие com-порта string[] IniComPort = comport.Split(';'); if (mb.Open(IniComPort[0], Convert.ToInt16(IniComPort[1]), Convert.ToInt16(IniComPort[2]), Convert.ToInt16(IniComPort[3]), Convert.ToInt16(IniComPort[4]), Convert.ToInt16(IniComPort[5]), ref _log) ) { //Create array to accept read values: short[] values = new short[CountReg]; //Read registers and display data in desired format: try { if (mb.SendFc3(1, pollStart, CountReg, ref values, ref _log)) { int intValue = (int)values[addr1]; intValue <<= 16; intValue += (int)values[addr1 + 1]; dataXML = dataXML + GetTag("LOADING", Convert.ToString(BitConverter.ToSingle(BitConverter.GetBytes(intValue), 0), myCI)); intValue = (int)values[addr2]; intValue <<= 16; intValue += (int)values[addr2 + 1]; dataXML = dataXML + GetTag("PRODUCTIVITY", Convert.ToString(BitConverter.ToSingle(BitConverter.GetBytes(intValue), 0), myCI)); intValue = (int)values[addr3]; intValue <<= 16; intValue += (int)values[addr3 + 1]; dataXML = dataXML + GetTag("SPEED", Convert.ToString(BitConverter.ToSingle(BitConverter.GetBytes(intValue), 0), myCI)); intValue = (int)values[addr4]; intValue <<= 16; intValue += (int)values[addr4 + 1]; dataXML = dataXML + GetTag("COUNTER", Convert.ToString(BitConverter.ToSingle(BitConverter.GetBytes(intValue), 0), myCI)); error = 0; } } catch (Exception err) { _log = _log + " Error in modbus read: " + err.Message; } } dataXML = dataXML + GetTag("ERROR", Convert.ToString(error)) + GetTag("DTREAD", DateTime.Now.ToString("dd.MM.yyyy HH:mm:ss.fff")); dataXML = "<BODY>" + dataXML + "</BODY>"; // _log = _log + " VAR1_XML: " + dataXML; if (_log != null) _log = NameService + ": " + _log; return _log; }