A. 西门子数控系统 子程序怎么调用
【子程序命名规则】西门子数控系统子程序命名方式有两种:一种是以连续两个字母开头,后续字符可以字母、数字或下划线(不包括分隔符),最多16个字符,例如,SS08_12;另一种是以地址符L开头,后接数字组成,例如,L8。
【子程序调用示例】
主程序:
SS2017 (主程序名)
T1
M6
……
L8(或者SS08_12) (调用子程序L8)
……
M30
子程序:
L8(或者SS08_12)
……
RET
【多次调用子程序的方法】
程序语句格式为子程序名后接字母P和调用次数,例如,L8 P5 (调用子程序L8五次)。子程序调用次数最多为9999次。
B. 如何循环中调用子程序
子程序里面的i=i+1放错位置了
这样既可
sub
子程序()
while
n=n
i
=
i
+
1
if
i
=
10
then
call
子程序1()
elseif
i
=
40
then
call
子程序2()
elseif
i
=
60
then
call
子程序3()
i=0
end
if
endwhile
end
sub
C. C语言中如何调用子程序
例:
#include<stdio.h>
intsushu(intx)
{inti;
for(i=2;i<x;i++)
if(x%i==0)break;
if(i==x)return1;
elsereturn0;
}
main()
{inti,n=0;
for(i=2;i<=1000;i++)
if(sushu(i)==1)n++:
printf("n=%d",n);
}
(3)如何写入调用子程序扩展阅读
使用vfork()新建子进程,然后调用exec函数族
#include<unistd.h>
main()
{
char*argv[]={“ls”,”-al”,”/etc/passwd”,(char*)};
if(vfork()==0)
{
execv(“/bin/ls”,argv);
}else{
printf(“Thisistheparentprocess ”);
}
}
D. 怎么在一个程序里调用子程序
其实你只要把你想加入的那个程序include进来就ok了。
比如你现在是程序1.c,但是想用程序2.c里的东东(当做子函数);
那么在1.c的程序开头加上:#include
“2.c”
E. 西门子PLC如何在主程序,写入调用子程序的命令
个人感觉你说的第二种比较好,比较可靠。(如果你用第一种情况,电脑死机了怎么办??我们单位的电脑装上后反映就比较迟钝)x0dx0ax0dx0a还有NETR是通过指定端口从网络读取信息(最多16个字节){结合你的情况就是从PC向PLC读取信息}x0dx0ax0dx0a还有NETW是通过指定端口向网络写信息(最多16个字节){结合你的情况就是从PLC向PC发送信息}x0dx0ax0dx0a具体方法:x0dx0a选择菜单命令工具(T)>指令向导_?缓笱≡?NETR/NETW;x0dx0a1指定您需要的网络操作数目x0dx0a2指定端口号和子程序名称x0dx0a3指定网络操作x0dx0a4分配V存储区x0dx0a5生成代码x0dx0a为了便于进行连接在网络中的PLC之间的数据交换,S7-200支持网络读(NETR)和网络写(NETW)指令。NETR指令从远程PLC中的指定地址读取配置好的一定数量的数据。NETW指令向远程PLC中的指定地址写入配置好的一定数量的数据。NETRx0dx0a和NETW指令操作由数据表中的前七个字节控制。表中的一个数值是读取/写入数据长度,可以规定1至16个字节。因此数据表最大可达23个字节。x0dx0ax0dx0a注释:在使用HSC向导之前,程序必须被编译,且处于符号编址模式。如果您尚未编译程序,向导在HSC配置过程开始时会提示您编译程序。x0dx0a向导将向您询问初始化选项,然后为指定配置生成程序代码和数据块代码。从第一个屏幕选择NETR/NETW后,向导向您询问下列信息:x0dx0ax0dx0a步骤1指定您需要的网络操作数目x0dx0ax0dx0a注释:如果项目包含使用STEP7Micro/WIN3.2版建立的现有NETR/NETW配置,您必须在继续执行步骤1之前选择编辑其中一个现有配置或建立一个新配置。x0dx0ax0dx0a可使用NETR/NETW指令向导,简化网络操作配置。向导将向您询问初始化选项,并根据您的选择生成完整的配置。向导允许您配置多达24项独立的网络操作,并生成代码协调这些操作。x0dx0ax0dx0a步骤2指定端口号和子程序名称x0dx0ax0dx0a注释:项目可能已经包含一个NETR/NETW向导配置。所有以前建立的配置均被自动载入向导。向导会提示您完成以下两个步骤之一:x0dx0ax0dx0a?选择编辑现有配置,方法是点击“下一步>”。x0dx0ax0dx0a?选择从项目中删除现有配置,方法是选择“删除”复选框,并点击“完成”。x0dx0ax0dx0a如果不存在以前的配置,向导会询问以下信息:x0dx0ax0dx0a1.PLC必须被设为PPI主站模式才能进行通信。您要指定通信将通过哪一个PLC端口进行。x0dx0ax0dx0a2.向导建立一个用于执行具体网络操作的参数化子程序。向导还为子程序指定一个默认名称。您可以编辑默认名称。x0dx0ax0dx0a步骤3指定网络操作x0dx0ax0dx0a对于每项网络操作,您需要提供下列信息:x0dx0ax0dx0a1.指定操作是NETR还是NETW。x0dx0ax0dx0a2.指定从远程PLC(NETR)读取的数据字节数或向远程PLC(NETW)写入的数据字节数。x0dx0ax0dx0a3.指定您希望用于通信的远程PLC网络地址。x0dx0ax0dx0a4.如果您在配置NETR,指定以下内容:x0dx0ax0dx0a-数据存储在本地PLC中的位置。有效操作数:VB、IB、QB、MB、LB。x0dx0a-从远程PLC读取数据的位置。有效操作数:VB、IB、QB、MB、LB。x0dx0ax0dx0a5.如果您在配置NETW,指定以下内容:x0dx0ax0dx0a-数据存储在本地PLC中的位置。有效操作数:VB、IB、QB、MB、LB。x0dx0ax0dx0a-向远程PLC写入数据的位置。有效操作数:VB、IB、QB、MB、LB。x0dx0ax0dx0a步骤4分配V存储区x0dx0ax0dx0a对于您配置的每一项网络操作,要求有12个字节的V存储区。您指定可放置配置的V存储区起始地址。向导会自动为您建议一个地址,但您可以编辑该地址。请注意,如果您使用重叠地址,向导在显示一则警告后,允许您进入下一步。x0dx0ax0dx0a注释:在NETR操作中,请确认将用于存储数据的变量地址没有与分配给向导配置的存储区地址重叠。x0dx0ax0dx0a步骤5生成程序代码x0dx0ax0dx0a回答这些询问后,点击“完成”,S7-200指令向导将为您指定的网络操作生成代码。由向导建立的子程序成为项目的一部分。要在程序中使能网络通信,需要在主程序块中调用执行子程序(NET_EXE)。每次扫描周期时,使用SM0.0调用该子程序。这样会启动配置网络操作执行。为每项网络操作建立的数据处理子程序会在适当时间被自动调用。
F. 主程序调用子程序编程指令是什么
主程序调用子程序编程指令是:右击——插入——OB,然后填上OB100,OB由系统调用,并非由用户调用。
一般会有输入参数并有返回值,提供对过程的封装和细节的隐藏。这些代码通常被集成为软件库。函数在面向过程的语言中已经出现。是结构和类的前身。本身就是对具有相关性语句的归类和对某过程的抽象。
转子指令和返回指令:
在子程序的调用与返回过程中,子程序的入口地址是指子程序第一条指令的地址。用于调用子程序、控制程序的执行从主程序转向子程序的指令称为专注指令(子程序调用指令、过程调用指令)。为了正确调用子程序,必须在转子指令中给出子程序的入口地址。
主程序中转子指令的下一条指令的地址称为断点,断点是子程序返回主程序的返回地址,从子程序返回主程序的指令称为返回指令。为了在执行返回指令时能够正确地返回主程序,转子指令应具有保护断点的功能。
执行转子指令时保护断点的方式有多种,常用的有:将断点保存到子程序第一条指令的前一个字单元;将断点保存到某一约定的寄存器中;将断点压入堆栈。
G. 怎么调用子程序
子程序调用代码为
G65为可带参数调用子程序
G66为子程序调用循环,必须由G67代码结束循环
M98为普通子程序调用
子程序名称由字母O指定,子程序末必须加结束码
宏维系统子程序结束码为M17,子程序写在主程序结码后面
宝元系统子程序结束码为M99,子程序单独写,保存在主程序同一个文件夹
~
H. C语言中如何调用子程序
在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);
I. 单片机中如何调用写好的子程序
得看是什么语言
c语言中
void zichengxu(); //主程序前先声明子程序
void main() //主程序
{
zichengxu();
}
void zichengxu() //子程序
{
}
如子程序主体在主程序前 可不声明子程序 直接在主程序中调用子程序