西门子PLC如何呼叫子程式

如题所述

第1个回答  2022-10-09

西门子PLC如何呼叫子程式

用SBR-0(可以改名字),满足条件就可以呼叫子程式,程式会自动到子程式扫描,直到完毕,然后转会呼叫处继续往下扫描,子程式中可以有条件CRET终止

西门子PLC子程式如何编写

用STEP7编写啊,STL,LAD,FBD语音随意你,用的惯就行 检视原帖>>

西门子数控子程式呼叫!

P -(子程式名)L-重复次数,另外,子程式结束用M17或者RET指令,这两个指令要求单独写个程式段,举例主程式N1T1D1Lf N2G94G90G71G00X40Z0M3S800Lf N3L11P12Lf M02Lf 子程式名L11.SPF 重复12次 ,结束加M17Lf

西门子840D中怎么实现子程式呼叫子程式

原则上讲,一个子程式的结构与一个零件程式一样。它由带执行指令和开关指令的 NC程式段组成。

西门子PLC如何在主程式,写入呼叫子程式的命令?

个人感觉你说的第二种比较好,比较可靠。(如果你用第一种情况,电脑宕机了怎么办??我们单位的电脑装上后反映就比较迟钝)
还有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 3.2 版建立的现有 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)。每次扫描周期时,使用 SM0.0 呼叫该子程式。这样会启动配置网路操作执行。为每项网路操作建立的资料处理子程式会在适当时间被自动呼叫。

西门子Plc如何设定 呼叫主程式 子程式 功能块与主程式的区别

没有呼叫主程式这一说
只有呼叫子程式或者是功能块
功能块是实现你所想要的控制而编辑的一个控制块
具有通用性
在呼叫的时候将块地址和你所要控制或者采集的资料地址写入就可以
子程式和功能块最终都是要在主程式的呼叫下起作用的
主程式相当于是一间房子
而子程式就相当于是房子中的桌子
那么功能块也类似于桌子 或者是桌子里的抽屉
这样说估计你更容易理解一点

该如何学习西门子的PLC子程式库? 如何利用西门子的子程式库来搭建自己的主程式?

子程式库,其实就是自己定义的子程式,可以当做西门子的指令一样使用。当然在库档案中使用的都是符号地址,不能出现实际的V地址。举个例子来说:西门子中有没有求模的指令?
我曾经做了一个单字资料求模的指令,现写在这里大家共享下,子程式名定义为MOD_I,具体STL程式如下(注意都是符号地址,资料型别为WORD):
LD SM0.0
MOVW #IN_WORD1:LW0, #DATA_TEMP1:LW6
/I #IN_WORD2:LW2, #DATA_TEMP1:LW6
MOVW #IN_WORD2:LW2, #DATA_TEMP2:LW8
*I #DATA_TEMP1:LW6, #DATA_TEMP2:LW8
MOVW #IN_WORD1:LW0, #MOD_OUT:LW4
-I #DATA_TEMP2:LW8, #MOD_OUT:LW4
你可以转换成LAD程式,看下就明白了。

西门子系统如何显示主程式呼叫的子程式

你的意思是子程式加密了吧?
如果是通过向导或是西门子专用库生成的子程式,那么是预设加密的。
一般也没有必要去解开看,因为有点复杂,只要会用就可以了。

在西门子plc中如何处理停止呼叫子程式后的状态保持?

如果你停止呼叫子程式,在你主程式中没有涉及到任何这个子程式的内容,这个子程式的内容在你下一次呼叫前,或者PLC重新启动前,这些内容都是保持的。刚开始学西门子的时候,就被这个问题折磨过,以为不呼叫,内容就恢复到原始值,其实不是。