龙空技术网

840D高级编程个人笔记

云水8888禅心 593

前言:

眼前姐妹们对“fp系列编程手册”可能比较关怀,姐妹们都需要知道一些“fp系列编程手册”的相关内容。那么小编也在网摘上搜集了一些对于“fp系列编程手册””的相关知识,希望同学们能喜欢,我们一起来了解一下吧!

目录

一、变量(R参数、系统参数 和自定义参数)... 2

1.1R参数... 2

1.2系统参数(见书1-28)... 2

1.3自定义变量... 2

二、带参数子程序的调用... 2

三、数据的保护... 3

3.1权限级别... 3

3.2R参数的修改权限设置... 3

3.3GUD参数的权限设置... 3

3.4程序的权限设置... 3

3.5另外若想实现对于某些参数设置成可以修改但是按RESET键后恢复... 3

四、字符串的应用... 4

4.1MSG指令是个模态指令,可以用MSG()停止或下一个MSG取代... 4

4.2字符串的定义必须用””,且必须给定字符长度... 4

4.3字符串指令(见资料 1-44)... 4

4.4其它类型的变量和字符串变量的转换(见资料 1-55)... 4

4.5另外介绍了运算的优先级,见资料:... 5

五、程序的调用... 5

5.1一般来说是将硬盘的程序加载到NC,再调用,若直接从硬盘里调用程序,用EXTCALL指令... 5

5.2若有多种产品混线,可建立各自的job-list文件... 5

六、文件的读写... 5

6.1写文件... 5

6.2读文件... 6

6.3判断文件是否存在... 6

七、同步动作... 6

7.1ID号... 6

7.2动作频率指令... 6

7.3动作条件... 6

7.4同步动作... 6

7.5例子... 6

八、异步子程序... 7

九、双通道... 7

9.1双通道的配置顺序... 7

9.2双通道的编程... 8

十、特殊的运动指令... 8

10.1回到固定位置... 8

10.2多项式轨迹编程... 8

一、变量(R参数、系统参数 和自定义参数)1.1R参数

①R参数都是Real型,可以直接使用,不用定义

②缺省R0~R99,若修改R参数的个数,修改机床参数MD28050

机床参数,页面进入Startup—Machine Data

General MD: 10000 通用数据,对整个机床生效

Channel MD: 20000 只对本通道生效

Axis MD: 30000 只对某轴生效

修改机床参数的生效方式,可见参数对应的属性:

PO—需断电后生效

Re—需按复位键后生效

Im—立即生效

Cf—按面板上的“Set MD to active”激活生效

注意:修改PO类机床参数,需要备份后断电,重启后回装数据,否则会出现数据丢失的情况。

1.2系统参数(见书1-28)

①命名规则:

首字母含义$M(机床)、$S(设置)、$T(刀具)、$P(程序)、$A(当前)、$V(Service)

第二个字母含义:N(全局)、C(通道)、A(轴)

②常用常见的系统变量:

当前X轴坐标值:$AA_IM[X]

G0的最大速度:MAX_AX_VELO[X] (编号为32000)

在机床上可以用Help查询任意变量的含义

1.3自定义变量

①LUD局变量,在主程序里定义,但子程序不能使用此变量

②PUD程序变量,在主程序里定义后子程序可以直接使用

将LUD变成PUD,将MD11120 LUD_EXTENDED_SODE设为1即可

③GUD全局变量

定义:页面进service—Data selection—Definition—New—Data type选择GUD

整套系统只有1个GUD文件,所有全局变量都在这1个文件里定义

格式:DEF NCK +TYPE +NAME 如 DEF NCK INT _Dia 定义了1个名为_Dia的整型的全局变量,取名用下划线是为了避免和系统固有的名冲突

修改:需Unload后修改,修改后按Activate激活

查看:在USER DATA界面可以查看现有的所有变量

注意:GUD参数虽然可以方便所有程序直接调用,但其占用内存,不是定义的越多越好

