众为兴机械手与上位机交互调试
示教器的使用
- 界面及按钮含义
点击手动界面上方倍率,改变速度倍率
导入程序 可以插入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
示教器视觉配置
手动模式,点击小黄人,视觉,配置,打开
众为兴机械手与上位机交互调试相关推荐
- C++语言Qt实现 串口软件 用于嵌入式软件开发上位机通信调试软件
我遇到个需求: 目标:开发一个串口上位机软件,用于和单片机等进行串口通信. 内部原理:调用串口类,接收到数据进行解析和显示 效果:提供了友好的简洁美观界面,下面就是软件的界面:(支持hex十六进制显示 ...
- 伟创变频器AC310与上位机通信调试记录
电源连接 火:R/L 零:T/N 地:GND 通信连接(RS-485) R+(D+):A+ R-(D-):B- 变频器参数调整 F01.01运行命令通道:2-RS485通信控制: F01.02频率给定 ...
- Autolabor_pro1上位机控制调试问题整理
1.Ros驱动包测试底盘速度指令遇到的报错: 问题总结:系统盘文件可能被破坏了,重新烧录系统 ...
- 【上位机教程】CANopen通信一体化步进电机调试软件操作
本教程适用于立迈胜STM系列CANopen通信一体化步进电机电机上位机连接调试.本文所用软件与说明书获取方式在文末处说明. 一.环境搭建 软件环境准备 1.安装NimStudio上位机调试软件,按照提 ...
- 匿名上位机V7与stm32通信协议
一,通信介绍 1.通信帧格式介绍 为了适应多种数据类型的传输,保证高效的通信效率,所有数据的通信,均需要遵守本通信帧格式.本格式在 确保通信高效.源码简单.可移植性高的基础上,实现数据正确性判断,有效 ...
- 上位机与下位机交互--让socket不死
需求说明: 下位机是plc,西门子1200 下位机只能做服务器端,监听一个端口,不能主动给客户端发送消息(原计划是上位机也是监听一个端口,供下位机来访问,上传数据,结果现实很骨感) 上位机(pc)充当 ...
- 雅马哈机械手的基本操作,与上位机通讯程序编写
运行环境:机械手与电脑在同一网段上 1. 安装雅马哈机械手的软件 2. 添加许可证:工具–选项–许可证 3. 建立新的控制器:以太网–输入机械手的ip 4. 机械手连接 连接后的状态 5. 伺服上电 ...
- 上位机引导机械手、ABB机器人C#二次开发、PC SDK 开发项目。应用机器人喷涂或机器人搬运
上位机引导机械手.ABB机器人C#二次开发.PC SDK 开发项目.应用机器人喷涂或机器人搬运. 提供运行环境:电脑端vs2019运行程序,ABB机器人端robotstudio6.08 提供源-程序: ...
- 兴达易控MPI转光纤模块应用-300PLC与远端3公里外地上位机MPI通信
兴达易控MPI转光纤模块应用-300PLC与远端3公里外地上位机MPI通信 本案例介绍现场的一台300 313c的一款PLC 利用兴达易控生产的MPI转光纤与三公里以外的组态王实现MPI通信 案例背景 ...
最新文章
- 关于学习Python的一点学习总结(15)
- python讲1020逆序输出_手把手带你学 Python3(九)| 快速实现数据处理的不二工具(文末有彩蛋)...
- acess dao示例
- 15个学习习惯,受益一生(强烈推荐)
- css3中animation动画、浏览器私有前缀、文字阴影
- asp.net 初步入门使用正则抓取网页信息
- SN战队创造历史,苏宁集团发内部嘉奖令
- Linux 命令(63)—— nm 命令
- 第一个spring冲刺团队贡献分(80分满分)
- Excel(九)-怎样让你的Excel界面更干净?
- Android Multimedia框架总结(三)MediaPlayer中创建到setDataSource过程
- java计算日期之间的天数_使用Java计算两个日期之间的天数
- h5下划线怎么设置_怎么给文加下划线?
- 晶振及其内部电路详解:
- 腾讯云灯塔计划——云行业研究报告
- Lesson 5英语句子成分
- 【EOSIO】EOS/WAX签名错误 is_canonical( c ): signature is not canonical 问题
- 【CIPS 2016】(17章)文字识别 (研究进展、现状趋势)
- 马一篇知乎大佬的诠释
- 通过cv2.VideoCapture完成跳帧截取视频图片
热门文章
- 两个脚本解决打开安卓模拟器时会显示黑框cmd的问题
- 第一次工业革命(三)——蒸汽船的发展
- Python:迭代函数系统(IFS)
- 我的计算机硬盘只有两个,我发现电脑只有两个硬盘,一个C盘一个E盘,我该怎
- 搜索引擎优化(SEO)
- 搜索引擎优化系统知名乐云seo_站群搜索引擎优化排名
- android卸载按钮不能用了,不用ROOT 干掉Android里无法卸载的APP
- python的说法中错误的是_【单选题】下列关于python的说法中,错误的是( )。...
- U盘变成RAW格式怎么修复?U盘数据如何恢复?
- 计算机计算生命的意义,简易计算器