发那科数控系统P code变量简介及传输方式P-Code变量简介及传输方式3EJING-FANUC技术部P CODE VARIABLENODATANODATA1的101010000 11a111的21的121的31131的14100051四151a0D61161边边D1171a@的810181091019NUM0MDI*水米水水米米米米米16:25:52NO-SEL在这个画面中,可以搜索指定变量号的P-Code变量、可以修改,但是不能通过存储卡或者其他方式直接导出。如果需要批量传出P-Code变量,可以使用宏执行器功能,也可以使用 FOCAS1/2函数通过以太网或者HSSB接口对P-Code变量进行读写操作和用户宏程序变量一样,P-Code变量也分为局部变量、公共变量等,同样也有保持型和非保持型。不同系统可用的变量号码不同,以0i/16i/18i/21i为例,P-COde变量列表如下#1#33局部变量#1#99矩阵形式变量(辅助宏程序、对话宏程序)#100#149保持型公共变量#500#531保持型公共变量#10000#19999P-COde变量#20000-#89999P-Code变量扩展注:大约每100个 P-Code变量会占用1.63m(约0.652KB)的程序存储空间。lIWEIOBEIJING-FANUC第3页Jan12,2007P-Code变量简介及传输方式3EJING-FANUC技术部附录: P-Code变量进行读写操作相关内容简单说明。1.通过宏执行器功能G330Pp凵:存储卡接口打开。P指定打开方式(读或写),L通过变量指定文件名G331存储卡接口关闭。G337 Pp Qq r99变量导入。P指定变量号,Q指定变量个数,R99表示连续读入G338PpQq所 fe Zz rr变量导出。P指定变量号,Q指定变量个数,F指定导出变量格式(f表示总位数,e表示小数位数),z指定是否显示数值最前的O占位,R指定输出数据格式程序例#12000=80P#12001=95#12002=67#12003=79#12004=68D#12005=69E#12006=46#12007=84T#12008=88#12009=84#12010=32space#12011=32SpaceG330P24L12000G338P10000Q10F10.3z1RoG331以上程序段,可将P-Code变量#10000~#10009导出到存储卡,存储卡文件名为 P CODE.TXT关于宏执行器功能控制存储卡接口的详细内容,请参考《 Series0i/16/1820/21 Macro Compiler/ Macro Executor Programming Manua》,书号是61803E-1。lIWEIOBEIJING-FANUC第4页Jan12,2007P-Code变量简介及传输方式3EJING-FANUC技术部2.通过以太网或者HSSB接口,使用 FOCAS1/2函数主要使用 cnc rdpmacro(P-Code变量读)以及 cnc wrpmacro(P-Code变量写)两个函数,具体定义和声明方法如下(VB6.0sp6EnDeclare Function cnc_rdpmacro Lib fwlib32 dll"(ByVal FlibHnd asInteger, By Val a As Long, odb As odBPM As Integer参数含义:FlibHnd[in]句柄,建立连接时获得指定 P-Code变量号Odb lout使用 ODBPM数据结构表示读出的P-Code变量数值ODBPM结构如Type ODBPMiDatano as longP-Code变量号dUmmy As integerIMcr- val As LongP-Code变量数值dEc_ val As Integer小数点位置End TypeDeclare Function cnc_ wrpmacro Lib "fwlib32dll"(By Val FlibHndI AsInteger, By Val a As Long ByVal b As Long by Val c As Integer)AsInteger参数含义Flibhndl[in]句柄,建立连接时获得a [in]指定P-Code变量号b [in]变量数值c Lin]变量小数点位置另外,我们还可以根据需要使用 cnc_rdpmacror和 cnc wrpmacror函数进行区段读写,具体使用方法详见 FOCAS1/2函数库的使用说明IIWEIOBEIJING-FANUC第5页Jan12,2007