子程序调用M98Oxxxx子程序号
子程序调用格式M98PXXXX XXXX前者为调用次数后者为子程序号。例;
M98P51002意思是调用子程序O1002,5次。
M99返回主程序M99不必在单独程序段内指令,例;X100Z100M99;
你所说的程序为:
T0200M09用2号刀
M04S500
G00X52Z30假设棒料直径为50mm,前段长为25mm
G01X-1F015
G0X52
M98P5 1001调用子程序5次
G00X100Z20
M05M09
M30
O1001子程序
G00W-30
G01X-1F015
G00X52
M99
在c/c++中,没有子程序的说法,而叫做函数。函数可以有返回值,不需要时,可定义为void类型。
函数的使用与子程序的用法相同,没有什么特殊之处。例如
int
max(int
a,
int
b)
{
/
返回a和b的最大值
/
return
(a
>
b)
a
:
b;
}
int
a
=
5,b
=
8,c
=
3;
printf("a,b,c中的最大值是
:
%d\n",max(max(a,b),c);
1子程序的定义
在编制加工程序中有时会遇到一组程序段在-个程序中多次出现或者在几个程序中都要使用它。这个典型的加工程序可以做成固定程序并单独加以命名这组程序段就称为子程序。
2使用子程序的目的和作用
使用子程序可以减少不必要的编程重复从而达到减化编程的目的。主程序可以调用子程序一个子程序也可以调用下一级的子程序。子程序必须在主程序结束指令后建立其作用相当于一个固定循环。
3子程序的调用
在主程序中调用子程序的指令是一个程序段其格式随具体的数控系统而定FANUC-6T
系统子程序调用格式为
M98 P--L--
式中 M98--子程序调用字
p--子程序号
L--子程序重复调用次数。
由此可见子程序由程序调用字、子程序号和调用次数组成。
4子程序的返回
子程序返回主程序用指令M99它表示子程序运行结束请返回到主程序。
5子程序的嵌套
子程序调用下一级子程序称为嵌套。上一级子程序与下一级于程序的关系与主程序与第一层子程序的关系相同。子程序可以嵌套多少层由具体的数控系统决定在FANUC-6T系统中只能有两次嵌套。
中断是硬件入口的无须主程序调用,不同的单片机入口地址不同但地址固定,应该在头文件有定义。发生中断时硬件把当前地址入栈然后跳到中断地址去那里通常只是跳转指令,c编译时会把它指向中断子程序。返回时会返回到中断处继续执行。
个人感觉你说的第二种比较好,比较可靠。(如果你用第一种情况,电脑死机了怎么办??我们单位的电脑装上后反映就比较迟钝)
还有NETR是通过指定端口从网络读取信息(最多16个字节){结合你的情况就是从PC向PLC读取信息}
还有NETW是通过指定端口向网络写信息(最多16个字节){结合你的情况就是从PLC向PC发送信息}
具体方法:
选择菜单命令工具(T) > 指令向导叄�缓笱≡NETR/NETW;
1 指定您需要的网络 *** 作数目
2 指定端口号和子程序名称
3 指定网络 *** 作
4 分配 V 存储区
5 生成代码
为了便于进行连接在网络中的 PLC 之间的数据交换,S7-200支持网络读(NETR)和网络写(NETW)指令。NETR 指令从远程 PLC中的指定地址读取配置好的一定数量的数据。NETW 指令向远程PLC中的指定地址写入配置好的一定数量的数据。NETR
和 NETW 指令 *** 作由数据表中的前七个字节控制。表中的一个数值是读取/写入数据长度,可以规定 1 至 16 个字节。因此数据表最大可达 23 个字节。
注释:在使用 HSC 向导之前,程序必须被编译,且处于符号编址模式。如果您尚未编译程序,向导在 HSC 配置过程开始时会提示您编译程序。
向导将向您询问初始化选项,然后为指定配置生成程序代码和数据块代码。从第一个屏幕选择NETR/NETW后,向导向您询问下列信息:
步骤 1 指定您需要的网络 *** 作数目
注释:如果项目包含使用 STEP 7 Micro/WIN 32 版建立的现有 NETR/ NETW 配置,您必须在继续执行步骤 1 之前选择编辑其中一个现有配置或建立一个新配置。
可使用 NETR/NETW 指令向导,简化网络 *** 作配置。向导将向您询问初始化选项,并根据您的选择生成完整的配置。向导允许您配置多达 24 项独立的网络 *** 作,并生成代码协调这些 *** 作。
步骤 2 指定端口号和子程序名称
注释:项目可能已经包含一个 NETR/NETW 向导配置。所有以前建立的配置均被自动载入向导。向导会提示您完成以下两个步骤之一:
选择编辑现有配置,方法是点击“下一步>”。
选择从项目中删除现有配置,方法是选择“删除”复选框,并点击“完成”。
如果不存在以前的配置,向导会询问以下信息:
1 PLC 必须被设为 PPI 主站模式才能进行通信。您要指定通信将通过哪一个 PLC 端口进行。
2 向导建立一个用于执行具体网络 *** 作的参数化子程序。向导还为子程序指定一个默认名称。您可以编辑默认名称。
步骤 3 指定网络 *** 作
对于每项网络 *** 作,您需要提供下列信息:
1 指定 *** 作是 NETR 还是 NETW。
2 指定从远程 PLC(NETR)读取的数据字节数或向远程 PLC(NETW)写入的数据字节数。
3 指定您希望用于通信的远程 PLC 网络地址。
4 如果您在配置NETR,指定以下内容:
- 数据存储在本地 PLC 中的位置。有效 *** 作数:VB、IB、QB、MB、LB。
- 从远程 PLC 读取数据的位置。有效 *** 作数:VB、IB、QB、MB、LB。
5 如果您在配置 NETW,指定以下内容:
- 数据存储在本地 PLC 中的位置。有效 *** 作数:VB、IB、QB、MB、LB。
- 向远程 PLC 写入数据的位置。有效 *** 作数:VB、IB、QB、MB、LB。
步骤 4 分配 V 存储区
对于您配置的每一项网络 *** 作,要求有 12 个字节的 V 存储区。您指定可放置配置的 V 存储区起始地址。向导会自动为您建议一个地址,但您可以编辑该地址。请注意,如果您使用重叠地址,向导在显示一则警告后,允许您进入下一步。
注释: 在 NETR *** 作中,请确认将用于存储数据的变量地址没有与分配给向导配置的存储区地址重叠。
步骤 5 生成程序代码
回答这些询问后,点击“完成”,S7-200 指令向导将为您指定的网络 *** 作生成代码。由向导建立的子程序成为项目的一部分。要在程序中使能网络通信,需要在主程序块中调用执行子程序(NET_EXE)。每次扫描周期时,使用 SM00 调用该子程序。这样会启动配置网络 *** 作执行。为每项网络 *** 作建立的数据处理子程序会在适当时间被自动调用。
以上就是关于数控车床主程序和子程序是怎么调用的例如我想加工一个工件然后再把它切断后,再做一个怎么调用子程序全部的内容,包括:数控车床主程序和子程序是怎么调用的例如我想加工一个工件然后再把它切断后,再做一个怎么调用子程序、C语言中如何调用子程序、数控车床子程序调用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)