Ⅰ PLC子程序的调用是怎么回事
结构化编程。常用的功能写个子程序,可以被主程序或其他子程序调用。类似于高级语言中的函数或方法调用。如C语言,主函数为main(),其他函数可以被他调用,同时函数之间也可以互相调用。调用时用实参赋给形参(如果有参数传递的话),PLC也是这样。以西门子S7-300为例。主程序是OB1,常用或重复的功能你可以写成FC(功能)或FB(功能块),放在OB1里重复调用,通过传递不同的实参给形参来完成不同的程序执行,FC和FB也可以调用其他FC和FB,即嵌套调用,但嵌套层数有限制。这样做是为了使程序结构合理,易读易用,减轻编程工作的重复工作。
Ⅱ 在FC里写了一些子程序 想在OB1中按程序进行控制 请问在OB1中怎么添加FC
打开ob1,然后在左侧的fc块里找到你做的fc,然后双击一下,就进ob1里面了。
Ⅲ 什么情况下,OB1里面直接调用DB1等数据块 ,不知道在主程序里面调用数据块啥意思
ob1是主程序,db1是数据块,可以把想设计参弊册贺数写在姿御DB1里,会分配一个地址,在ob1里面租派用,西门子300程序就是这样设计
Ⅳ 主程序调用子程序编程指令是什么
主程序调用子程序编程指令是:右击——插入——OB,然后填上OB100,OB由系统调用,并非由用户调用。
一般会有输入参数并有返回值,提供对过程的封装和细节的隐藏。这些代码通常被集成为软件库。函数在面向过程的语言中已经出现。是结构和类的前身。本身就是对具有相关性语句的归类和对某过程的抽象。
转子指令和返回指令:
在子程序的调用与返回过程中,子程序的入口地址是指子程序第一条指令的地址。用于调用子程序、控制程序的执行从主程序转向子程序的指令称为专注指令(子程序调用指令、过程调用指令)。为了正确调用子程序,必须在转子指令中给出子程序的入口地址。
主程序中转子指令的下一条指令的地址称为断点,断点是子程序返回主程序的返回地址,从子程序返回主程序的指令称为返回指令。为了在执行返回指令时能够正确地返回主程序,转子指令应具有保护断点的功能。
执行转子指令时保护断点的方式有多种,常用的有:将断点保存到子程序第一条指令的前一个字单元;将断点保存到某一约定的寄存器中;将断点压入堆栈。
Ⅳ 如何编程使用OB组织块
简单的控制程序可以只用OB块编程。
若程序功能较多、控制对象较多,应遵循西门子(也是IEC)的建议采用结构化编程。
应该采用FC、FB,就采用相应的功能;
S7-300/400PLC程序采用结构化程序,把程序分成多个模块,各模块完成相应的功能。结合起来就能实现一个复杂的控制系统。就像高级语言一样,用子程序实现特定的功能,再通过主程序调用各子程序,从而能实现复杂的程序。
在S7-300/400PLC中,写在OB1块里的程序就是主程序,子程序写在功能(FC)、功能块(FB)。各个OB相当于主程序的不同分段,负责调用其他功能块。如果程序简单只需OB就可以实现。
系统功能块(SFB)和系统功能(SFC)也是相当于子程序,只不过SFB和SFC是集成在S7
CPU中的功能块,用户能直接调用不需自已写程序。
SFC与FC不具有储存功能,FB和SFB具有储存功能
。
IU和R必须是在同一段电路中;IU和R中已知任意的两个量
Ⅵ 求西门子的子程序调用的编程实例,另外还想问一下子程序是和主程序在同一个程序吗。
子程序和功能块最终都是要在主程序的调用下起作用的
主程序相当于是一间房子
而子程序就相当于是房子中的桌子
主程序
程序主体(称为
OB1),在其中放置控制应用程序的指令。 主程序中的指令按顺序执行,每个 CPU 扫描周期执行一次。
子例程
子例程是位于单独程序块的可选指令集,只在从主程序、中断例程或另一子例程调用时执行。
中断例程
中断例程是位于单独程序块的可选指令集,只在发生中断事件时执行。
STEP7-Micro/WINSMART 提供了三个程序编辑器,并通过在程序编辑器窗口为每个 POU 提供单独的选项卡来组织程序。 主程序 OB1
始终是第一个选项卡,然后是可能已创建的任何子例程或中断。
子例程
要重复执行某种功能时,子例程是非常有用的。 可在子例程中编写一次逻辑,然后在主程序中根据需要多次调用子例程。 这样做有若干优点:
您的总体代码大小减小。
与在主程序中多次执行相同代码相比,扫描时间也会减少,因为在主程序中,不管代码执行与否,每个扫描周期都会自动评估代码。
可以有条件地调用子例程,且在扫描过程中不被调用时不对子例程进行评估。
子例程容易移植;您可以单独挑出一个功能,并将其复制至其它程序中,而无须进行修改或只进行少量修改。
Ⅶ 西门子PLC300 在OB1中调用FB1
将DB1删出,然后再FB1上方填写DB1重新生成一个DB块就可以了。
新生成的DB1块是背景数据块,FB1的相关变量会自动映射到背景DB中去。
DB1建立后 不能修改属性啊
要想改属性将DB1删出重新建立DB块,选择instance DB类型 并指定FB1 也可以解决上面的问题。
Ⅷ 数控车床主程序和子程序是怎么调用的例如我想加工一个工件然后再把它切断后,再做一个怎么调用子程序
子程序调用M98Oxxxx子程序号
子程序调用格式M98PXXXX XXXX前者为调用次数后者为子程序号。例;
M98P51002意思是调用子程序O1002,5次。
M99返回主程序M99不必在单独程序段内指令,例;X100.Z100.M99;
你所说的程序为:
T0200M09用2号刀
M04S500
G00X52.Z30.假设棒料直径为50mm,前段长为25mm
G01X-1.F0.15
G0X52.
M98P5 1001调用子程序5次
G00X100.Z20.
M05M09
M30
O1001子程序
G00W-30.
G01X-1.F0.15
G00X52.
M99
Ⅸ 博途中scl语言如何使用ob1中函数块
SCL语言是西门子Simatic语言(Siemens Simatic Language)的简称,它是一种用于编程西门子PLC(Programmable Logic Controller)的语言。在SCL语言中,可以使用OB1函数块来实现指令控制。OB1函数块是一种以OB开头的结构化程序块,它是西门子PLC编程中使用最多的特殊指令。OB1函数块由三部分组成,即指令头(HEAD)、指令体(BODY)和指令尾(TAIL)。
指令头由OB1函数块的序号、名称、参数和描述组成。指令头的具体内容受PLC控制器的影响,它可以指定OB1函数块的序号、函数块的名称或参数,也可以是其他描述信息。
指令体部分由一系列的指令构成,这些指令定义兆瞎枣了OB1函数块所要完成的任务。它包括一些常用的指令,如IF、ELSE、THEN等,还有一些特殊指令,如JMP等,它们可以根据所处理的任务指定函数块的逻辑和流程。
指令尾部分是OB1函数块的结尾,它通常由一个END指令组成,用于指示OB1函数块的结束。
OB1函数块可以用于实现复族拆杂的程序控制,并且在SCL语言中也可以使用它来实现指令控制。因此,要使用OB1函数块,只需要在SCL语言神陪中定义一个OB1函数块,然后使用它即可实现指令控制。
Ⅹ 怎样调用OB1块
OB1不需要调用,所有的OB都不需要调用,由PLC的操作系统自行调用,您只需要下载OB块就可以了。