中国机器人网 App
手机扫码下载 · 或点击查看
刚转行做应用,之前一直用发那科和ABB,最近公司接了个埃斯顿ER系列的活,编程界面看了一圈有点懵。手册里讲的变量声明有全局、有局部还有啥模块内变量,看得我头大。实际项目里一个搬运程序,想在主程序里用到一个计时值,主程序调完子程序回来这个值还得继续用,应该声明在哪个层级?写在主程序开头算全局吗?
ER系列那个编程环境是有点像把几家的东西揉一块了。你这个需求最简单就是声明在主程序里、用LOCAL(局部)关键字,作用域就覆盖整个主程序了,包括它调用的子程序也读得到。千万别声明在子程序里头,一返回就清零,你那个计时值就没了。声明位置在主程序VAR和BEGIN之间的位置,别写在BEGIN后面。
我这边ER170B用的就是模块化结构,每个工序单独建MODULE,跨模块的数据走GLOBAL_VAR,全在一个文件里管理。你搬运这种单工位应用真没必要搞那么复杂,主程序LOCAL够用了,多人协作的大线再上全局变量池。
等下,你计时用的是什么指令?埃斯顿那个TON定时器的当前值变量类型是TIME,不是INT,别一上来就按发那科的习惯用整数寄存器存,转换的时候容易踩坑。