实验室有史陶比尔软件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相关推荐

最新文章

  1. LeetCode简单题之将所有数字用字符替换
  2. Matlab | matlab中@的用法总结(附matlab测试代码):What does “@“ do ?
  3. 庄闲分析软件安卓版_关于公布湖南省2020年第七批软件产品评估结果的通知
  4. 版本变迁_上新了!隋唐洛阳城应天门3D投影秀更新版本!(附视频)
  5. 语言的进步与代码生成
  6. 在 Linux 下使用 RAID(二):使用 mdadm 工具创建软件 RAID 0 (条带化)
  7. 基础笔记8(二)(容器-引用类型的排序)
  8. 查询Linux的公网及内网IP
  9. 内网穿透NPS及NPC搭建(使用docker实现)
  10. vs括号对齐和vs设置背景图片
  11. cad多段线画圆弧方向_CAD多段线绘制技巧 - CAD自学网
  12. 策略模式——鸭子游戏
  13. python制作恶搞_Python:恶搞,将你朋友照片做成熊猫人表情包
  14. 黑鲨helo支持html吗,黑鲨Helo的实用功能有哪些 黑鲨Helo的使用技巧
  15. MXT6208量产修复工具+v2.0非常好用哦!
  16. 【anaconda】彻底解决windows下anaconda3占用C盘问题(改了envs、pkgs安装路径依旧占用C盘)
  17. Linux--JVM内存设置
  18. 数据库中的CAP原理
  19. OMRON NJ501-1520真实项目程序 欧姆龙NJ做的程序27轴+110个气缸+1个机械手
  20. 基于Java实现的区块链供应链金融系统平台设计

热门文章

  1. php调用百度地图定位,php用百度地图API进行IP定位和GPS定位
  2. Django中使用极验Geetest滑动验证码过程解析
  3. 综合面试(hr面)常问的问题
  4. 眼动追踪:用户体验设计利器_眼动追踪:如何观察点击之间的差距(以及原因)
  5. STM32F103外部中断
  6. html的标签语言有哪些,HTML 是什么?
  7. 搭建Flutter环境时的坑
  8. CAD图纸怎么快速转换图片格式?
  9. 帝国cms安装到linux系统,帝国CMS安装方法(适用于 帝国CMS 7.5 )【图文】
  10. 微信小程序--js:在setData()中对data中的数组赋值