日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

川崎机器人c#通讯(转)

發布時間:2023/12/10 C# 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 川崎机器人c#通讯(转) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

由于本人在工業自動化行業做機器視覺的工作,所以除了圖像處理方面要掌握外,還需要與工業機器人進行通信。最近學習了計算機與川崎機器人的TCP/IP通信,于是在這里記錄一下。

除了直接與機器人通信外,有一種方式是通過PLC間接通信,附上我的另一篇文章,講c#與三菱PLC通信的:C#與三菱PLC通信

首先假設一個簡單的應用情況,有一臺帶相機的工業機器人,需要在機器人移動到某位置時,發出信號,然后視覺系統拍照并處理,最后將返回信號發送回機器人。這個程序就是以這個應用為基礎寫的。下圖是機器人示教器上的程序:移動到P1點后,給計算機發送拍照信號photo=1,然后計算機處理后返回over=1,機器人收到后移動到P2點。

圖片2

機器人示教器上面的程序十分簡單,然后說明計算機上的程序。

首先是建立計算機與機器人的TCP鏈接,這里以計算機為客戶端,機器人為服務端。

[csharp] view plain copy
  • public?void?ConnectRobot()//鏈接tcp??
  • ????????{??
  • ????????????byte[]?data?=?new?byte[1024];??
  • ????????????newclient_Client?=?new?Socket(AddressFamily.InterNetwork,?SocketType.Stream,?ProtocolType.Tcp);??
  • ????????????string?ipadd?=?"192.168.30.238";//機器人IP地址??
  • ????????????int?port?=?Convert.ToInt32("23");//端口號??
  • ????????????IPEndPoint?ie?=?new?IPEndPoint(IPAddress.Parse(ipadd),?port);??
  • ????????????try??
  • ????????????{??
  • ????????????????newclient_Client.Connect(ie);//建立連接??
  • ????????????????Connected_Client?=?true;//連接標志位???????????
  • ????????????????btnConn.Enabled?=?false;??
  • ????????????????sendToRobot("as\r\n");//建立連接后,首先發送as,則可以通過計算機發送as語言指令??
  • ????????????????SetTishi("機器人鏈接成功...");//顯示??
  • ??
  • ??
  • ????????????}??
  • ????????????catch?(SocketException?e)??
  • ????????????{??
  • ????????????????SetTishi("連接機器人失敗??"?+?e.Message);??
  • ????????????????return;??
  • ????????????}??
  • <span?style="white-space:pre;">?????</span>//用于監聽機器人是否發送數據??
  • ????????????ThreadStart?myThreaddelegate?=?new?ThreadStart(ReceiveMsg);??
  • ????????????myThread_client?=?new?Thread(myThreaddelegate);??
  • ????????????myThread_client.Start();??
  • ??
  • ??
  • ????????}??
  • TCP通信的基本知識不在這里講,這里要說明的是connect后為什么有一句向機器人發送“as”。在川崎機器人E系列TCP/IP通信手冊中,有如下內容:

    即,在connect后首先向機器人發送"as"后,可以直接從計算機發送機器人的AS語言指令。這樣,就可以實現從計算機上對機器人程序進行控制。

    建立連接后,要做的就是收發信息了。計算機向機器人發信息很簡單,因為計算機可以向機器人發送as語言指令,所以就是簡單的TCP發送消息就可以了,如直接發送“over=1”,機器人就可以獲取得到了。需要說的是機器人向計算機發送消息,在本程序中沒有采用在機器人中建立TCP服務器然后監聽的方法,而是在計算機中實現該功能。本方法利用的是川崎機器人as語言中的list指令,list指令的功能是顯示所有程序步驟和變量,而要查詢變量photo的值,只需要向機器人發送“list/r photo”,這樣就可以得到變量photo的值。這樣就可以通過計算機端不斷查詢,達到了機器人發送數據的效果,從而簡化了機器人程序,復雜性降低。以下是監聽代碼:

    ?

    [csharp] view plain copy
  • public?void?ReceiveMsg()//監聽tcp??
  • ????????{??
  • ??
  • ????????????int?thelastData?=?999;??
  • ????????????while?(true)??
  • ????????????{??
  • ????????????????try??
  • ????????????????{??
  • ??
  • ????????????????????byte[]?data?=?new?byte[1024];??
  • ????????????????????int?recv?=?newclient_Client.Receive(data);//接收消息??
  • ????????????????????string?stringdata?=?Encoding.UTF8.GetString(data,?0,?recv);//將bytes轉換為字符??
  • ????????????????????//string?stringdata?=?Encoding.Unicode.GetString(data,?0,?recv);??
  • ????????????????????if?(stringdata?==?"")//判斷是否斷開連接??
  • ????????????????????{??
  • ????????????????????????SetTishi("服務器已退出");??
  • ????????????????????????newclient_Client.Close();??
  • ????????????????????????Connected_Client?=?false;??
  • ????????????????????????break;??
  • ????????????????????}??
  • ????????????????????//利用AS語言的檢測變量的指令list實現監聽功能??
  • ????????????????????//因為發送‘list/r?photo’監測變量photo的值返回的還有其它字符,所以要去掉這些字符??
  • ????????????????????stringdata?=?stringdata.Trim();??
  • ????????????????????string?strTemp?=?"photo????=";??
  • ????????????????????int?iCount?=?stringdata.IndexOf(strTemp);//得到多余字符的長度??
  • ????????????????????if?(iCount?>?0)??
  • ????????????????????{??
  • ????????????????????????string?read?=?stringdata.Substring(strTemp.Length?+?iCount?+?1,?2);//去掉多余字符以及photo??
  • ????????????????????????int?kk?=?int.Parse(read);//得到變量photo的值??
  • ????????????????????????if?(kk?!=?0)??
  • ????????????????????????{??
  • ??
  • ????????????????????????????if?(thelastData?!=?kk)//信號從0->1才認為收到信號??
  • ????????????????????????????{??
  • ????????????????????????????????SetTishi("接收到機器人拍照信號...");??
  • ????????????????????????????????sendToRobot("over=1\r\n");//給機器人完成信號??
  • ????????????????????????????????SetTishi("接收到消息:"?+?stringdata);??
  • ????????????????????????????}??
  • ????????????????????????}??
  • ????????????????????????thelastData?=?kk;??
  • ????????????????????}??
  • ????????????????}??
  • ????????????????catch??
  • ????????????????{??
  • ??
  • ????????????????}??
  • ????????????????sendToRobot("list/R?photo\r\n");//向機器人發送as語言的指令,查詢photo的值??
  • ????????????????Thread.Sleep(100);??
  • ??
  • ????????????}??
  • ????????}??
  • 通過不斷向機器人獲取變量photo的值,當檢測到photo=1時,就可以向機器人發送完成信號over=1,然后機器人程序往下執行。

    轉載于:https://www.cnblogs.com/bile/p/8939996.html

    總結

    以上是生活随笔為你收集整理的川崎机器人c#通讯(转)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 亚洲午夜精品一区 | 欧美色v| 亚洲国产精品综合久久久 | 黄色激情网址 | 中文字幕在线免费观看视频 | 日韩黄色在线视频 | 涩涩视频免费在线观看 | 日韩中文字幕在线免费观看 | 日韩电影精品 | 日韩亚洲欧美综合 | bl动漫在线观看 | 亚洲福利国产 | 日本黄网站| 97香蕉碰碰人妻国产欧美 | 久久久一二三区 | 91综合国产 | 四虎8848精品成人免费网站 | 91蜜桃网| 欧美一a一片一级一片 | 成人av动漫在线观看 | 亚洲综合免费 | 一区二区三区四区五区视频 | 欧美巨鞭大战丰满少妇 | 亚洲乱码电影 | 日韩性生活大片 | 欧美综合视频 | 久草视频手机在线观看 | 十八岁世界在线观看高清免费韩剧 | 欧美在线看 | 青青青青青青青青草 | 五月天综合激情 | 日韩国产网站 | 色老板av | 精品人伦一区二区 | 福利视频三区 | av日韩一区 | 日本爽爽 | 精品一区二区在线播放 | 国产高清中文字幕 | 成年人黄色在线观看 | 欧美色图激情 | 久草新在线 | 久久超碰在线 | 国产ts系列| 欧美日韩色片 | 国产亚洲精品成人无码精品网站 | 久久午夜场 | 日本爽爽爽 | 亚洲狠狠婷婷综合久久久久图片 | 久久一道本 | 国产欧美一区二区三区在线看蜜臀 | www.插插插| 性中国古装videossex | 欧美黑人一区 | 亚洲av熟女高潮一区二区 | 人妻一区在线 | 插吧插吧网 | 99福利影院 | 91精品999 | 国产又粗又大又爽视频 | av在线网址大全 | 亚洲一级在线播放 | 一级黄色片免费播放 | 欧美在线三区 | 国产精品白浆一区二小说 | 91精品国产一区二区三竹菊影视 | 黄色一级片在线 | 激情小说中文字幕 | 97精品国产97久久久久久春色 | 先锋影音av资源站 | 国产精品一二三区在线观看 | 婷婷色吧| 亚洲第一国产视频 | 小优视频污 | 亚洲区一区二 | xxxx国产 | 亚洲精品国产精品乱码不卡 | 国产福利一区二区视频 | 黄三级 | 久久精品人人 | 亚洲国产精品免费 | 热re99久久精品国产99热 | 午夜日韩在线 | 亚洲第一激情 | 欧洲美女与动交ccoo | 欧美youjizz| 免费看黄色的视频 | 日本热久久 | 丰满少妇麻豆av苏语棠 | 日日夜夜草 | 国产视频97| 国产福利视频网站 | 午夜亚洲av永久无码精品 | 毛片在线免费视频 | 99热思思 | 亚洲高清在线播放 | 丰满人妻一区二区三区精品高清 | 91久久精品视频 | 久久大香|