val3_learning
实验室有史陶比尔软件srs7.31的电子狗,学习笔记如下:
1.准备工作
配置工作单元,新建一个即可,这里能变成true的尽量变成true
打开val3,在star函数下进行编程,代码如下:
begincls()userPage()gotoxy(2,2)put("hello_val3")end
打开模拟器,如果是模拟器上srs ip是127.0.0.1,实际机器人是192.168.0.254
打开三维显示界面,因为这是很早以前的版本了,貌似不能导cad图进去!!
用虚拟示教器示教如下
运行val3程序如图:
EX1:简单move
先定义4个点,一个home点(0,0,90,0,45,0),tool工具坐标系是以法兰盘坐标系定义的(0,0,0,0,0,0)jjoint ppoint等通过示教得到 这些都是全局数据,可以改变的!!
P点是在世界坐标系下的,ttool是在法兰盘系下的
运行前示教步骤如下:
通过手动模式示教即可得到点信息,因为仅知道x y z rx ry rz,机器人姿态是不唯一的,因此对肩部,肘部,腕部做限制,改成same表示与前一个一致,具体看资料(tool数据的含义,point数据的含义frame数据的含义等)
运行效果截图如下:
Ex4_2 码垛实验
start()
begin//平面码垛call pallet_1()
end
pallet_1()
begin//l_nx :码垛行数 l_nHang 行距//l_ny: 码垛列数 l_nLie 列距// l_pDepart place点的离开点// l_pAppro pick点的靠近点// l_pPick_n:第n个拾起点 l_pPlace_n : 第n个放下点l_nx=0l_ny=0//圆盘列间距90l_nLie=90movej(jJhome,tGrip,mFast)waitEndMove()delay(1)//for l_nx=0 to 0for l_ny=0 to 2//compose是沿着要示教工件坐标系fA定的l_pPick_n=compose(pPick,fA,{l_ny*l_nLie,l_nx*l_nHang,0,0,0,0})//appro 是看前一个点在哪个坐标系,是相对于那个坐标系,(一般是工具坐标系)l_pAppro=appro(l_pPick_n,{0,0,-150,0,0,0})//因为fb的坐标系l_pPlace_n=compose(pPlace,fB,{l_nx*l_nHang,-l_ny*l_nLie,0,0,0,0})l_pDepart=appro(l_pPlace_n,{0,0,-150,0,0,0})movej(l_pAppro,tGrip,mFast)movel(l_pPick_n,tGrip,mSlow)
// waitEndMove()
// delay(1)movel(l_pAppro,tGrip,mSlow)movej(l_pDepart,tGrip,mFast)movel(l_pPlace_n,tGrip,mSlow)
// waitEndMove()
// delay(1)movel(l_pDepart,tGrip,mSlow)waitEndMove()endFormovej(jJhome,tGrip,mFast)waitEndMove()
end
关键理解appro,tool类型数据,速度的设置
个人理解:Appro是相对于上一点的坐标系,(实际验证中是按工具坐标系进行偏转的!!!)
Compose是相对于参考坐标系(估计在工件坐标系下常用)
轨迹混合:
//waitendmove是为了到了该点会停 blend字段设为off
将应用加载到控制器后不要运行,因为很多点和坐标系需要示教,默认是0!采用手动模式,可以对工件坐标系(Fa,fB)和点(ppick pplace)示教
平面示教如下:
这里是先写的程序,再示教的工件坐标系,所以要先想好坐标系的朝向然后按所想的示教
速度这设了3挡,一档快,一档平均,一档慢,blend是取消混合命令,即movel movej运行完速度降为零才再执行下个操作(具体看资料)
**Ex4_3 斜面码垛 **
走z型,具体码垛指令如下:
begin
// l_nHang 码垛盘行数
// l_nLie 码垛盘列数
// l_nNumber 计数用,一个周期循环
// l_pPoint当前点
// fFrameA示教的工件坐标系 pPOint_first示教的初始点
// l_appro 接近点
// l_pnext_up y向上走 xF x负方向走 xZ x 正方向走l_nNumber = 1l_pPoint = pPoint_firstmovej(jJhome,tTool,mFast)waitEndMove()for l_nHang = 1 to 3for l_nLie = 1 to 3 //fframeA z正方向向下 l_pAppro=compose(l_pPoint,fFrameA,{0,0,-100,0,0,0})l_pNext_up = compose(l_pPoint,fFrameA,{0,90,0,0,0,0})l_pNext_xF = compose(l_pPoint,fFrameA,{-90,0,0,0,0,0})l_pNext_xZ = compose(l_pPoint,fFrameA,{90,0,0,0,0,0})//小于列个数 x+if l_nNumber<3l_nMode = 1endIf//等于列个数 upif l_nNumber==3l_nMode = 2endIf//大于列个数,小于2倍,x-if l_nNumber>3 and l_nNumber<2*3l_nMode = 3endIfif l_nNumber==2*3l_nMode = 2l_nNumber = 0endIf switch l_nModecase 1 movej(l_pAppro,tTool,mFast)movel(l_pPoint,tTool,mSlow)movel(l_pAppro,tTool,mSlow)movel(l_pPoint,tTool,mFast)movel(l_pAppro,tTool,mFast) movel(l_pPoint,tTool,mFast)movel(l_pAppro,tTool,mFast)waitEndMove() l_pPoint = l_pNext_xZl_nNumber = l_nNumber+1breakcase 2movej(l_pAppro,tTool,mFast)movel(l_pPoint,tTool,mSlow)movel(l_pAppro,tTool,mSlow)movel(l_pPoint,tTool,mFast)movel(l_pAppro,tTool,mFast) movel(l_pPoint,tTool,mFast)movel(l_pAppro,tTool,mFast)waitEndMove() l_pPoint = l_pNext_upl_nNumber = l_nNumber+1breakcase 3movej(l_pAppro,tTool,mFast)movel(l_pPoint,tTool,mSlow)movel(l_pAppro,tTool,mSlow)movel(l_pPoint,tTool,mFast)movel(l_pAppro,tTool,mFast) movel(l_pPoint,tTool,mFast)movel(l_pAppro,tTool,mFast)waitEndMove()l_pPoint = l_pNext_xFl_nNumber = l_nNumber+1breakdefaultbreakendSwitchendForendFormovej(jJhome,tTool,mFast)waitEndMove()end
EX5 参数传递
定义两个全局变量,一个输入r=4 一个输出s=0
Run 计算结果如下:
心得:引用(&)表示这个值是可以改变的!!
Ex7: socket通讯
先打开官方例子
Val3_socket实例:
下位机socket接收部分照抄官方例子
效果如下:
val3_learning相关推荐
最新文章
- LeetCode简单题之将所有数字用字符替换
- Matlab | matlab中@的用法总结(附matlab测试代码):What does “@“ do ?
- 庄闲分析软件安卓版_关于公布湖南省2020年第七批软件产品评估结果的通知
- 版本变迁_上新了!隋唐洛阳城应天门3D投影秀更新版本!(附视频)
- 语言的进步与代码生成
- 在 Linux 下使用 RAID(二):使用 mdadm 工具创建软件 RAID 0 (条带化)
- 基础笔记8(二)(容器-引用类型的排序)
- 查询Linux的公网及内网IP
- 内网穿透NPS及NPC搭建(使用docker实现)
- vs括号对齐和vs设置背景图片
- cad多段线画圆弧方向_CAD多段线绘制技巧 - CAD自学网
- 策略模式——鸭子游戏
- python制作恶搞_Python:恶搞,将你朋友照片做成熊猫人表情包
- 黑鲨helo支持html吗,黑鲨Helo的实用功能有哪些 黑鲨Helo的使用技巧
- MXT6208量产修复工具+v2.0非常好用哦!
- 【anaconda】彻底解决windows下anaconda3占用C盘问题(改了envs、pkgs安装路径依旧占用C盘)
- Linux--JVM内存设置
- 数据库中的CAP原理
- OMRON NJ501-1520真实项目程序 欧姆龙NJ做的程序27轴+110个气缸+1个机械手
- 基于Java实现的区块链供应链金融系统平台设计
热门文章
- php调用百度地图定位,php用百度地图API进行IP定位和GPS定位
- Django中使用极验Geetest滑动验证码过程解析
- 综合面试(hr面)常问的问题
- 眼动追踪:用户体验设计利器_眼动追踪:如何观察点击之间的差距(以及原因)
- STM32F103外部中断
- html的标签语言有哪些,HTML 是什么?
- 搭建Flutter环境时的坑
- CAD图纸怎么快速转换图片格式?
- 帝国cms安装到linux系统,帝国CMS安装方法(适用于 帝国CMS 7.5 )【图文】
- 微信小程序--js:在setData()中对data中的数组赋值