讨论

发那科机器人程序里那些变量名到底有没有规范啊

生意兴隆
生意兴隆
2026/05/06 13:00

最近在整理一个老项目的KAREL程序,变量命名乱七八糟,临时变量全叫啥都有,注释也基本没有,看着头大。客户那边还想让我帮着把新程序也按他们的习惯来,但我翻了一圈FANUC的手册,变量定义这块写得挺笼统的。

想问问各位,变量名(特别是KAREL里那些自定义的)一般咋起?有没有什么公认的写法或者老外那边一直在用的惯例?另外数值型、布尔型、位寄存器这些在命名上要不要加前缀区分?我看有的厂子用VAR_开头,有的直接小驼峰,还有用匈牙利那一套的,到底哪种后期维护起来不容易乱?

216 4

全部回复 (4)

老沈
老沈#1

说实在的,FANUC官方对KAREL变量命名没有硬性规范,手册里就提了一句“建议有意义的命名”。我手上现在有12台FANUC的产线,统一规定是:局部变量小驼峰,全局变量g_开头,数值型加n后缀(nValue),布尔型加b(bReady),位置寄存器用PR_加数字(PR_1、PR_2对应PR[1]、PR[2]),IO信号直接用系统默认名+注释。三年下来几十个程序换人维护,没出过一次因为命名看不懂返工的。关键还是看你厂里文档系统支不支持检索,要是就靠人肉翻Comment,加再多前缀也白搭。

2026/05/06 16:54
一本万利
一本万利#2

别迷信什么规范不规范,我见过三家日资车企的FANUC程序,命名风格完全不一样,但人家程序跑了快十年没出过大毛病。说白了变量名不是重点,重点是每个程序文件开头必须有变量清单表,列出所有全局变量、I/O映射、常量定义,没有这个清单你命名再规范也是扯淡。匈牙利那种带类型的命名方式在C里都被喷了多少年了,工业现场程序生命周期短(一般3-5年就改版重写了),搞那么复杂纯属给自己挖坑。

2026/05/07 07:40
999
999#3

你这个项目是要给客户做长期维护还是一次性交付?两种情况处理方式完全不一样。

2026/05/08 23:53
潘志明
潘志明#4

直接说个反例:之前有个项目前任工程师变量名全用拼音首字母(JK代表jikong,GD代表guodu),我接手时候差点没疯,一个判断条件里连着四五个GD_1、GD_2、GD_3这种鬼东西,对着注释猜了半天才搞明白哪个是哪个。后来直接和客户谈,重构了那段加了详细变量表才接手。所以命名这东西,最好在项目启动的时候白纸黑字写进SOW里,不然交出去的东西就是个定时炸弹。

2026/06/05 23:02