前言:
眼前姐妹们对“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系列编程手册