二、带参数子程序的调用

若主、子程序共用变量,但变量不设为R参数、LUD、GUD,可以这样编程:

格式:

在子程序开头中声明

PROC 子程序名 (变量类型 变量名,第2个变量类型 第2个变量名,……)SAVE SBLOF DISPLOF

SBLOF 可选用,设置后单步运行主程序时子程序作为一整段跳过

DISPLOF 可选用,设置后运行主程序时不会显示子程序的具体内容

在主程序开头声明

EXTERN 子程序名(变量类型,第2个变量类型,……)

在主程序中调用子程序时

子程序名(第1个变量值,第2个变量值)

说明:若将此类子程序放在CYCLE目录里中,主程序则不要EXTERN声明(放到CYCLE目录后需重启生效),目前使用的各种CYCLE程序就是这样

例子

可以用上述所讲的各种变量定义方式编程走出老师所要求的轨迹

三、数据的保护3.1权限级别

0 系统级 密码不知

1 制造商级 密码SUNRISE

2 服务级 密码EVENING

3 用户级 密码CUSTOMER

4 红钥匙

5 绿钥匙

6 黑钥匙

7 不需密码

3.2R参数的修改权限设置

修改机床参数9222 USER_ClASS_WRITE_RPA 对应的值0~7

如设置成2,只能再输入EVENNING密码或者更高级密码后才能修改R参数

此修改权限只限于HMI,所有R参数都可以通过程序负值

3.3GUD参数的权限设置

在定义文件里说明,如在GUD文件中写下:

APW 1 APR 3

表示此句话以下所有定义的GUD参数在HMI修改的权限是1,可读的权限是3

3.4程序的权限设置

页面进入service-properties设置

3.5另外若想实现对于某些参数设置成可以修改但是按RESET键后恢复

可以在定义参数时加上REDEF指令,如

DEF NCK INT _NUMBER=123

REDEF _NUMBER INTRE

将INTRE改成 可设置成断电后生效(需要在资料里查,暂时没找到)

四、字符串的应用4.1MSG指令是个模态指令,可以用MSG()停止或下一个MSG取代

如MSG(”HAPPY NEW YEAR”)

G4F5

MSG ()

4.2字符串的定义必须用””,且必须给定字符长度

DEF STRING [20]_AAA=”GOOD MORNING”

MSG(_AAA)显示的是GOOD MORNING

MSG(“_AAA”)显示的是_AAA

4.3字符串指令(见资料 1-44)

DEF STRING [20]_BBB=”G0 X200”

MSG (_BBB)

EXECSTRING (_BBB)

4.4其它类型的变量和字符串变量的转换(见资料 1-55)

例1

DEF INT _CCC=12345

MSG(_CCC)错误

MSG(<<_CCC)显示12345

例2

DEF STRING [10] _DDD=”12345”

G0 X=_DDD错误

G0 X=NUMBER(_DDD)X轴走到12345

例3

MSG (“R0 IS”<<R0)

MSG (“NOW X AXIS POSITION IS”<<$AA_IM[X]<<”mm”)

例4

MSG(TOUPPER(“good morning”))转换成大写,TOLOWER转换成小写

MSG(<<STRLEN(“12345”))统计字符串的个数

例5

MSG(<<INDEX(“1234567”,”3”)) 从左边开始找3,其在整个字符串中排在2位(从0计数)

MSG(<<RINDEX(“1234567”,”3”)) 从右边开始找3,其在整个字符串中排在2位(仍旧从左边计数)

例6

MSG(<<SUBSTRING(“heet”,2))删除第2位及以后的字符,显示he

MSG(<<SUBSTRING(“123456789”,3,4))删除第3位以后的字符,整体保留4个字符,显示1289

例7

DEF STRING [40] MESSAGE=”TODAY IS SUNDAY”

MESSAGE[6]=W把第六个字符换成W

