示教器的使用

  • 界面及按钮含义

    点击手动界面上方倍率,改变速度倍率
    导入程序 可以插入U盘可以在我的电脑输入ftp://192.168.0.123,将文件拖入PROJECT 点击左上方小黄人点击CPU#1导入程序 示教器点击刷新即可

LUA编程软件使用

  • 新建文件:点击文件,新建,输入

function main()
end

Ctrl+s 保存文件,用数字或者字母命名文件名,将后缀名改为.AR,机械手才可识别文件

  • 程序编写:

1.local 定义局部变量
定义输入信号,输出信号,报警信号,点位定义,

--输入信号
local Input_Up_Down_L = 1                                   --左上下气缸到位输入端口1--输出信号
--气缸
local Output_Up_Down_L = 1                                  --左上下气缸输出端口1

2.IO初始化,点位初始化

--点位定义
local waitLoc = p1                                          --等待点
local putLoc = p2                                           --安全及放料点--输出IO初始化
for i=1,20 doDO(i,OFF)
end
--ModBus地址初始化
for i=0,50 dopublicwrite((i+256),0)
end
--点位初始化
MovP(waitLoc,"Spd=100 CP=100")
print("点位初始化完成,等待上位机拍照")

3.主程序


function main()MotOn()CCDclr("CAM0")                                               --清除网络托管while 1 do::FH1::CCDsent("CAM0","NO,0,0,0;")                                            --采用网络触发方式触发相机拍照Delay(10)                                                       --延时10mslocal catchLoc = {x=0,y=0,z=0,c=0,h=0}                            --定义抓取位print("开始接收视觉 CAM0 的数据")local n,data,err=CCDrecv("CAM0")                                --接收视觉 CAM0 的数据--获取当前的系统时钟 local time1=systime()                                               if data == nil then                                                  --如果数据为空print("data == nil")CCDsent("CAM0","The Message is nil.Please Send again!") elseif data ~= nil then                                             --如果数据不为空print("data ~= nil")
--自动模式if data[1].NO == "auto" then                                      --如果接收到的数据第一位是auto,进入自动模式print("enter auto")   --[[MovP(middleLoc,"Spd=100 Acc=100 CP=100")                   --移动到中转位--]]for i=1,n do                                                --循环n次     print(i,data[i].NO,data[i][1],data[i][2],data[i][3])                 --打印每组数据     if data[i][1]~=0 or data[i][2]~=0 then                   --判断数据不同时为零  catchLoc.catchLoc.x=data[i][1]                                --数据 data[i][1]赋值给 catchLoc.x   catchLoc.y=data[i][2]                                  --数据 data[i][2]赋值给 catchLoc.y       catchLoc.z=-37.7      catchLoc.c=data[i][3]                               --数据 data[i][3]赋值给 catchLoc.c Delay(100)print("到第",i,"个点位了")MovP(catchLoc,"Spd=100 Acc=100 CP=100") --气缸往下5,6,7DO(i+4,ON)                                           Delay(200) if DI(i+5) == OFF then                                --如果下气缸没到位6,7,8publicwrite(i+256,1)            --下气缸没到位报警Pause()                                           --执行该指令后程序暂停执行,按启动键后程序继续运行endMovP(catchLoc+Z(-10),"Spd=100 Acc=100 CP=100")  --吸气11,12,13DO(i+10,ON)                                               Delay(200)if DI(10+i) == OFF then                                --如果吸气未导通publicwrite(259+i,publicread(259+i)+1)MovP(throwLoc,"Spd=100 Acc=100 CP=100")                     --扔料位for i=1,3 doDO(i+10,OFF)                                             --关闭吸气DO(i+15,ON)                                              --吹气16,17,18  Delay(200)      DO(i+15,OFF)                                               --关闭吹气                      endMovP(waitLoc,"Spd=100 Acc=100 CP=100")  goto FH1    end  --回到catchLoc抓取位MovP(catchLoc,"Spd=100 Acc=100 CP=100")DO(i+4,OFF)                                        --气缸往上Delay(100)    if DI(i+15) == OFF then                               --如果上气缸没到位publicwrite(i+262,1)                                --上气缸没到位报警Pause()                                            --执行该指令后程序暂停执行,按启动键后程序继续运行end   endend      end MovP(middleLoc,"Spd=100 Acc=100 CP=100")                  --移动到中转位WDI(1,OFF)WDI(2,ON)                                     --直到等到输入端口2状态为 ON 再执行下面DO(0,ON)                                     --机器人放料中--putLoc放置位MovP(putLoc,"Spd=100 Acc=100 CP=100")print("到达放置位")   for i=1,3 doDO(i+4,ON)                                                --气缸往下if DI(6+i) == OFF then                                  --如果下气缸没到位publicwrite(i+256,1)             --下气缸没到位报警Pause()                                           --执行该指令后程序暂停执行,按启动键后程序继续运行endMovP(putLoc+Z(-10),"Spd=100 Acc=100 CP=100")  DO(10+i,OFF)                                             --关闭吸气DO(i+15,ON)                                                  --吹气Delay(200)  DO(i+15,OFF)                                               --关闭吹气  end Delay(500)MovP(putLoc,"Spd=100 Acc=100 CP=100")                --回到putLoc放置位   for i=1,3 do   DO(i+4,OFF)                                                --上下气缸往上end     if DI(15+i) == OFF then                               --如果上气缸没到位publicwrite(i+262,1)             --上气缸没到位报警Pause()                                           --执行该指令后程序暂停执行,按启动键后程序继续运行end MovP(waitLoc,"Spd=100 Acc=100 CP=100")CCDsent("CAM0","in position")                 --CCD:机器人放料完成DO(1,ON)                                        --plc:机器人放料完成local time2 = systime()-time1                              --获取程序运行的时间 print("运行时间:",time2)
--手动模式              elseif data[1].NO == "manual" then                              --如果接收到的数据第一位是manual,进入手动模式print("enter manual")if data[1][1] == 1 then                                      --如果接收到的数据第二位是1DO(5,ON) print("DO(1,ON)")                                         --打开左上下气缸elseif data[1][1] == 2 thenDO(6,ON)print("DO(2,ON)")                                           --打开中上下气缸elseif data[1][1] == 19 then                                 MovP(waitLoc,"Spd=100 CP=100")print("移动到等待位")elseprint("err")                                           --打印错误endelseprint("o")endend end end
  • 导入文件:在我的电脑输入ftp://192.168.0.123,将文件拖入PROJECTS

