.程序示例
在以下示例中,可以使用下标访问来自不同存储区的三个变量。
分别分配给相应下标的三个变量总览:
下标 | 访问变量 | 存储区 |
---|---|---|
1 | Input_WORD_0 | IW 0 |
2 | "Processdata".Temperature | DB 1 |
3 | Output_WORD_4 | QW 4 |
在“默认变量表”(Default tag table) 中声明以下两个变量:
创建全局数据块:
双击“添加新块”(Add new block) 命令。 这样会打开“添加新块”(Add new block) 对话框。 单击“数据块 (DB)”(Data block (DB)) 按钮。 指定名称“DB_Processdata”。 选择“Global DB”作为数据块的类型。 单击“确定”(OK)。 声明数据块元素“Temperature”: |
在函数中使用下标声明间接访问。
创建一个 SCL 函数并将其命名为“FB_AccessGroupInt”。 按如下方式声明块接口: 编写以下程序代码: 调用 OB1 中的函数“FC_AccessGroupInt”: 根据在 Index 参数中指定的编号(1、2 或 3),执行“FC_AccessGroupInt”指令的第一、第二或第三种情况。 |
2.程序示例
在以下示例中,可以使用下标访问三个不同的优化数据块。
由于所有数据块应包含相同的变量,所以在这种情况下可以使用 PLC 数据类型 (UDT)。
要创建 PLC 数据类型,请在项目树中双击“PLC 数据类型”(PLC data types) 文件夹中的命令“新增数据类型”(Add new data type)。 这样,将创建并打开一个用于创建 PLC 数据类型的新声明表。 将 PLC 数据类型重命名为“UDT_SiloContents”。 在 PLC 数据类型中声明以下行: MyBool > 数据类型:BOOL MyInt > 数据类型:INT MyWord > 数据类型:WORD |
创建三个全局数据块。
双击“添加新块”(Add new block) 命令。 这样会打开“添加新块”(Add new block) 对话框。 单击“数据块 (DB)”(Data block (DB)) 按钮。 指定名称“DB_SiloWater”、“DB_SiloSugar”和“DB_SiloMilk”。 选择数据块“UDT_SiloContents”作为数据块的类型。 单击“确定”(OK)。 |
创建一个函数来读取数据块变量的值并将这些值写入 PLC 数据类型。
创建一个 SCL 函数并将其命名为“FC_AccessGroupSiloRead”。 按如下方式声明块接口: 编写以下程序代码: 调用 OB1 中的函数“FC_AccessGroupSiloRead”: 根据 Index 参数中指定的编号(1、2 或 3),执行“FC_AccessGroupSiloRead”指令的第一、第二或第三种情况。 |
审核编辑:刘清
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
plc
+关注
关注
5008文章
13167浏览量
462195 -
存储器
+关注
关注
38文章
7455浏览量
163623 -
SCL
+关注
关注
1文章
239浏览量
17040
原文标题:博途PLC示例: 间接寻址的示例
文章出处:【微信号:gh_a8b121171b08,微信公众号:机器人及PLC自动化应用】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
西门子S7-200smart间接寻址使用方法简析
使用间接寻址就必须先创建指针,那么指针怎么创建呢?使用MOV_DW指令把指针地址存放到OUT输出的变量,MOV_DW不是普通的32位数传送指令吗,怎么就是指针了呢?
西门子博途: 存储器间接寻址的应用
对于存储器间接寻址,可以在变量中存储地址。变量可以是 WORD 或 DWORD 数据类型。变量可以位于存储器区域“数据”(DB 或 DI)、“位存储器” (M) 或“临时本地数据” (L) 中。
发表于 07-15 11:20
•5411次阅读
PLC中为什么要间接寻址?直接寻址不行吗?
PLC中为什么要间接寻址?直接寻址不行吗? PLC,也称程序可编程控制器,是一种专门用于自动化控制的电子设备,广泛应用于各种工业领域中。在
评论