簡(jiǎn)介:ABB機(jī)器人與相機(jī)通訊的 Socket收發(fā)數(shù)據(jù)處理與提取 1)相機(jī)通常發(fā)送字符串給機(jī)器人,比如1.23,4.56,7.89\0D,即x為1.23,y為4.56,z的角度為7.89,用\0D作為結(jié)束符,數(shù)據(jù)之間用,隔開(kāi)。 2)如果機(jī)器人收到上述字符串,如何把字符串提取出來(lái)并付給變量deltax……
1)相機(jī)通常發(fā)送字符串給機(jī)器人,比如”1.23,4.56,7.89\0D”,即x為1.23,y為4.56,z的角度為7.89,用\0D作為結(jié)束符,數(shù)據(jù)之間用“,”隔開(kāi)。
2)如果機(jī)器人收到上述字符串,如何把字符串提取出來(lái)并付給變量deltax,deltaY,和thetaz?
3)建立若干num變量,用以存儲(chǔ)過(guò)程數(shù)據(jù),比如StartBit1,表示x的數(shù)據(jù)從第幾位開(kāi)始,Endbit1表示x的數(shù)據(jù)結(jié)束是第幾位,Lenbit1表示x數(shù)據(jù)的長(zhǎng)度,s1表示提取的x的值的字符串
4)

5)先假設(shè)x的第一位是1,給Startbit1賦值為1
6)插入函數(shù)strfind,查找第一個(gè)“,”在第幾位,得到EndBit1值
7)

8)EndBit1減去StartBit1就是x的數(shù)據(jù)長(zhǎng)度
9)同理得到y(tǒng)和theta的信息

10)通過(guò)StrPart函數(shù),提取從StartBit1開(kāi)始到LenBit1結(jié)束的字符串,即x的值的字符串
11)

12)同理得到y(tǒng)和z的字符串
13)通過(guò)StrToVa1函數(shù),把s1轉(zhuǎn)為num型,付給delta_x,StrToVal函數(shù)的反饋值為bool量,即轉(zhuǎn)換成功為true不成功為false
14)同理得到delta_y和delta_theta
15)成功后可以寫(xiě)屏測(cè)試,如下圖

文章來(lái)源,
工業(yè)機(jī)器人維修官網(wǎng):etongyue.com