[西门子] 西门子博途:软件单元

[复制链接]
查看126 | 回复0 | 2025-3-30 15:06:12 | 显示全部楼层 |阅读模式
>

软件部件简介

使用软件单元进行编程

通过软件单元,可将用户程序细分为各个的程序部件,分别进行编辑和下载。为此,可在项目树中的新“软件单元”(Software units)  文件夹,创建用户自定义的软件单元并进行编程。

下图显示了项目树中的“软件单元”(Software Units) 文件夹。


各软件单元中都使用虚线形式的括号括起,并包含以下主要元素:

  • 关系:通过关系表,可设置从当前软件单元对以下对象的访问方式:

    • 其它软件单元(存在关联关系)中已发布的块、PLC 数据类型和 PLC 变量表。

    • 软件单元之外的全局数据块

    • 工艺对象

  • “程序块”(Program blocks) 文件夹:在该文件夹中,可创建各种程序块(组织块、函数块、函数、数据块)。

  • “外部源”(External sources) 文件夹:将外部 SCL 源程序导入该文件夹,生成相应块或 PLC 数据类型。

  • “PLC 变量”(PLC tags) 文件夹:在该文件夹中,可创建 PLC 变量表、PLC 变量和常用常量。

  • “PLC 数据类型”(PLC data types) 文件夹:在该文件夹中,可创建 PLC 数据类型。

  • PLC 监控和报警:可打开报警和监控编辑器。

  • PLC 报警文本列表:可打开文本列表编辑器。

如果是已发布的程序元素,则虚线上会显示一个小的绿色/白色方块。

在软件单元内创建用户程序,是对现有编程方式的一种扩展。即,用户可灵活选择在软件单元之内或之外创建程序段。 



程序结构

无论是将现有程序拆分为多个软件单元,或是启动新项目,都应该在开始时对程序结构进行规划。基于以下规则,可将用户程序拆分为多个软件单元。例如:

  • 功能单元和工艺单元

    在软件单元中,可创建多个功能单元或工艺单元,用户可对这些单元进行编辑和单独加载。如果现有程序中的这些块已分为多个组,则这些组也可分为不同功能的软件单元。

  • 指定的更改频率

    此外,也可按照程序段中指定的更改频率对程序进行拆分。如需创建相互独立加载的单元,应按照不同的更改时间间隔为各程序段创建自己的软件单元。在一个软件单元中,可创建具有基本功能且几乎无需更改的块,也可包含其它软件单元中用于调试目的而经常需要更改的块。与此同时,程序拆分也可用于故障排除。

  • 编辑器

    基于编辑器进行程序拆分,可显著减少协调所需工作量。要进一步优化项目成员之间的相互协作,可在多用户工程组态中使用软件单元。

  • 尽可能封装软件单元

    为了确保软件单元可独立编辑与加载,各软件单元间不应存在交叉关系。为此,仅在确实需要时,才使用已发布的程序元素和关系。因此,请尽可能地封装各软件单元。

在进行程序拆分时,可混合使用不同的标准,也可创建用户的标准。但需将软件单元封装标准作为主要标准,以充分利用软件单元的优势。 


程序结构 - 示例 1

在示例 1  中,通过中央单元“UnitMain”执行中央控制任务。该单元中包含一个进行程序循环处理的组织块和一个协调两个站的“LineControl”函数块。

这两个站分别映射在一个软件单元中。系统将对两个软件单元中的程序段进行封装,以便两个不同的程序员进行处理。

“UnitStandard”中的库功能可提供各种常用功能。在该示例中,还使用了一个函数块“PartCount”进行数量计算。这两个站将对此函数块执行一次实例化。实际上,这种“标准软件单元”中包含大量可重复使用的程序段,用户可根据需要进行调用。




程序结构 - 示例 2

在示例 2 中,同样是通过各个封装的软件单元对这两个站进行控制。但每个站都有自己的循环组织块。如果一个程序包含多个组织块,则操作系统将按照 OB  编号顺序依次调用。

与示例 1 相同,本示例中同样将“UnitStandard”用作包含可重用程序段的功能库。除“PartCount”函数块之外,在本示例中还包含一个 PLC  数据类型 (UDT),用于映射某工件的生产数据。在每个程序块的接口中,可使用 PLC 数据类型,对工件数据进行标准化存储。

“UnitGlobalMachineData”用于中央数据存储和处理。其中,包含一个全局数据块,用于每个软件单元存储工件数据。





免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则