PLC论坛-全力打造可编程控制器专业技术论坛

 找回密码
 注册哦

QQ登录

只需一步,快速开始

微信扫码登录

查看: 38227|回复: 0

[汇川] 汇川PLC发送指令,触发埃斯顿机器人启动

[复制链接]
发表于 2024-9-5 09:27:08 | 显示全部楼层 |阅读模式
前几天与埃斯顿机器人建立通讯,通讯控制机器人的启动、停止、复位,但发现埃斯顿机器人的通讯控制启动的逻辑与其他机器启动的方式不同,花了一点时间琢磨,分享一下本人写的启动程序。

下图是埃斯顿机器人远程启动逻辑,首先需要把要把读写标志寄存器40100写0,然后再给40100写0x11(转换成十进制为17),然后再往启动的寄存器内写入0x4,而且不能同时写,得先读取40019反馈的系统状态,确定机器人开启了远程写入,再往40052内写入0x4,咋一看逻辑,一脸懵,竟然还有这种操作。

具体操作流程及寄存器定义如下:









因为机器人是触摸屏触发,触摸屏给到一个启动信号,PLC使用置位,保持启动信号:

vb_1机器人启动                                                 S= hb_1机器人启动;

再做一个2秒循环定时器,用于做判断,如果在前一秒内启动了机器人,流程步直接进入下一环节,如果在后一秒没有反馈启动信号,再接回到前面启动流程,重新出发。

FB_1循环定时器(IN:=( NOT FB_1循环定时器.Q), PT:= T#2S, Q=> , ET=> );

具体的启动流程程序如下:

CASE vd_1启动步序 OF    //注:地址采用的是10进制地址,不要用16进制,通讯地址得在基础地址上减一,要不然读出来的数据相差一个“字”

00:

IF (vb_1机器人启动 AND (%IW304 = 17)) OR (vb_1机器人启动 AND (%IW304 = 0))  THEN                                //17等于16进制的0x11

%QW142                                                                := 0;                            //如果按下启动,%IW304等于17时,直接赋值为0

%QW143                                                                := 0;

vd_1启动步序                                                := 10;

END_IF

10:

IF  vb_1机器人启动 AND (%IW304 = 0)  THEN                        // %IW302 是状态读取,启动,停止,复位等状态  启动为4,暂停为8,复位为16

%QW142                                                                := 17;                        // %IW304 是写入权限读取

END_IF

IF (%IW302 = 2049) AND (FB_1循环定时器.ET >T#1S) THEN                //循环定时器,给一秒,停一秒,持续写,好像写不进去

%QW143                                                                := 4;                                            // %QW142 机器人读写权限写

vd_1启动步序                                                := 20;

ELSIF (%IW302 <> 2049) AND (FB_1循环定时器.ET <T#1S) THEN

vd_1启动步序                                                := 00;

END_IF       

20:

IF  (%IX604.2 =TRUE) AND  (%IW304 = 17) THEN                                // %QW143 机器人状态写入  (%IX604.2 =TRUE)是反馈的启动状态

vb_1机器人启动                                                 := FALSE;

vd_1启动步序                                                := 00;

END_IF

END_CASE

程序截图如下(启动停止复位动作都是一样的,可以考虑用函数,直接调用):



另外,埃斯顿机器人通讯地址也有点坑,说明书给的寄存器地址是40019,但你读40019数据,结果是错的,应该读的地址是(40019-1=40018),不知道 是不是寄存器地址没有从40000开始往后排的原因,所以做通讯,一定要先读一个寄存器或写一个寄存器试试,要不然都不知道读的地址是不是正确的。

以上知识是个人在书本学习或在实践中学习到的,为了后续查找,故此在公众号分享。喜欢此类知识分享的朋友可以点击关注,谢谢!!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册哦

本版积分规则

QQ|小黑屋|手机版|Archiver|PLC技术网-PLC论坛 ( 粤ICP备17165530号 )|网站地图

GMT+8, 2024-9-17 02:54 , Processed in 0.051172 second(s), 27 queries .

快速回复 返回顶部 返回列表