4.5另外介绍了运算的优先级,见资料:

1-46页算数运算

1-48页比较运算

1-51页逻辑运算

1-52页按位的逻辑运算

五、程序的调用5.1一般来说是将硬盘的程序加载到NC,再调用,若直接从硬盘里调用程序,用EXTCALL指令

文件在硬盘的存放地址:

WORKPIECES(WKS.DIR)、PART PROGRAMS(MPF.DIR)、SUB PROGRAMS(SPF.DIR)

STANDARD CYCLES(CST.DIR)、USERE CYCLES(CUS.DIR)、MANUFACT CYCLES(CMA.DIR)

EXTCALL(“F:\DH\MPF.DIR\OK.MPF) 调用在主程序文件夹里的OK程序

5.2若有多种产品混线,可建立各自的job-list文件

如3.8和4.5各自建立1个job-list文件:

3.8job:

LOAD\MPF.DIR\38.WPD\

SELECT\MPF.DIR\38.WPD\OP50_1.MPF

4.5job:

LOAD\MPF.DIR\45.WPD\

SELECT\MPF.DIR\45.WPD\OP50_1.MPF

切换型号时只需一键选择各自的job-list

在PLC-DP19模块里能设置更智能的换型

六、文件的读写6.1写文件

在我厂可以应用在自动记录CNC加工每台缸体探测所得值,留作修订R值、坐标系等时的数据源

在探针程序里添加如下程序段:

格式:WRITE (VAR INT ERROR,CHAR[160] FILENAME,CHAR[200] STRING)

VAR INT ERROR返回错误原因

CHAR [160] FILENAME记录数值的文件名、路径(若不写路径,是指本程序的当前目录内)CHAR [200] STRING 内容

如在3.8OP40探针程序里加入如下程序段,记录探测的R300、R301、R302值

DEF INT ERROR

WRITE (ERROR,”R VALUE FILE”,”R300=”<<R300<<$A_YEAR<<”/”<<$A_MONTH<<”/”<<$A_DAY<<”/”<<$A_HOUR<<”/”<<$A_MINUTE)

WRITE (ERROR,”LOCAL FILE”,”R301=”<<R301)

WRITE (ERROR,”LOCAL FILE”,”R302=”<<R302)

则会生成一个名为R VALUE FILE的文件,内容格式如下:

R300=0.015 13 10 26 15 20(在13年10月26日下午3点20记录R300/R301/R302)

R301=0.09

R302=0.07

R300=0.015 13 10 26 15 40(在13年10月26日下午3点40记录R300/R301/R302)

R301=0.09

R302=0.07

以上为个人举例,可以进一步改进程序记录对应的缸体号、记录该缸体是第几台

若想要每次生成文件时删掉以前的记录,可以加1句话:

DELETE (ERROR,”R VALUE FILE”)

6.2读文件

READ (VARINT ERROR,FILE NAME,INT LINE,INT NUMBER,VAR STRING[200] RESULT[])

应用在从某个已知程序里拷贝出来想用的程序段

6.3判断文件是否存在

RESULT=ISFILE(STRING[160]FILE NAME)

第六段详情见资料1-93/1-97等

七、同步动作

指令说明:指在程序中实现条件判断成立后,执行特定动作

格式:ID号+动作频率+动作条件+DO+同步动作

7.1ID号

加上ID号,表示后面同步动作指令为模态指令

7.2动作频率指令

WHEN(只做1次动作)

WHENEVER(只要条件满足,一直做该动作;当条件不满足时,走完余程)

FROM(只要条件满足,一直做该动作;不受条件变化影响)

EVERY(必须执行一次才做1次)

7.3动作条件

动作条件可以任意,下面特意讲一下NC的快速输入输出指令即NC FAST I/O

①信号是接到NC驱动总线而不是PLC,刷新速度快,与插补周期同步

②代码$A_IN[1]至$A_IN[40]、$A_OUT[1]至$A_OUT[40]

