教你如何写参数化程序_参数化设计程序
教你如何写参数化程序由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“参数化设计程序”。
教你如何写参数化程序
由于我对siemens840D比较熟悉,所以以下说讲的一切都是在siemnes840D系统上测试过的,是经过实践检验的编制,可靠性应该是很好的。
先让我来给大家介绍一下参数化的几种形式:
1)用DEF命令,在MPF或者SPF程序中制定变量,以达到调用的目的;
2)通过siemens自带的1000个R参数进行参数的编制;
3)直接调用siemens系统变量,进行参数化程序编制。
大概也就这几种常见的形式了。我一个个给初学者进行讲解:
1)用DEF命令,在MPF或者SPF程序中制定变量,以达到调用的目的。
这是一种很灵活的参数化编制形式。
请看一下例子:
==========
MPF:
DEFINE Z_MAX AS G0 G90 G40 G17 SUPA Z850 D0 SPOS=0
DEF REAL DiaMAX=50,DiaMIN=45.8,CAO_KUAN=5
EXTERN XICAO_1(REAL,REAL,REAL)
$P_UIFR[1]=CTRANS(X,Y,Z,B,);G54 B=?
;$P_UIFR[2]=CTRANS(X,Y,Z,B,);G55 B=??
;$P_UIFR[3]=CTRANS(X,Y,Z,B,);G56 B=???
...N320 CS_TOOL(“”,1);XI CAO B#
CS_TP(“”,1)
G56 G90 G17 G40
MIRROR X0
R90=85.3 R91=WIDTH-110.3 R92=31.3
XICAO_1(DiaMAX,DiaMIN,CAO_KUAN);也可以写成XICAO_1
R90=235.3
XICAO_1
MIRROR
Z_MAX
...SPF:
%_N_XICAO_1_SPF
;$PATH=/_N_SPF_DIR
PROC XICAO_1(REAL DiaMAX,REAL DiaMIN,REAL CAO_KUAN)SAVE
;R90 is X Coordinate
;R91 is Y Coordinate
;R92 is Z Coordinate
;R93 is S Value
;R94 is OutSide F Value
;R95 is InSide F Value
;DEF REAL DiaMAX,DiaMIN,CAO_KUAN
;MUST SET D1,D2,D3
S=R93 M03
G01 X=R90 Y=R91 F=R94
M08
R40=DiaMAX R41=DiaMIN R60=2 R61=1
R0=0 R1=R92 R3=(R92-CAO_KUAN)R5=20 R6=5 R72=50
F=R95
L8000
M05
M09
STOPRE
M17
============
以上是一个我编制的挖槽程序截取。
在MPF中,在程序最开头进行了三个参数点定制:DiaMAX=50,DiaMIN=45.8,CAO_KUAN=5
并用EXTERN命令进行SPF程序XICAO_1的声明,一般情况如果词程序位于siemnes的标准循环文件夹里面,或者是MPF相同的目录下是没有必要进行EXTERN的,这是一种习惯,我习惯把SPF文件放在SUBPROGRAM文件夹里面,便于管理,所以每次在调用XICAO_1这个程序的时候必须进行程序的声明,这很重要,否则,如果你不能调用SPF文件就不要怪我了,当然,也有其他方式进行参数传递的SPF调用的,比如:PCALL等等命令,这里我就不多说了。
DEF命令是定义你需要的参数,REAL是说明参数点类型是实数型的,如果是整数型的,就是INT,这个和VB语言很相似,如果有VB程序语言基础的朋友应该很容易理解,只不过VB里面是用DIM进行变量的定义的罢了。你也可以定义STRING[50]这种字串型,还有布尔型的,我就不多说。
在MPF程序的后面将会引用这三个参数,并将这三个参数传递到SPF中去。
请大家注意SPF的编制格式,是:
PROC XICAO_1(REAL DiaMAX,REAL DiaMIN,REAL CAO_KUAN)SAVE
括号里面的参数顺序直接控制了你传递参数时填写的数字传递顺序。
比如:XICAO_1(50,48.5,5)就是按照PROC后面的那个括号里面的顺序进行传递的。
这也就是siemens的CYCLE标准循环里面的格式一样的,如果你使用过siemens的CYCLE循环,那么在定义参数的时候,你的定义顺序必须按照说明书上的顺序来,否则,参数将会传递错误的信息,后果自负„„ SAVE可以要,也可以不要,没有关系的。SAVE的作用是在执行完SPF以后,回到MPF时,将保留原MPF中的制定格式,怎么理解呢?简单的距离就是:当你的SPF中时G91编程的,而MPF中是G90编程的,那么加上SVAE以后,在M17执行完后,回到MPF以后,保留G90的形式进行下面的工作,否则就是按照SPF中的G91进行执行,也许就会出错。
用个在siemens的CYCLE里面在SAVE后面添加了一个DISPLOF参数的,用这个参数可以“拟制”SPF中的每一段程序的显示,当然也可以用SBLOF来单块拟制。
不过,通常没有必要拟制程序的显示,因为不便于程序的检查,什么叫拟制呢?简单的说就是在运行SPF时,加上DISPLOF后,以下的程序段,一直到M17结束,在AUTO界面教你嘎时,你无法看见这些程序段的执行过程。
编制格式为:
PROC XICAO_1(REAL DiaMAX,REAL DiaMIN,REAL CAO_KUAN)SAVE DISPLOF
大概这种形式的参数化程序就是这样子的了。当然,这方面还有其他的一些编制参数,不过一般的朋友没有必要要,我讲的应该可以满足一般的要求了。
值得一提的是MACROS的编制。
格式为:DEFINE...AS........在我的前面程序例子前面已经提到了,就是:DEFINE Z_MAX AS G0 G90 G40 G17 SUPA Z850 D0 SPOS=0 在MPF以前定义这个以后,在整个MPF中的任何位置都可以调用这个“宏”,DEFINE Z_MAX AS G0 G90 G40 G17 SUPA Z850 D0 SPOS=0的作用就是用G0,取消所有坐标(采用机床原点坐标),取笑刀具几何补偿,C轴转到O°以后,回到Z=850的位置。
这个很简单,你也可以进行“全局MARCO”的编制,有点象VB程序语言中的“定义全局变量”的功效,往UMAC文件中添加就行了。不熟悉的朋友就不用管这个了。
2)通过siemens自带的1000个R参数进行参数的编制;
请参考前面的程序例子,值得提示的是,请确定是否你的设备供应商已经占用了一些R参数,如果有设备制造商占用了一些R参数,最好不要使用
这些R参数,选取其他R参数就可以了。
其实,R参数的用法和用DEF定义的变量用法是一样的,重要的区别是R参数不用定义,可以直接在程序中任何位置进行调用就可以了。而且不受SPF,MPF的控制,任何程序都可以直接调用。
不过,最好在使用R参数的时候,进行一些约定俗成,以便以后不会因为人员的变动造成参数含义的错乱,那时候就非常麻烦了!!
其他关于R参数的就没有讲的。
3)直接调用siemens系统变量,进行参数化程序编制。
最简单的引用就是前面治理中的$P_UIFR[1]=CTRANS(X,Y,Z,B,);G54 B=?
其中$P_UIFR[1]就是系统的变量中的“框架数据”,这和在“参数”里面的“坐标设置”是一样的功效,只是“坐标设置”中不能设定B罢了„„
这种格式也是可以直接进行坐标的变换的,比如:
$P_UIFR[1]=CTRANS(X,Y,Z,B,):CROT(Z,180)
具体情况就不多说了„„
接下来说说系统变量中常见的一些变量。
$P_Txxx,这个变量的作用是激活主轴上的刀具数据;
$P_TOOL,是激活刀边补偿,D1,D2,D3,D4...;
$P_TOOLL[1],激活整个刀具的几何补偿,通常是指的刀具的悬长,G17-Z,G18-Y,G19-X;
$P_TOOLL[2],激活整个刀具的几何补偿,通常是指的刀具的悬长,G17-Y,G18-X,G19-Z;
$P_TOOLL[3],激活整个刀具的几何补偿,通常是指的刀具的悬长,G17-X,G18-Z,G19-Y;
$P_TOOLNO,激活siemens内部的刀号,T1,T2,T3,T32000;
$_P_TOOLR,激活刀具半径补偿;
$P_SEARCH,搜索变量,值为TRUE=1或者0;
以上参数仅做参考,也许会因为设备制造商的不同有所小区别。
以上这些参数都是可以在程序编制中直接编制的。
大概参数化编程就讲完,还有很多东西没有来得及讲,希望感兴趣一起研究之„„
==========
至于还有朋友提高的IF...ELSE...ENDIF的条件语句结构,这好像不是属于参数化编程的一部分吧。严格上来讲应该属于“柔性编程”的一部分更贴近些。
写个程序,给感兴趣的朋友,一个简单程序。你可以直接做成MPF,进行调用,看看结果就晓得是怎么回事情了。
条件:某工厂是中午12:00下班,晚上18:30下班。程序功能,在MDA中运行,显示时间,提示操作者是否到了下班时间。
=====
%_N_SHOWTIME_MDF
;$PATH=/_N_MPF_DIR
DEF INT SHI,FEN
SHI=$A_HOUR
FEN=$A_MINUTE
IF(SHI=11)AND(FEN>=50)
MSG(“TIME IS : ”
M0
M2
ELSE
IF(SHI=18)AND(FEN>=20)
MSG(“TIME IS : ”
M0
M2
ELSE
MSG(“TIME IS : ”
M0
M2
ENDIF
ENDIF
=====
这就是简单的条件语句的程序,拷贝一下,去试试会出现什么情况呢?呵呵„„
当然siemens840D里面不仅仅是这么一点点,还有LOOP、WHILE,REPEAT,GOTOF,GOTOB这种条件语句,时间关系,不写下去了,感兴趣的朋友,我们可以继续讨论。
UFT迭代方法之参数化录制脚本对象:HP自带飞机订票系统目标:使用参数化(DataTable)实现UFT的迭代,登录-订票1-退出-登录-订票2-退出...也就是说,对整个流程做迭代 步骤:首先,我们要录......
教你读懂手机各种参数 让你轻松成为手机达人手机系统买手机时根据自己的预算确定好选择区间之后就可以考虑买什么系统的手机了,不同系统的手机体验完全不同。目前市面上主流......
#includeusing namespace std;cla Box{public:Box(int,int,int);//声明带参数的构造函数(参见之前的与BOX同名函数修改数值为某个固定数)int volume();private:int height;int......
如何创建和参数化UDT数据类型中的变量及IN,OUT,IN_OUT参数 从数据类型的意义上说UDT并不被CPU所识别,而是在离线程序中自定义(组合)的数据类型。S7程序的自定义数据类型并不能装......
如何对Loadrunner脚本进行参数化在录制程序运行的过程中,脚本生成器自动生成由函数组成的用户脚本。函数中参数的值就是在录制过程中输入的实际值。参数化是编辑脚本最重要的......