示教器视觉配置

手动模式,点击小黄人,视觉,配置,打开

众为兴机械手与上位机交互调试相关推荐

  1. C++语言Qt实现 串口软件 用于嵌入式软件开发上位机通信调试软件

    我遇到个需求: 目标:开发一个串口上位机软件,用于和单片机等进行串口通信. 内部原理:调用串口类,接收到数据进行解析和显示 效果:提供了友好的简洁美观界面,下面就是软件的界面:(支持hex十六进制显示 ...

  2. 伟创变频器AC310与上位机通信调试记录

    电源连接 火:R/L 零:T/N 地:GND 通信连接(RS-485) R+(D+):A+ R-(D-):B- 变频器参数调整 F01.01运行命令通道:2-RS485通信控制: F01.02频率给定 ...

  3. Autolabor_pro1上位机控制调试问题整理

    1.Ros驱动包测试底盘速度指令遇到的报错: 问题总结:系统盘文件可能被破坏了,重新烧录系统 ...

  4. 【上位机教程】CANopen通信一体化步进电机调试软件操作

    本教程适用于立迈胜STM系列CANopen通信一体化步进电机电机上位机连接调试.本文所用软件与说明书获取方式在文末处说明. 一.环境搭建 软件环境准备 1.安装NimStudio上位机调试软件,按照提 ...

  5. 匿名上位机V7与stm32通信协议

    一,通信介绍 1.通信帧格式介绍 为了适应多种数据类型的传输,保证高效的通信效率,所有数据的通信,均需要遵守本通信帧格式.本格式在 确保通信高效.源码简单.可移植性高的基础上,实现数据正确性判断,有效 ...

  6. 上位机与下位机交互--让socket不死

    需求说明: 下位机是plc,西门子1200 下位机只能做服务器端,监听一个端口,不能主动给客户端发送消息(原计划是上位机也是监听一个端口,供下位机来访问,上传数据,结果现实很骨感) 上位机(pc)充当 ...

  7. 雅马哈机械手的基本操作,与上位机通讯程序编写

    运行环境:机械手与电脑在同一网段上 1. 安装雅马哈机械手的软件 2. 添加许可证:工具–选项–许可证 3. 建立新的控制器:以太网–输入机械手的ip 4. 机械手连接 连接后的状态 5. 伺服上电 ...

  8. 上位机引导机械手、ABB机器人C#二次开发、PC SDK 开发项目。应用机器人喷涂或机器人搬运

    上位机引导机械手.ABB机器人C#二次开发.PC SDK 开发项目.应用机器人喷涂或机器人搬运. 提供运行环境:电脑端vs2019运行程序,ABB机器人端robotstudio6.08 提供源-程序: ...

  9. 兴达易控MPI转光纤模块应用-300PLC与远端3公里外地上位机MPI通信

    兴达易控MPI转光纤模块应用-300PLC与远端3公里外地上位机MPI通信 本案例介绍现场的一台300 313c的一款PLC 利用兴达易控生产的MPI转光纤与三公里以外的组态王实现MPI通信 案例背景 ...

最新文章

  1. 关于学习Python的一点学习总结(15)
  2. python讲1020逆序输出_手把手带你学 Python3(九)| 快速实现数据处理的不二工具(文末有彩蛋)...
  3. acess dao示例
  4. 15个学习习惯,受益一生(强烈推荐)
  5. css3中animation动画、浏览器私有前缀、文字阴影
  6. asp.net 初步入门使用正则抓取网页信息
  7. SN战队创造历史,苏宁集团发内部嘉奖令
  8. Linux 命令(63)—— nm 命令
  9. 第一个spring冲刺团队贡献分(80分满分)
  10. Excel(九)-怎样让你的Excel界面更干净?
  11. Android Multimedia框架总结(三)MediaPlayer中创建到setDataSource过程
  12. java计算日期之间的天数_使用Java计算两个日期之间的天数
  13. h5下划线怎么设置_怎么给文加下划线?
  14. 晶振及其内部电路详解:
  15. 腾讯云灯塔计划——云行业研究报告
  16. Lesson 5英语句子成分
  17. 【EOSIO】EOS/WAX签名错误 is_canonical( c ): signature is not canonical 问题
  18. 【CIPS 2016】(17章)文字识别 (研究进展、现状趋势)
  19. 马一篇知乎大佬的诠释
  20. 通过cv2.VideoCapture完成跳帧截取视频图片

热门文章

  1. 两个脚本解决打开安卓模拟器时会显示黑框cmd的问题
  2. 第一次工业革命(三)——蒸汽船的发展
  3. Python:迭代函数系统(IFS)
  4. 我的计算机硬盘只有两个,我发现电脑只有两个硬盘,一个C盘一个E盘,我该怎
  5. 搜索引擎优化(SEO)
  6. 搜索引擎优化系统知名乐云seo_站群搜索引擎优化排名
  7. android卸载按钮不能用了,不用ROOT 干掉Android里无法卸载的APP
  8. python的说法中错误的是_【单选题】下列关于python的说法中,错误的是( )。...
  9. U盘变成RAW格式怎么修复?U盘数据如何恢复?
  10. 计算机计算生命的意义,简易计算器