主程序放在子程序前面,主程序以FEND结束,FEND之后就可以编写子程序了,如果使用WPLsoft编程,子程序开始给出地址指针就可以了,比如:
主程序
CALL
P1
CALL
P2
————FEND
P1
LD
M0
这是第一个子程序
AND
M1
OUT
M2
P2
LD
M3
这是第二个子程序
OR
M4
OUT
M5
————END
所有程序结束
如果使用ISPsoft编程,那就简洁多了,子程序做成功能块,通过调用功能块来实现。
子程序调用指令CALL的编号为FNC01。 *** 作数为P0~P127,此指令占用3个程序步。
子程序返回指令SRET的编号为FNC02。无 *** 作数,占用1个程序步。
如果X0接通,则转到标号P10处去执行子程序。当执行SRET指令时,返回到CALL指令的下一步执行。
使用子程序调用与返回指令时应注意:
1)转移标号不能重复,也不可与跳转指令的标号重复;
2)子程序可以嵌套调用,最多可5级嵌套。
在上面已经说明如何放置子程序,放在最后面。如果有多个子程序,有P0,P1,---P63只能最多63个个,如果使用GXDeveloper的话,直接在一行的最左边输入“P0”即可。
PLC编程时,子程序的多少仅仅受内存大小限制,数量上是不受限制的,所以在内存足够的情况下,可以说有无限个。
不过,子程序编程时,参数的传递数量是有限制的,比如S7-200,参数最多是16个。另外变量名的长度也受限,S7-200系列的是23个。
s71200 plc的子程序可编辑在函数块中。
S7-1200的用户数据结构采用模块化编程结构。采用模块化编程目的是将复杂的自动化任务划分为对应生产过的技术功能较小的子任务,这样一个子任务就对应于一个称之为“块”的子程序。块与块之间可以相互调用来组织程序,这样有利于修改与调试。
1)执行完一次返回,随后不调用
2)plc输出是在全部程序都走完之后统一输出的,所以不会
补充:
1)子程序会运行到第5部
2)子程序的顺序控制可能达不到预期目的,因为子程序里的输出在下一个周期不再执行扫描(调用条件消失)。每一步骤产生的结果能及时输出。
LZ的这个例子是一个典型的条件调用。但是条件调用一定要注意,该条件的有效性。最好是写在子程序里,别写在子程序的调用条件里。前不久我车间里的纯水系统就有这样一个问题。
分配系统的子程序的调用条件是制备系统OK的信号+软逻辑(触摸屏)来调用。
我的 *** 作人员在触摸屏上 *** 作启动分配系统运行,分配系统循环泵运行,5分钟左右,制备系统PH值报警,子程序调用条件消失。这时候分配系统的循环泵一直输出。不能停止
后来告之乙方设计人员程序中的问题,把制备系统OK的信号放到里分配系统的子程序里,而不作为调用条件。运行OK。
关于子程序调用,是禁止这样的条件调用的。可能会发生不可预料的后果。
以上就是关于台达PLC如何建立子程序全部的内容,包括:台达PLC如何建立子程序、三菱PLC梯形图中该怎样加子程序、PLC编程时,子程序可以有多少个等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)