中国机器人网 App
手机扫码下载 · 或点击查看
刚接触安川DX200,项目上要用机器人跟视觉通信,我想着在job里用GETREG把寄存器值读出来判断,结果跑程序的时候寄存器里明明有数,GETREG读出来一直是空,换了几个寄存器地址都一样,DX200上有没有啥使能开关要先开?
寄存器类型用的B0,地址100~103,IO那边手动置了1进去的,TP上监控能看到亮,程序里就是拿不到。
GETREG后面括号里那个参数你填的啥格式?是不是直接写的"B0"+空格+100?DX200这里必须严格按"B0 100"这样写,中间一个空格,前缀不能漏。还有一个容易踩的坑是变量类型,你读出来给的是啥变量?ROPR[ ]这种整形的还是BYTE型的,类型不对也会读空。我之前带新人十个有八个栽在这两地方。
你先别急,IO手动强制进寄存器那是另一回事,IO和寄存器是两套东西,B0区的100号是通用寄存器,IO那边压根不会自动映射过去。要往B0里写数得在TP上选【变量】→【B】→手动输入,或者在程序里用SETREG写进去,你光在IO那置1,B0里当然是空的,GETREG读不到怪谁。
跟我现场那台ES165D一个德行,后来发现是job里那行GETREG之前漏了RET或者逻辑跑飞了,程序根本没执行到GETREG这一行,你单步跟一下看看。