SCL编程问答 联系客服

发布时间 : 星期六 文章SCL编程问答更新完毕开始阅读d201657f1711cc7931b71618

图 01

如果一个功能块在另一个功能块中被调用,仅需分配一个背景数据块给具有多重背景能力的功能块。这个背景数据块被称为多重背景数据块。它通过在功能块的静态变量声明中定义一个 FB 数据类型的来生成。被调用功能块的静态变量(及块参数)变为调用功能块静态变量的一个子集。

图 02

图 02显示了 SFB4 被 FB22 调用。一个类型为“TON”的静态变量 (SFB4 的符号名)在多重背景数据块(为了 SFB4 和 FB22)的应用中被声明,例如 ,数据块符号名为“SFB4_TON”。多重背景数据块 DB22 仅仅在 SFB4 在被 FB22 调用后生成。

注:

为了更新背景数据块,建议下载前在 SIMATIC 管理器中检查数据块的一致性。选中块文件夹并通过菜单命令“Edit > Check Block Consistency...”打开对话框。然后执行功能“Program > Compile all”。

在 S7-SCL 中读取一个组织块的起始信息

显示订货号

问题:

在 STL 中可以读取一个组织块的起始信息 (例如 OB1 中的循环时间),在 S7-SCL 中是否存在同样的可能? 解答:

在 SCL 编辑器中,通过“Insert > Block Template > OB”创建一个 OB。在临时区域,缺省情况下将创建一个 ARRAY OF BYTE 类型的数据区域。

如果您想要处理 SCL 源文件中一个 OB 的起始信息,请按下列步骤进行:

1. 确定 OB 起始信息的结构。该信息包含在 OB 的 STL 源文件中,可在路径

Drive:\\Siemens\\Step7\\S7DATA\\S7wiz 下找到。使用编辑器打开合适的 OB (例如 OB31.awl) 并复制相应信息。

2. 创建一个新的 SCL 源文件并插入您刚才复制的起始信息。

3. 调整 S7-SCL 中 OB 的临时区域,以便可以通过符号方式访问变量。

例子:

对于时间错误 (OB3 已经超过了循环时间),系统会调用 OB80 并设置标志 M1.0。

SCL_OB80.pdf ( 1 KB )

在S7-SCL (例如 OB1 循环时间)中如何读取一个组织块(OB)的起始信息?

显示订货号

说明: 下面的这个表描述了一个组织块的S7-SCL 源代码的生成步骤,重点在读取组织块的起始信息的STL 代码。 序号 步骤: 1 在SIMATIC 管理器中选择这个源文件 并且插入 S7-SCL源代码到你的STEP 7 项目中,使用菜单\插入> S7 软件> SCL源代码\2 接下来通过双击S7-SCL source打开S7-SCL编辑器. 3 在S7-SCL编辑器中,通过\插入 > 块类型 > OB\,你能够创建一个OB。在临时数据区域,一个作为OB起始信息默认的字节数组被创建。. 如果在S7-SCL源文件中你需要更多的OB起始信息,在资源管理器中打开下面的路径: \ 你能够在这里发现组织块的STL源代码, 打开适当的STL源代码, 例如OB1.STL ,并且从STL原文件中复制STL源代码到S7-SCL源文件中。 4 在符号表中输入S7-SCL 源文件的组织块的符号名, 例如OB1的符号名\循环执行\。 5 现在你不得不调整S7-SCL源文件中的语法结构 : ? 在这个程序的开始, 用引号标示,设置 \标题\和\版本\或者删除\标题\和 \版本\例如标题='' 和 版本: '0.1', ? 在“开始”语句后面插入一个分号。 这样你能够编译组织块的S7-SCL 源文件。 例子: 在下面的S7-SCL程序中, 这个临时的程序\被评估OB80 (循环时间故障). 如果这个循环时间超过了OB3, 这个OB80被调用并且标志位M1.0 被置位。 图 01 下载: