浔之漫智控技术(上海)有限公司
西门子PLC模块 , CPU模块 , DP通讯电缆 , 6GK交换机
西门子扩展模块6ES7231-7PB22-0XA8
发布时间:2023-10-26

   西门子S7-300/400的plc用户程序结构与S7-200有明显的不同,可以使用线性化结构以及功能调用式结构与结构化编程。
    采用调用式结构与结构化编程时,程序以组织块(OB)、程序块(FC)、功能块(FB)、系统程序块( SFC)、系统功能块(SFB)、数据块(DB)等形式出现,其中,组织块(OB)、程序块(FC)、功能块(FB)统称为“逻辑块(Logic Block)”;系统程序块(SFC)、系统功能块(SFB)统称为“系统块”。
    (1)组织块(OB)
    组织块(Organization Blocks,简称OB)提供了PLC内部CPU操作系统与用户程序间的接口,它是由CPU操作系统直接进行调用的逻辑块,用来管理PLC程序中各组成部分的调用和执行中断。OB决定了PLC用户程序的结构与块的调用顺序,起到了“管理”用户程序的作用。
    S7-300/400不同的CPU类型,可以选择、支持不同的OB块,但OB1是所有PLC用户程序的循环控制块,它是运行PLC用户程序的前提条件,因此,任何PLC程序、任何CPU都不可以缺少OB1。
    OB块的调用条件被称为“触发事件”,根据“触发事件”的不同,OB块可以分为若干级别,各个级别有不同的优先级,高优先级的OB可以中断低优先级OB的执行。如果需要,S7系列PLC除OB1外,还可以使用多个OB块。
     (2)程序块(FC)
    程序块(Function,简称FC)是由用户编写的、不需要专门数据块的常用逻辑块。
    FC块在程序中一般不可以重复调用,在大多数场合,FC块应直接使用PLC的“**地址”或“符号地址”进行编程,但根据需要,可以定义部分程序变量。
    与S7-200 -样,FC块的“临时变量”同样存储在局部变量数据堆栈(L)中,这一区域为全部程序块所公用,只可以用于FC块内部使用的中间运算结果寄存(这些中间运算结果不可以用于FC块外部);程序块执行完成后,局部变量数据堆栈内的数据将被其他块所需要的内容所替代。如果需要保存可以用于其他逻辑块的状态,应使用PLC的内部标志寄存器M或使用“数据块DB”。
    在程序块FC中,有部分为PLC生产厂家所提供的、集成在S7 CPU操作系统中的逻辑块,称为系统程序块(System Function,简称SFC)。系统程序块SFC属于PLC内部操作系统的一部分,用户不需要编写,也不可以对其进行编辑,但可以根据需要直接调用。
    (3)功能块(FB)
    功能块(Function Blocks,简称FB块)是由用户编写的、需要专用数据块(Instance Data Blocks,称为“即时数据块”或“背景数据块”,简称DI)支持的常用逻辑块。
    FB块与FC块的作用基本相同,但FB中除可以使用“**地址”或“符号地址”进行编程外,在结构化编程时必须使用“程序变量”进行编程,因此,FB必须配套的、独立的数据存储区域——“即时数据块DI”。DI -方面可以为调用FB提供执行程序所需要的“程序变量”赋值与其他数据,另一方面,功能块FB也能通过DI给调用它的逻辑块返回所需要的数据。
    与功能调用块FC -样,功能块FB中也有部分为PLC生产厂家所提供的、集成在S7 CPU操作系统中的功能块,称为系统功能块(System Function Blocks,简称SFB)。系统功能块SFB同样属于PLC内部操作系统的一部分,用户不需要编写,也不可以对其进行编辑,但可以根据需要直接调用。
    (4)数据块(DB)
    数据块(Data Blocks,简称DB)是用来存放执行用户程序时所需的数据与存储程序执行结果的数据存储区,其作用与标志寄存器类似,但数量更多。数据块DB按不同的用途可以分为即时数据块(Instance DataBlocks,又称背景数据块,简称DI)和通用数据块(Data Blocks,又称共享数据块,简称DB)两类。
    即时数据块( DI)用于传递功能块的参数,只能被指定的功能块FB访问。调用功能块FB时,必须同时指定用于该功能块的即时数据块DI,即时数据块内的数据可以自动生成,它们可以是FB变量声明表中的数据(不含临时变量)。
    通用数据块(DB)用于存储PLC的全局数据,所有的FB、FC或OB都可以对通用数据块进行读写操作,因此,又被称为共享数据块。通用数据块内的数据不会因用户程序的结束而删除。

输入共享数据块的数据结构
如果打开一个未分配给用户自定义数据类型或功能块的数据块,则可以在数据块的声明视图中定义其结构。对于未共享的数据块,不能改变声明视图。
打开一个共享数据块,表示该块与UDT或FB无关。
如果该视图尚未设置,则显示数据块的声明视图。
根据下列信息填写所显示的表格以定义结构。
对于未共享的数据块,不能修改声明视图。

输入和显示参考FB(背景DB)的数据块的数据结构
输入
在将数据块与功能块(背景DB)相关联时,该功能块的变量声明定义了数据块的结构。任何改动都只能在相关的功能块中进行。
打开相关的功能块(FB)。
编辑功能块的变量声明。
再次创建背景数据块。
显示
在背景数据块的声明视图中,您可以显示如何对功能块中的变量进行声明。
打开数据块。
如果该视图尚未设置,则显示数据块的声明视图。
参见下表以获取更多信息。
对于未共享的数据块,不能改变声明视图。

输入用户自定义数据类型(UDT)的数据结构
打开用户自定义的数据类型(UDT)。
如果该视图尚未设置,则显示声明视图。
通过确定变量的顺序、数据类型和初始值来定义UDT的结构,并可以在需要时使用下表中的信息。
通过使用TAB键或RETURN建退出该行,以完成变量的输入。

输入和显示参考UDT的数据块的结构
输入
当您将数据块分配给用户自定义的数据类型时,该用户自定义数据类型的数据结构即定义了数据块的结构。任何改动都只能在相应的用户自定义数据类型中进行。
打开用户自定义的数据类型(UDT)。
编辑用户自定义数据类型的结构。
再次创建数据块。
显示
您只能在数据块的声明视图中显示如何在用户自定义的数据类型中对变量进行声明。
打开数据块。
如果该视图尚未设置,则显示数据块的声明视图。
参见下表以获取更多信息。
不能修改声明视图。任何改动都只能在相应的用户自定义数据类型中进行。

在数据视图中编辑数据值
只能在数据块的数据视图中编辑实际值。
如果需要,使用菜单命令视图 > 数据视图切换到数据视图中的表格显示。
在"实际值"列的域中输入数据元素所需的实际值。实际值必须与数据元素的数据类型相兼容。
在编辑期间,任何错误的输入(例如,如果输入的实际值与数据类型不兼容)都会立即被识别并以红色显示。这些错误必须在保存数据块之前予以更正。
将数据值重新设置为其初始值
只能在数据块的数据视图中重新设置数据值。
如果需要,使用菜单命令视图 > 数据视图切换到数据视图中的表格显示。
为此,选择菜单命令编辑 > 初始化数据块。
所有变量将被重新分配其期望的初始值,这表示所有变量的实际值将由其对应的初始值所覆盖。
保存数据块
为将新创建的块或数据块中经修改的数据值输入到编程设备数据库中,必须保存各个块。数据随后将被写入到编程设备的硬盘中。
为将块保存在编程设备的硬盘中:
激活希望保存块的工作窗口。
选择以下菜单命令之一:
文件 > 保存将使用同一名称对块进行保存。
文件 > 另存为将使用一个不同的S7用户程序或一个不同的名称对快进行保存。在随后出现的对话框中输入新的路径或新的块名称。对于数据块,由于名称DB0已为系统保留,所以可能无法使用该编号。
在这两种情况中,只有在其语法没有任何错误时才可保存块。语法错误将在创建块时同时进行识别,然后以红色显示。在保存块之前,必须纠正这些错误。


展开全文
优质商家推荐 拨打电话