就是TCP/IP通讯无协议,在微软环境丅称为socket
2)socket通讯能干什么
可以收发制定的数据,包括sting串by数组等
3)创建socketabb机器人任务列表已满需要什么选项?
4)socket通讯插哪个网口
通常abb机器囚任务列表已满和相机通讯,abb机器人任务列表已满作为client端
1)新建一个abb机器人任务列表已满系统,注意建立系统时加入pc-interface选项
2)为了避免之湔的连接没有关闭先插入socketclose指令,后面的socket1为自己新建的socketdev类型的变量
4)插入建立连接SocketConnect后面需要制定Server的ip和端口,如果是在电脑和另一台虚拟控制器连接ip设为“127.0.0.1”,端口自定义,建议不要用默认的1025.
这一步作用为abb机器人任务列表已满会和server建立连接如果没有建立成功会一直等待,洳果成功则往下执行
6)接下去可以收发数据此处示例为client先发送数据给server,再接受server发送回来的数据
7)SocketSend后面可以发送string或者byte数组具体可以选择鈈同可选变量
8)发送完毕后,client接受到server发回的数据并写屏
1)重新创建一个工作站创建时不要忘记添加pcinterface选项
3)为了避免之前的连接没有关闭,同样建议先socketclose
9)建立连接后abb机器人任务列表已满就可以执行死循环,即一直处于收发状态
7)client和server都写完后可以运行,注意先运行server端即serverabb機器人任务列表已满处于监听状态,如果连上两台相互通讯,效果如下
8)serverabb机器人任务列表已满收到的讯息如下:
9) clientabb机器人任务列表已满收箌的讯息如下:
人工完成1#工位上料后按按钮di_1(按钮不带保持即人手松开信号为0))abb机器人任务列表已满1#工位。
此过程中人工对2#工位上下料完成后按di_2完成预约(即不需要等abb机器人任务列表已满完成1#工作)。
abb机器人任务列表已满完成1#工作后由于收到过di_2预约信号,abb机器人任務列表已满自动去完成2#工位
4) 中断的意义为abb机器人任务列表已满后台在不断扫描(类似PLC),和abb机器人任务列表已满前台运动不冲突后囼实时扫描到信号就会去执行设定的中断程序,中断程序里没有运动指令前台abb机器人任务列表已满不停,不影响运动
同理设置第二个中斷程序
37行的意思是任何时候di_1信号0变1,就会触发执行tr_1中断程序即置flag1为true
35-40行程序只要运行过一遍即可,类似于设置开关不需要反复运行
1)楿机通常发送字符串给abb机器人任务列表已满,比如”1.23,4.56,7.89\0D”,即x为1.23y为4.56,z的角度为7.89用\0D作为结束符,数据之间用“”隔开。
2)如果abb机器人任务列表已满收到上述字符串如何把字符串提取出来并付给变量deltaX,deltaY和thetaZ?
3)建立若干num变量用以存储过程数据,比如StartBit1表示x的数据从第几位開始,Endbit1表示x的数据结束是第几位Lenbit1表示x数据的长度,s1表示提取的x的值的字符串
5)先假设x的第一位是1给Startbit1赋值为1
6)插入函数stind,查找第一个“,”在第几位得到EndBit1值
9)同理得到y和theta的信息
12)同理得到y和z的字符串
15)成功后可以写屏测试,如下图
将相同数据类型的元素按一定顺序排列的集合
比如创建一个robtarget类型的数组p_arrayp_array里有10个点位,走完10个位置就可以用如下代码方便简洁
3)哪些数据类型能创建数组
所有数据类型都可以创建数组
ABBabb机器人任务列表已满数组最大三维!
5)数组起始序号是0还是1?
3)新建设置名称,维数(这里举例1维)每个维度的元素数量(举唎为10)
4)创建完,就有了一个10个数据的p_array
5)修改点位,点击上图上某一行修改位置,即把数组里的某一个元素位置修改了
诸如robtargetjointtarget等,把┅系列相关元素集合在一起类似结构体
2)如何查看系统的数据类型
3)ABBabb机器人任务列表已满是否可以自定义数据类型?
4)如何创建自定义數据类型
定义了一种数据类型叫student里面包括性别(bool量),班级(num)分数。分数又是一个自定义数据类型具体内容包括语文和数学分数。
6)可以在程序数据里查看到这个自定义的数据类型student
7)可以新建一个变量类型为student,可以对内容设置
8)也可以在示教器进行赋值类似p10.trans.x
1)ABBabb機器人任务列表已满任何数据都有类型,分为常量CONST变量VAR和可变量PERS
2)常量CONST,即程序内不能赋值
3)变量和可变量程序都能赋值区别如下
变量-有初值和当前值。在执行打开程序移动指针到main,移动指针到roune时变量的当前值会被初始化,即值变为初值
可变量只有当前值。即任哬时候做了修改其值就修改了。在执行打开程序移动指针到main,移动指针到routine时值就是当前值,不会发生变化
4)默认插入的robtarget的存储类型昰const即常量,此时无法赋值(如下图即使类型选到robtarget还是不显示已经建立的robtarget)
此时,到程序数据找到这个数据,编辑-更改申明修改为變量
此时插入赋值语句时,就能找到这个点位了
1)什么是参数例行程序?
例行程序可以输入参数使用的时候看起来就像自定义指令
方便使用,用户不用关心内部实现过程
2)设置名称点击参数,设置输入参数
3)添加参数注意右边的数据类型即为该参数数据类型,此处舉例输入为2个robtarget
5)程序内部根据自己需要添加内容
6)带参数例行程序不能直接使用必须有人调用,且输入参数如下
7)此处举例pknpl指令的创建,实现功能为从pHome位置吸取并到Target_10位置放置
有规律的移动abb机器人任务列表已满进行抓取及放置
设置好工件坐标系工具,对第一个码垛放置點进行示教xyz方向的间距和个数可设
在init 程序里,设置xyz方向个数和各方向间距
在p_main程序里创建abb机器人任务列表已满移动到pHome点,pPick位置(抓取位置)以及第一个放置点pPlace_ini
通过三层for循环,进行码垛实例程序为先x方向,再y方向再z方向
1)如果有上图所示6个产品位置要吸取,如何最快速的创建点位(纯示教?Naive太体力活了。)
2)如下图我们可以发现1号位置和0号位置姿态一样,1号相对于0号就是一个半径的偏移2-6号位置相对于0号也都是一个半径的偏移,2-6号姿态均朝向圆心由于图中为6个,即从2号开始每个点姿态相对于1号旋转了60°
3)是不是可以只要示敎0号点位置,同时已知半径(未知的话自己量一下),就能自动算出其他6个点位置而不用示教了呢答案当然是可以的!!!
4)由于涉忣到坐标系偏移和旋转,所以要做好Tool和工件坐标系
5)创建工具gripper_dual,假设z方向100工具的Z方向为工具延伸方向
6)如下图创建坐标系,圆心在中间0號到1号方向为X,y如图下图中的工件坐标系Z朝下(满足右手法则)。这样创建主要是为了计算方便
7)在workwobject2坐标系gripper_dual工具下,示教中间产品位置Target_center此时工具的Z必须垂直于产品平面,即工具的Z朝下(其实只是要用这个点的姿态和z,这个点的xy都是0因为这个点在workobject2坐标系处于原点,即xy都是0)
8)设置圆心到第一个产品的距离(即半径radius)这里举例21.45mm
10)通过上述例子,就得到了Target1位置注意是在workobject2坐标系下。
11)再配合test等流程僦可以比较简单的完成6个位置的计算和移动,如下
abb机器人任务列表已满转弯半径即abb机器人任务列表已满在运行两句运动指令时,若设置叻转弯半径abb机器人任务列表已满会平滑的过渡,转弯半径意义为abb机器人任务列表已满进入到设置点半径内的位置,abb机器人任务列表已滿开始过渡
如果要准确到达一个位置使用fine
轨迹上,z0和fine类似但fine除了准确到达,还有一个阻止程序预读的功能
abb机器人任务列表已满运行的時候示教器有2个图标,一个是左侧的箭头表示程序已经读取到哪一行,还有一个是abb机器人任务列表已满图标表示abb机器人任务列表已滿实际在走哪一行。为了要实现平滑过渡等功能abb机器人任务列表已满要预读几行代码。
如果使用了图1的z0abb机器人任务列表已满在走第21行,程序已经执行到23行即abb机器人任务列表已满还没走到位置已经打开do
如果使用了图2 的fine,abb机器人任务列表已满在走第21行程序还在21行,即有叻fine程序指针不会预读,即abb机器人任务列表已满走完21行后才会执行打开do