CALL在接通的时候作用,跳过CALL P1后面的主程序,先执行P1子程序,然后返回执行CALL后面的主程序。P1作为指针存在的。如果CALL没有接通,则不执行CALL,而直接执行主程序。CALL程序可以嵌套,看第二个图。子程序可以调用另一个子程序。如图所示:
扩展资料:
1、能够设置不同类型产品的工位数量及位置参数,并能够在线监控运行过程;
2、设备 *** 作灵活方便,能够实现启动与暂停,自动与手动模式切换,计数与清零,气缸下压时间调整等;
3、螺丝的自动排放,送料,固定,由机器一次性自动完成,不需人工辅助;
4、高速的生产节拍,可实现单工位速度不低于 1-1.5 件/秒。定位精度高,位置误差不大于 0.02 毫米。
参考资料来源:百度棚扒橘百科-三菱FX2NPLC指令应用链团此腊详解
类属子程序即子程序为类属单元。下面通过一个 Swap 的例子来讲解:000 -- filename:Swap.adb
001 with Ada.Integer_Text_IOuse Ada.Integer_Text_IO
002 procedure Swap is
003 generic
004type Element_Type is private
005procedure Generic_Swap(Left, Right : in out Element_Type)
006procedure Generic_Swap(Left,Right:in out Element_Type) is
007Temporary : Element_Type
008begin
009Temporary := Left
010Left := Right
012Right := Temporary
013end Generic_Swap
014 procedure Swap is new Generic_Swap(Integer)
015A, B : Integer
016 begin
017A := 5
018B := 7
019Swap(A, B)
020 end Swap
[003]-[004] 声明一个类属数据类型 Element_Type,[005]声明一个类属子程序 Generic_Swap,它的参数是类属类型(generic type),[006]-[013] 是 Generic_Swap 函数的具体实现。但这些还不够,Element_Type 并不是什么整型、浮点型等具体数据类型,只是抽象意义上的类属类型,为形式参数。因此还需要[014] 创建实际的子程序 Swap,这里的 Integer就是一亩则个实际参数,表示 Swap 能接受 Integer 类型的参数,这个步骤称之为实例化。当然为了可以交换浮点等其它数据类迅弊棚型,也可以再添加:
procedure Swap is new Generic_Swap(Float)
procedure Long_Swap is new Generic_Swap(Elementary =>Long_Integer)
...
基于类属子程序的实际程序的数目从理论上讲没有限制。重名的子程序在使用时由编译器自动区分。从这个例子,大家应该明白了类属单元的好处--实际应卜扮用中省了很多重复的工作。
给你举个铣床的例子吧比如你要一个平面上打四个孔(这个比较好写,反正都是一个意思)
你建立主程序
O0001
G54.....(中间的我芹槐就不写了)
到达坐标点以后改调用子程序
M98 P0002(0002是随便设立的子程序程序名)
接着嫌激友输入另一坐标点
M98 P0002
....(铅尺一个四个)
M30(结束)
然后建立O0002这个子程序
G90 G01Z-100F100(下刀)
G0Z10(安全平面)
M99(子程序结束必须输入M99来返回到主程序里面)
程序中出现M98 机床会自动跳到M98后所输入的程序中进行执行,遇M99跳回。
M98PX 0002 X是次数 如果只调一次就不要写
大概就这意思吧
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)