FANUC 梯形图中无法添加子程序调用指令原因


子程序调用

在编写FANUC PMC程序时,设计人员习惯将同一功能放在子程序中进行编写,如常用的四轴功能、自动门功能、中心出水功能等;这样可以把单独的功能独立成一个个模块,然后在主程序中使用子程序调用指令,调用相应的子程序即可实现对应功能。

编写完成的子程序处于梯形图中第二级程序结束“END2”与程序结束“END”之间,当调用子程序功能执行时,调用对应子程序,系统扫描执行对应子程序;若调用子程序功能未执行,则忽略对应子程序,程序不会扫描,这样可以节省梯形图扫描时间,提升梯形图处理速度。

子程序以P+数字型式表示,P代表子程序,数字代表子程序号码;P001就代表1号子程序。在主程序中使用“条件调用子程序指令CALL”与“无条件调用子程序指令CALLU”,在功能指令中直接指定子程序号码,如P001,可执行相关子程序调用。

使用“无条件调用子程序指令CALLU”时,当梯形图扫描到此程序段时,会无条件跳转至对应子程序段进行扫描,将子程序段扫描完成后,再返回主程序继续扫描;

使用“条件调用子程序指令CALL”时,可为调用子程序增加调用条件,当执行条件满足时,系统才会调用子程序,否则忽略对应子程序;这样可以实现某个功能的开通与关闭。

在后续设备追加功能时,可以将追加的程序段单独写到子程序中,避免与原程序混淆。

当编辑完子程序后,需要在主程序中调用子程序,但在编写调用子程序功能时,为什么却无法添加呢?

图中无法添加调用子程序,是因为将调用子程序添加在了第一级程序内。

其实系统默认在第一级与第三级程序中是禁止使用子程序调用功能的,因为第一级程序属于快速扫描程序,第三级程序属于低速响应程序,只能在第二级程序中进行子程序的调用,所以在编写子程序调用功能时,需要填写在第二级程序内,即调用子程序需处于“END1”与“END2”之间。

发表回复

登录... 后才能评论