紧急求助

发那科程序里那堆寄存器到底咋分配合理?我自己都绕晕了

999
999
2026/04/16 20:17

手里一个搬运项目,6轴发那科,配的R-30iB Plus控制柜。程序框架我倒是能搭,IO映射啥的也行,就是到寄存器这块儿老觉得乱。R[i]、PR[i]、DI/DO这些我每次都是随手用,存个临时位置啥的直接开一个,也不分类也不记录,用了十几个之后自己都分不清哪个是哪个了,等到第二次改程序的时候头都大。

想问下各位平时寄存器都怎么规划的?有没有啥约定俗成的分配方法或者编号习惯?另外PR寄存器到底什么时候该用、啥时候直接用笛卡尔坐标赋值就行,这俩我经常混着来,也不知道哪种更稳。

11 3

全部回复 (3)

小勇
小勇#1

你这个不算邪门,就是没养成习惯。我这边做小项目一般这么分:R[1-9]留系统或者临时运算用,R[10-49]给程序内部用,每个子程序段开几个连续的专门存当前位置、计数、循环变量,写注释标明日期和用途。PR我基本只用在两点之间插补或者需要做坐标偏移的时候,普通搬运点位直接用P[i]赋坐标,P[1-20]给抓料,P[21-40]给放料,DI[1-8]给安全信号,DO[1-8]给夹爪和外部动作,写个Excel贴墙上,每次用完打勾。还有一个土办法,程序里开一个专门的位置管理子程序,所有R和PR都在那一个地方定义,别的地方只调用不新建,这样再乱也乱不到哪去。

2026/04/17 19:10
qiangz98
qiangz98#2

别光记寄存器编号,你把注释写全了比啥都强。我这边R[i]基本每个都写中文注释,标清楚"R[15]=抓手当前位置X坐标备份"这种,哪怕用三年以后回来翻程序,一眼就懂。PR寄存器我做点胶项目才用得上,搬运真没必要上。

2026/04/17 20:07
魏涛
魏涛#3

等下,你做的是新项目还是老项目改造?新项目的话别在寄存器上抠细节,先把IO分配和点位优先级理清楚,寄存器后面再规范也来得及,老项目改造的话直接对着原程序一个一个对,别上来就重构,不然客户那边产线停了天天催你更头疼。

2026/04/18 10:30