7.4同步动作

详情见10-402,有多种特殊指令

7.5例子

例1

N0 WHEN $A_IN[1]==1 DO POS[X]=IC(100)

N5 G0 G91 Y20000

再走N5程序段时不停的在判断条件

若中间$A_IN[1]=1,X轴走增量100,同时Y轴继续走完

在此例中可以将WHEN改成WHENEVER、FROM、EVERY看不同的结果

例2

DO $R1=$AA_IM[Y]

G0 Y1000

表示无条件,记录R1为当前Y坐标值,注意在R前必须加$,详情见资料10-411页

例3

ID1 WHEN $R1==123 DO POS[Y]=IC(300)

八、异步子程序

和同步动作中介绍的NC FAST I/O不同,异步子程序是PLC触发程序,例如在执行主程序中,按RESET键会触发子程序终止

外部条件 PLC程序(FC9模块) 中断号(1.2……8) NC指令SETINT 子程序

例:

在PLC中新建1个中断号为5,外部条件为I7.7

DB1 CALL “ASUP”

输入 START :=I7.7 (外部条件)

CHAN NO:=1 (通道号)

INT NO:=5 (中断号)

输出 ACTIV : =Q36.0

DONE: =Q36.1

ERROR: =Q36.2

START ERROR: =Q36.3

REF :=MW20

有1主程序段:

SEINT(5) PRIO=1 SUB1

表示在执行主程序过程中,I7.7激活,则主程序跳转到子程序SUB1,其优先级PRIO是1

九、双通道9.1双通道的配置顺序

1.将MD19200通道数改为2(缺省是1),设置后需断电重启

2,将MD10010 GROUP[1]由0改为1,此时提示断电后数据丢失,则暂不断电

3,备份,路径为SERVICE-SERIES START UP-选择备份的数据-重命名回车-ARCHIVE

4,断电重启

5,在备份页面,按READ START UP 重装刚才备份的数据

6,检查MD10010 GROUP[1]是否已经修改成功

7,在10000参数设置通道2轴的名字

8,将第2通道的MD20050设为(1,2,3,4假设1通道有4个轴),ND20700设为(5,6,7假设新增2通道有3个轴)

9,在PLC中添加使能,否则目前面板只控制第一通道;注意在FC19模块中设置IN1=DB19.DBB22

10,设置MD9034可以在面板上同时显示2个通道

9.2双通道的编程

例1

INIT(2,”QQQ”);先声明通道2里的某一程序QQQ

G91G0X200

Y200

START(2)执行QQQ程序

Z-300

M30

例2 若MD30100设置成1表示某轴同时分配给2个通道

在单通道要获得轴的控制权时,用以下指令

GETD(X1)表示强制获得X1轴控制权

GET(X1)

……

RELEASE(X1)配对使用表示先得到X1轴的控制,并在后面释放

例3双通道程序同步指令

在各自的程序段里添加标识,如:

CH1: CH2:

…. ….

WAITM(1,1,2) X=200 WAITM(1,1,2) Y=100

用相同的指令标志,先到的等待另一通道到达,并后到的也停一下后两通道同时开始

WAITC

WAITE

SETM

十、特殊的运动指令10.1回到固定位置

MD30600 FIX_POINT_POS[0]里设置具体坐标,假如设为X100Y100Z100

编程:

G75 FP=1 X300Y200Z100 ;则回到固定点 点号FP为1的X100Y100Z100,后面写的X300Y200Z100没有执行但必须写

G74 表示回参考点

10.2多项式轨迹编程

当所走曲线满足某个多项式时,用FCTDEF指令声明,SYNFCT指令执行

格式:多项式为Y=F(X)=a0+a1X+a2X平方+a3X(3次方)

FCTDEF(多项式编号,下限值,上限值,a0,a1,a2,a3)

SYNFCT(多项式编号)

详情见资料10-425例子

标签: #fp系列编程手册