某客户项目案例22.9.25
官网
某尔2022年9月20日
..IO表
modbus地址 | 机器人地址 | 定义. |
68 | simAI0 | MES系统扫码处理完成 |
70 | simAI1 | 1-失败丢2-旋转180 4-正常 |
20 | simAO1 | 发送拍照标志 |
程序某客户拆跺码垛程序
// InstParseVersion: V1.02
Start:
GetCurCPos{P=t_l.P0} // 启;获取当前位置的世界坐标,判断当前位置的
IF t_l.P0.z < 1000 THEN // 高度,是否小于1000(工作台高度),如果
MovL{P=t_l.P0} // 如果小于,则先垂直提升至1000高度;再回
ENDIF // 止;home点
MovJ{P=t_g.home}
xunhuan: // 循环执行的指针
t_g.number.value = 0 //对计数number进行赋初值为0;从第一件开始抓
t_g.number.value = t_g.number.value+1
t_g.offs_X.value = 0 //X方向偏移值
t_g.offs_Y.value = 0 //Y方向偏移值
t_g.offs_Z.value = 0 //Z方向偏移值
t_g.maduo.X = t_g.maduojizhun.X + t_g.offs_X.value
// 码垛X座标位置=示教的基准位置+偏移的量
t_g.maduo.Y = t_g.maduojizhun.Y + t_g.offs_Y.value
t_g.maduo.Z = t_g.maduojizhun.Z + t_g.offs_Z.value
MovJ{P=t_g.maduo}
t_g.offs_X.value = t_g.offs_X.value+400 // 箱子的长可改;
IF fmod(t_g.number.value/3==0)THEN // 码垛的类型X方向为3个,可以自定义;
t_g.offs_X.value = 0
t_g.offs_Y.value = t_g.offs_Y.value+300 // 箱子的宽可改;
ENDIF
IF fmod(t_g.number.value/12==0)THEN // 箱子一层为12个;
t_g.offs_X.value = 0
t_g.offs_Y.value = 0
t_g.offs_Z.value =t_g.offs_Z.value -250
// 箱子的高度250可改,正值代表码垛,负值代表拆跺;
ENDIF
IF fmod(t_g.number.value/36==0)THEN // 一垛的总数为36个,可更改;
t_g.offs_X.value = 0
t_g.offs_Y.value = 0
t_g.offs_Z.value = 0
ENDIF
GOTO xunhuan //跳转至指针“xunhuan”,实现循环拆垛
End;
通讯
modbus 1、simAO 浮点型 2、指令整数型
socket 没有具体地址 可发送字符串 发现只有10位
固定式传送带跟踪
Start:
SetPayload(PayLoad0)
SetTool(Tool0) // 结合现场情况设置负载与工具信息
RUN runProg //并行程序以检测 IO 状态
MovJ(Phome) // 运动至原点
aaa:
SetDO(DO0,0)
MovL(Pwait,World) // 运动至跟随等待点 Pwait
WaitWObj{SYNC0,INT0,0,INT1) // 等待视觉发送工件位置信息
MovLSync(P1,V2000,SYNC0,"Goto SyncFail",10,"Goto TrackFail")
// 开始跟随至同步点 P1,并加入跟随放弃时的跳转标签及抬升高度
MovLRel(DP0,V500)
MovL(P3,V1000)
MovL(P4,V1000)
MovL(P5,V1000)
MovL(P2,V1000)
SetDO(DO0,1)
Wait(50) // 跟随中的动作可根据现场应用添加相应的指令
MovLRel(DP1,V500)
MovJSyncQuit(Pput,V2000,World) // 退出跟随,运动至 World 下的退出点 P6
GOTO aaa
SyncFail:
MovL(Pwait,World) // 同步中失败,退出至跟随等待点 Pwait
GOTO aaa
TrackFail:
MovL(Pput,World) // 同步后失败,退出至跟随放置点 Pput
GOTO aaa
End;
并行程序
//runProg
Start:
IF DI0.riseSts == true THEN // DI 变量的值为参数界面触发输入口
SetDIEdge(DI0,"riseEdge",0) // 将 DI0 端口的上升沿状态设置为 0
SetTargetPos(SYNC0,P0) // 设置工件位置
ENDIF
Wait(50)
GOTO Start
End;
虚拟示教器原ip
[General]
localedir=./locale
locale=ch
appname=bricks_exec
[ClientInfo]
INTERNET=eth0
TEACHHANDLEIP=192.168.60.62
POINT=56177
INTIMEIP=192.168.60.68
CONTROLLERIP=192.168.60.63
FtpPort=2000
FtpName=estun
FtpPassword=estun
appname=bricks_exec
[UserInfo]
INITTYPE=1
[Debug]
DEBUG_STARTUP=true
DEBUG_COMM=true
DEBUG_SOCKET=false
DEBUG_SYSTEM=true
DEBUG_PERIODIC=true
[Tab]
TabName=basic|pengzhuang|ip|cameraIP|conveyer|track|vibration|local
PcNonuse=ninePoint|maintain|runninginTest|slaveStation
[RedefineKey]
Rob=false
FB=false
[RedirectLog]
enable=false
enDebug=false
[PromptDialog]
enReLoadPro=true
enToPos=false
enNetBusy=false
enSysNormStart=true
enClewMsg=false
[SystempLogForTP]
enTPLogShow=false
enERCLogShow=true
SupportFileType=log|txt
[HMIUPDATE]
enCheck=false
HMIZipFilePath=./temp
[ERCAlarmLog]
RedBakLogs=5402
[DATAMANAGER_SCOPE_SYS]
enDisvisbleFlag=true
disvisible_param=PAYLOAD|USERCOOR|TOOL
[PUGINS_SETTING]
ServoPns=Pn102|Pn103|Pn104|Pn105|Pn106|Pn112|Pn113|Pn114|Pn115
DownloaderPath=
DownloaderFileName=
ImportFileType=
waitS=3
enQuickModifyInst=true
proLineCnt=10
proHideLine=false
proTextSize=11
enTPDbModiInst=false
enTPDbOpenProg=true
enProcessBar=true
enLocalBackRuntime=false
posCount=2
enTeachPosCheckAgain=true
isRightButtonShow=false
[ChineseInputMethodCfg]
string_input_flag=true
[OTHER_SETTINGS]
reGetInsParamsTimes=10
[SYSTEM_CFG]
reInitSocketInterval=400
GetInstParamList_SocketInterval=3000
[INPUTCFG]
enStrVarSpeWord=true
enStrInstSpeWord=true
[USERSERVER_ENABLE]
UserServer_Enable=false
[SYS_IO_ENABLE]
sys_Io_Enable=true
[AutoSleepScreen]
screenBrightness=100
autoSleepScreenBrightness=0
autoSleepScreenSeconds=300
autoSleepScreen=true
sleepWithLock=false
sleepWithLogout=true
lockScreenBackground=0|0|0|100