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相关推荐
最新文章
- java el jstl_java -EL技术JSTL技术
- 从“大数据”到“智能数据”
- Windows核心编程 第六章 线程基础知识 (上)
- 【DevOps】为什么我们永远疲于奔命?
- 精美技术图赏|技术精华
- word中取消自动目录超链接的方法
- 收藏表数据库_选择您的收藏库
- quarz 定时任务 cron表达式
- PHP实现单件模式的几种方式
- 如何通过 Shell 监控异常等待事件和活跃会话
- 《AI算法工程师手册》读书笔记(1)
- jquery之父john resig见面会及jquery最新动态
- 解决win7资源监视器不能开启
- 测试PHP连接MYSQL成功与否的代码
- 华为模拟器eNSP直连路由静态路由配置实验
- 自动排单功能的一些思考
- 【Unity】制作一个商店场景
- js中apply、bind、call的用法和区别
- hdu 3954 Level up(成段更新)
- JSON和JSONP 跨域
热门文章
- 【愚公系列】2023年05月 攻防世界-Web(file_include)
- 人工智能洗衣机教程_什么是“智能洗衣机”,我需要一个吗?
- 【Visual C++】游戏开发笔记三十五 站在巨人的肩膀上:游戏引擎导论
- 启动计算机时出现grub,win7开机出现grub引导修复教程
- 一维FDTD电磁波仿真
- matlab 显示定点数的范围,定点数
- MATLAB Simulink
- MathWorks 中国
- kettle-JavaScript脚本
- Spring注解分类
- 胡桃工具箱, 基于 .NET 开源的多功能原神工具箱
- 初识EMC元器件(二)——TVS管选型及应用