// ------------------------------------------------------------------------ // Quitt application private void frmMain_FormClosing(object sender, FormClosingEventArgs e) { if (BRmaster != null) { BRmaster = null; } Application.Exit(); }
// ------------------------------------------------------------------------ // Module information prototype internal MasterBR_MDinfo(MasterBR _BRmaster, byte _mod_nr) { BRmaster = _BRmaster; mod_nr = _mod_nr; _id = (ushort)BRmaster.SyncReadWord(MasterBR.ID_parameter, Convert.ToUInt16(0xA001 + mod_nr * 16)); _name = Get_HardwareName(_id); _analog_in_index = (ushort)BRmaster.SyncReadWord(MasterBR.ID_parameter, Convert.ToUInt16(0xA004 + mod_nr * 16)); _analog_out_index = (ushort)BRmaster.SyncReadWord(MasterBR.ID_parameter, Convert.ToUInt16(0xA005 + mod_nr * 16)); _digital_in_index = (ushort)BRmaster.SyncReadWord(MasterBR.ID_parameter, Convert.ToUInt16(0xA006 + mod_nr * 16)); _digital_out_index = (ushort)BRmaster.SyncReadWord(MasterBR.ID_parameter, Convert.ToUInt16(0xA007 + mod_nr * 16)); }
// ------------------------------------------------------------------------ // Disconnect from bus coupler private void DoDisconnect() { if (BRmaster != null) { BRmaster.Disconnect(); BRmaster = null; } btnConnect.Text = "Connect"; btnConnect.Image = imageList1.Images[1]; btnBusCoupler.BackColor = Color.Gainsboro; btnBusCoupler.Enabled = false; btnModules.Enabled = false; btnModules.BackColor = Color.Gainsboro; grpModules.Visible = false; grpBusCoupler.Visible = false; RefreshTimer.Enabled = false; }
// ------------------------------------------------------------------------ // Information class prototype. internal MasterBR_BCinfo(MasterBR _BRmaster) { BRmaster = _BRmaster; }
// ------------------------------------------------------------------------ // Open or close connection to bus coupler private void btnConnect_Click(object sender, EventArgs e) { // ------------------------------------------------------------------------ // Close connection to bus coupler if (btnConnect.Text == "Connected") { DoDisconnect(); } // ------------------------------------------------------------------------ // Open connection to bus coupler else { try { btnConnect.Text = "Connecting..."; btnConnect.Refresh(); // Create new master instance, add events and reset watchdog BRmaster = new ModbusTCPBR.MasterBR(); BRmaster.OnBCexception += new ModbusTCPBR.MasterBR.BCexception(BRmaster_OnBCexception); BRmaster.PollRefresh = 200; BRmaster.Connect(txtIP.Text, 502); BRmaster.BCinfo.watchdog_reset(); BRmaster.BCinfo.watchdog_threshold = 5000; ReadControllerInfo(true); // Set up buttons and tabs btnConnect.Image = imageList1.Images[0]; btnConnect.Text = "Connected"; btnBusCoupler.Enabled = true; btnModules.Enabled = true; btnModules_Click(null, null); // Read module information and fill list box with data lstModules.Items.Clear(); for (int x = 0; x <= BRmaster.MDinfo.GetUpperBound(0); x++) { if (BRmaster.MDinfo[x].name == "unknown") { lstModules.Items.Add("Module" + x.ToString()); } else { lstModules.Items.Add(BRmaster.MDinfo[x].name); } } if (lstModules.Items.Count >= 0) { lstModules.SelectedIndex = 0; } } catch (SystemException error) { DoDisconnect(); // Catch message if (error.GetType().ToString() == "System.Net.Sockets.SocketException") { MessageBox.Show("Check IP address or host name!", "Can't find X20BC0087 controller", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } MessageBox.Show(error.Message); } } }