type
status
date
slug
summary
tags
category
icon
password
Link
Description
😀
前言: 搜集分享关于埃斯顿机器人的实战应用操作机器人

🧑‍💻软件

由于埃斯顿机器人更新较快本地址仅为个人使用如发生不匹配请联系官方。
虚拟离线示教器
说明书

🕮说明书教学手册

埃斯顿基本指令快速上手手册
2024年新电柜
最新培训资料(上传时间2024-12-24)

📽学习视频

埃斯顿自动化官方微信公众号学习平台点击跳转观看
我B站帐号的埃斯顿收藏夹搜罗了B站比较优秀的博主讲解埃斯顿课程
IP更改
notion image
第一步
notion image
第二步
notion image
第三步
notion image
第四步
notion image
第四步
notion image

📠通讯

⚠⚠⚠通讯部分操作复杂非专业认识请联系官方远程操作
EIP通讯(需要激活)
MULTIPROG示教点位案例
(* Prog_State 1:运行 2:暂停 3:停止 SystemMode 1:手动 2:自动 3:远程 CurCoordType 当前坐标系 1:关节 2:世界 3:工具 4:用户 HMI_flag HMI控制权限 Enable_flag 上使能标志位 Err_flag 报警标志 MOVE_MODE 运动模式 P_NUM P变量序号 P_WRITE_DONE P变量写入成功 *)
(***PLC>>机器人)
ReadADATA:=INT_TO_STRING( P_NUM,'%d'); ReadName := CONCAT('P',ReadADATA);
(*自动示教整个点位) IF P_NUM > 0 AND SystemMode =1 AND Prog_State <> 1 AND HMI_flag = TRUE AND Err_flag = FALSE THEN ER_TeachPosVar_1(Enable:=EIP_READ_BYTE[2].X0,ERC_PosVarName:=ReadName,
ERC_VarScope:=INT#1); END_IF;
(*写入CPOS点) Cpos_Data_1[0]:= SIMAI_CONNECT[15]; Cpos_Data_1[1]:= SIMAI_CONNECT[16]; Cpos_Data_1[2]:= SIMAI_CONNECT[17]; Cpos_Data_1[3]:= SIMAI_CONNECT[18]; Cpos_Data_1[4]:= SIMAI_CONNECT[19]; Cpos_Data_1[5]:= SIMAI_CONNECT[20]; Cpos_CfgData_1[0]:= REAL_TO_DINT(SIMAI_CONNECT[8]); Cpos_CfgData_1[1]:= REAL_TO_DINT(SIMAI_CONNECT[9]); Cpos_CfgData_1[2]:= REAL_TO_DINT(SIMAI_CONNECT[10]); Cpos_CfgData_1[3]:= REAL_TO_DINT(SIMAI_CONNECT[11]); Cpos_CfgData_1[4]:= REAL_TO_DINT(SIMAI_CONNECT[12]); Cpos_CfgData_1[5]:= REAL_TO_DINT(SIMAI_CONNECT[13]); Cpos_CfgData_1[6]:= REAL_TO_DINT(SIMAI_CONNECT[14]); IF P_NUM > 0 (AND SystemMode =1) AND Prog_State <> 1 AND HMI_flag = TRUE AND Err_flag = FALSE THEN ER_SetCposData_1(Enable:=EIP_READ_BYTE[2].X1,ERC_CposName:=ReadName,ERC_VarScope:=INT#1,Cpos_Data:=Cpos_Data_1,Cpos_CfgData:=Cpos_CfgData_1); END_IF;
(***机器人>>PLC)
(P变量写入成功) P_WRITE_DONE := ER_SetCposData_1.DONE OR ER_TeachPosVar_1.Done; EIP_WRITE_BYTE[2].X0 := P_WRITE_DONE;
(机器人当前位置) ER_GetCurCpos_1(Enable:=TRUE); CurCpos_1[0]:=ER_GetCurCpos_1.CPOS_X; CurCpos_1[1]:=ER_GetCurCpos_1.CPOS_Y; CurCpos_1[2]:=ER_GetCurCpos_1.CPOS_Z; CurCpos_1[3]:=ER_GetCurCpos_1.CPOS_A; CurCpos_1[4]:=ER_GetCurCpos_1.CPOS_B; CurCpos_1[5]:=ER_GetCurCpos_1.CPOS_C; ER_GetCurCposCfg_1(Enable:=TRUE); CurCposCfg_1[0]:=ER_GetCurCposCfg_1.CPOS_CFG_mode; CurCposCfg_1[1]:=ER_GetCurCposCfg_1.CPOS_CFG_cf1; CurCposCfg_1[2]:=ER_GetCurCposCfg_1.CPOS_CFG_cf2; CurCposCfg_1[3]:=ER_GetCurCposCfg_1.CPOS_CFG_cf3; CurCposCfg_1[4]:=ER_GetCurCposCfg_1.CPOS_CFG_cf4; CurCposCfg_1[5]:=ER_GetCurCposCfg_1.CPOS_CFG_cf5; CurCposCfg_1[6]:=ER_GetCurCposCfg_1.CPOS_CFG_cf6; ER_GetCurJpos_1(Enable:=TRUE); CurJpos_1:=ER_GetCurJpos_1.Apos_Data;
IF CurCoordType = 1 THEN SIMAO_CONNECT[8] := REAL#0.0; SIMAO_CONNECT[9] := REAL#0.0; SIMAO_CONNECT[10] := REAL#0.0; SIMAO_CONNECT[11] := REAL#0.0; SIMAO_CONNECT[12] := REAL#0.0; SIMAO_CONNECT[13] := REAL#0.0; SIMAO_CONNECT[14] := REAL#0.0; SIMAO_CONNECT[15] := CurJpos_1[0]; SIMAO_CONNECT[16] := CurJpos_1[1]; SIMAO_CONNECT[17] := CurJpos_1[2]; SIMAO_CONNECT[18] := CurJpos_1[3]; SIMAO_CONNECT[19] := CurJpos_1[4]; SIMAO_CONNECT[20] := CurJpos_1[5]; ELSE SIMAO_CONNECT[8] := DINT_TO_REAL(CurCposCfg_1[0]); SIMAO_CONNECT[9] := DINT_TO_REAL(CurCposCfg_1[1]); SIMAO_CONNECT[10] := DINT_TO_REAL(CurCposCfg_1[2]); SIMAO_CONNECT[11] := DINT_TO_REAL(CurCposCfg_1[3]); SIMAO_CONNECT[12] := DINT_TO_REAL(CurCposCfg_1[4]); SIMAO_CONNECT[13] := DINT_TO_REAL(CurCposCfg_1[5]); SIMAO_CONNECT[14] := DINT_TO_REAL(CurCposCfg_1[6]); SIMAO_CONNECT[15] := CurCpos_1[0]; SIMAO_CONNECT[16] := CurCpos_1[1]; SIMAO_CONNECT[17] := CurCpos_1[2]; SIMAO_CONNECT[18] := CurCpos_1[3]; SIMAO_CONNECT[19] := CurCpos_1[4]; SIMAO_CONNECT[20] := CurCpos_1[5]; END_IF;
 
 
P_NUM :=REAL_TO_INT( SIM_AI_01_32[16]);
ReadADATA := INT_TO_STRING( P_NUM,'%d'); ReadName := CONCAT('P',ReadADATA);
ER_TeachPosVar_1(Enable:=(SIMDI_BYTE_01_32[31].X2),ERC_PosVarName:=(ReadName),ERC_VarScope:=vacscope ); tbusy :=ER_TeachPosVar_1.Busy; tdone:=ER_TeachPosVar_1.Done; terror :=ER_TeachPosVar_1.Error; terrorid:=ER_TeachPosVar_1.ErrorID;
 
 
 
 
三菱MC通讯
基恩士上位链通讯
欧姆龙fins通讯
modbus通讯
 

👩🏼‍💻实际案例

🌐官方案例

跳转官方网页点击不同行业查看埃斯顿机器人相关案例👇👇

🌐官方资料下载

跳转官方网页搜索机器人型号即可下载相关模型说明书👇👇

👨‍💻程序案例

案例程序
视觉拆垛程序案例
拆垛案例
传送带跟踪
拆垛程序案例及说明
socket视觉数据传输
notion image
notion image
notion image
notion image
notion image
notion image
程序软plc
(* (获取当前笛卡尔坐标实时值**) ER_GetCurCpos_1(Enable:=TRUE); SIM_AO_01_32[11]:=ER_GetCurCpos_1.CPOS_X; SIM_AO_01_32[12]:=ER_GetCurCpos_1.CPOS_Y; SIM_AO_01_32[13]:=ER_GetCurCpos_1.CPOS_Z; SIM_AO_01_32[14]:=ER_GetCurCpos_1.CPOS_A;
(获取当前关节坐标实时值**) ER_GetCurJpos_1(Enable:=TRUE); CUSAPOS:=ER_GetCurJpos_1.Apos_Data;
SIM_AO_01_32[7]:=MOVE(CUSAPOS[0]); SIM_AO_01_32[8]:=MOVE(CUSAPOS[1]); SIM_AO_01_32[9]:=MOVE(CUSAPOS[2]); SIM_AO_01_32[10]:=MOVE(CUSAPOS[3]);
(点位的赋值程序名的赋值**)
P_NUM :=REAL_TO_INT( SIM_AI_01_32[16]); proname:=DWORD_TO_STRING(DWORD1_32[13],'%x'); project := CONCAT('ESTUN.',proname); ReadADATA := INT_TO_STRING( P_NUM,'%d'); ReadName := CONCAT('P',ReadADATA); vacscope := 3 ;
(示教当前点**)
ER_TeachPosVar_1(Enable:=SIMDI_BYTE_01_32[31].X2,ERC_PosVarName:=ReadName,ERC_VarScope:=vacscope ); tbusy :=ER_TeachPosVar_1.Busy; tdone:=ER_TeachPosVar_1.Done; terror :=ER_TeachPosVar_1.Error; terrorid:=ER_TeachPosVar_1.ErrorID;
(读取某点位的当前关节点坐标值**) ER_GetAposData_1(Enable:=SIMDI_BYTE_01_32[31].X5,ERC_APosName:=ReadName,ERC_APosScope:=vacscope); SIMDO_BYTE_01_32[1].X4:=ER_GetAposData_1.Busy; (* :=ER_GetAposData_1.Done; ) ( BOOL:=ER_GetAposData_1.Error; *) error1:=ER_GetAposData_1.ErrorID; CUSA:=ER_GetAposData_1.Apos_Data;
SIM_AO_01_32[1]:=MOVE(CUSA[0]); SIM_AO_01_32[2]:=MOVE(CUSA[1]); SIM_AO_01_32[3]:=MOVE(CUSA[2]); SIM_AO_01_32[4]:=MOVE(CUSA[3]);
(读取某点位的当前笛卡尔坐标值**)
ER_GetCposData_1(Enable:=SIMDI_BYTE_01_32[31].X5,ERC_CPosName:=ReadName,ERC_CPosScope:=vacscope); SIMDO_BYTE_01_32[1].X4:=ER_GetCposData_1.Busy;
error2:=ER_GetCposData_1.ErrorID; CUSC:=ER_GetCposData_1.Cpos_Data;
SIM_AO_01_32[5]:=MOVE(CUSC[0]); SIM_AO_01_32[6]:=MOVE(CUSC[1]); SIM_AO_01_32[15]:=MOVE(CUSC[2]); SIM_AO_01_32[16]:=MOVE(CUSC[3]);
(加载程序**)
ER_LoadProgram_1(Enable:=SIMDI_BYTE_01_32[31].X3,PrjAndProgName:=project); SIMDO_BYTE_01_32[31].X0:=ER_LoadProgram_1.Done; (* BOOL:=ER_LoadProgram_1.Error;*) error3:=ER_LoadProgram_1.ErrorID;
ER_Reset_1(Enable:=SIMDI_BYTE_01_32[31].X6); busy1:=ER_Reset_1.Busy; done1:=ER_Reset_1.Done; error18:=ER_Reset_1.Error; error5:=ER_Reset_1.ErrorID;

👨‍💻故障排查

电池报警
notion image
本地版
网页版
 
编码器线的排查
notion image

其他应用

vnc软件改ip
传送带跟踪
单轴回零
点位就近规划路径
码垛万能程序公式(可用在所有机器人的程序套用)
floor:取整 %:取余数或fmod
notion image
  1. put.x = P:base.x + ((P:IT0.value - 1)%4)*100:这行代码在计算要放置箱子的x坐标。(P:IT0.value - 1)%4计算的是当前箱子在单层中的列位置(范围从0到3)。然后乘以箱子的宽度(即100),得到箱子相对于基础点的x坐标。
  1. put.y = P:base.y + (floor((P:INTO.value - 1)/4))*100:这行代码在计算要放置箱子的y坐标。floor((P:INTO.value - 1)/4) 计算的是当前箱子在单层中的行位置。然后乘以箱子的长度(即100),得到箱子相对于基础点的y坐标。
  1. put.z = P:base.z + (floor((P:INTO.value - 1)/16))*100:这行代码在计算要放置箱子的z坐标。floor((P:INTO.value - 1)/16) 计算的是当前箱子所在的层数。然后乘以箱子的高度(即100),得到箱子相对于基础点的z坐标。
所以这段代码的目的是根据箱子的数量和位置,计算出每个箱子在堆垛中的坐标。每层有4x4,即16个箱子。每个箱子的尺寸为长100,宽100,高100。 P:IT0.valueP:INTO.value 是用来追踪当前箱子的位置和数量的
 
翠欧学习
翠欧学习

关于埃斯顿机器人二次开发的高级功能

埃斯顿机器人需要利用软plc进行底层二次开发通讯。试用主流的绝大多数通讯,本人测试EIP和modbus的二次开发功能
💡
本资料库为个人收藏整理使用,开源对外开放,仅供参考。。如有错误请下方留言指出一起学习进步。。
💡
有错误的地方欢迎埃斯顿大佬底部评论区留言,相关机器人案例投稿可发我邮箱[email protected]一起交流,网站内容会持续丰富更新,欢迎收藏关注~
达明机器人埃斯顿酷卓协作机器人
Loading...
Robotqu
Robotqu
一名机器人工程师
最新发布
isaac sim
2025-1-16
梅卡曼德AI
2025-1-16
estun高阶功能
2025-1-15
遨博机器人
2025-1-15
众为兴机器人
2025-1-15
ESPON机器人
2025-1-15
公告
🎉欢迎来到我的网站🎉
-- 感谢您的支持 ---
👏欢迎留言评论👏
notion image