您好!欢迎光临工博士商城

ABB工业机器人服务商

产品:75    
联系我们
联系方式
  • 联系人:王青慧
  • 电话:18616260662
  • 邮件:wqh@gongboshi.com
  • 手机:18616260662
新闻分类
首页 > ABB机器人新闻中心 > 上位机自动连接ABB机器人与断线重连
ABB机器人新闻中心
上位机自动连接ABB机器人与断线重连
发布时间:2021-01-26        浏览次数:513        返回列表
ABB机器人

1. 希望上位机在启动的时候能自动扫描到网络上的机器人,在该机器人系统重启或者其他原因导致的断开连接时给出提示(如下图),并在给机器人系统恢复后自动重连,如何实现?

ABB机器人

2。上位机启动后自动扫描连接,可以在c#form_load事件中添加如下代码

 private void Form1_Load(object sender, EventArgs e)

        {

            this.scanner = new NetworkScanner();

            this.scanner.Scan();

            //扫描网络上的机器人系统并将信息写入ListView

            ControllerInfoCollection controllers = scanner.Controllers;

            ListViewItem item = null;

            listView1.Items.Clear();

 

            foreach (ControllerInfo controllerInfo in controllers)

            {

                item = new ListViewItem(controllerInfo.SystemName);

                item.SubItems.Add(controllerInfo.IPAddress.ToString());

                item.SubItems.Add(controllerInfo.Version.ToString());

                item.SubItems.Add(controllerInfo.ControllerName);

                this.listView1.Items.Add(item);

                item.Tag = controllerInfo;

                 //item.Tag标注该机器人系统名字,

                //以便在该系统断开连接时,自动在ListView中删去该系统名字

            }

3。 对于后期机器人系统的断开,可以在form_load事件中添加如下订阅,并编写对应处理函数

this.networkwatcher.Lost += newEventHandler<NetworkWatcherEventArgs>(HandleLostEvent);

this.networkwatcher.EnableRaisingEvents = true;

//添加对控制器断开网络连接事件的订阅

voidHandleLostEvent(object sender, NetworkWatcherEventArgs e)

       {

           foreach (ListViewItem item in listView1.Items)

           {

               if ((ControllerInfo)item.Tag==e.Controller)

               {

                  //如果在ListView中的controller信息与断开网络连接的controller信息一致

                   //将该条item删去

                   listView1.Items.Remove(item);

               }

           }

           MessageBox.Show(e.Controller.SystemName + " Lost Connection");

           //提示用户该机器人系统断开连接

       }

        4. 此时若机器人系统再次启动成功并接入网络,可以在form_load中添加如下订阅

 

this.networkwatcher = newNetworkWatcher(scanner.Controllers);

this.networkwatcher.Found += newEventHandler<NetworkWatcherEventArgs>(HandleFoundEvent);

//添加对新登入网络控制器事件的订阅

       voidHandleFoundEvent(object sender, NetworkWatcherEventArgs e)

       {

           this.Invoke(new

           EventHandler<NetworkWatcherEventArgs>(AddControllerToListView),

           new Object[] { this, e });

       }

      

privatevoidAddControllerToListView(object sender, NetworkWatcherEventArgs e)

       {

           ControllerInfo controllerInfo = e.Controller;

           ListViewItem item = newListViewItem(controllerInfo.SystemName);

           item.SubItems.Add(controllerInfo.IPAddress.ToString());

           item.SubItems.Add(controllerInfo.Version.ToString());

           item.SubItems.Add(controllerInfo.ControllerName);

           item.Tag = controllerInfo;

           this.listView1.Items.Add(item);

       }




 

联系热线:18616260662 联系人:王青慧 联系地址:上海市宝山区富联一路98弄6号

技术和报价服务:星期一至星期六8:00-22:00 ABB工业机器人服务商

返回
顶部