说明
全局数据块中的变量可以按符号名或绝对地址进行寻址。对于符号寻址,可以使用数据块的名称和变量名,并用圆点分隔。数据块的名称用引号括起来。
对于绝对寻址,可以使用数据块的编号和数据块变量的绝对地址,并用圆点分隔。地址标识符 % 被自动设置为绝对地址的前缀。
s7-1200/1500 提供了一个选项,用于访问编程期间处于未知状态的数据块。为此,请在访问块的块接口中创建一个 db_any 数据类型的块参数。数据块名称或数据块编号将在运行期间传送到此参数。为了访问数据块的内部变量,请使用 db_any 数据类型的块参数名称以及变量的绝对地址,并用圆点分隔。
说明
将带存储器预留区的 db 传送至参数 db_any。
无法将带存储器预留区的 db 传送至数据类型为“db_any”的块参数。
说明
按绝对地址对 db 变量寻址
以下变量无法进行绝对寻址:
优化访问块中的变量。
lword、lint、ulint、lreal、ltime、ltod 和 ldt 数据类型的变量。
最佳做法是对这些变量使用更为便捷的符号寻址。
array 数据块
array 数据块是一种特殊类型的全局数据块。这些数据块包含一个任意数据类型的 array。例如,可以是 plc 数据类型 (udt) 的 array。
可通过关键字“this”寻址 array 数据块中的元素。然后再在方括号中指定下标。下标可以是一个常量,也可以是一个变量。变量类型的下标最大可支持长度为 32 位的整数。
寻址 array 数据块的扩展选项位于“指令”(instructions) 任务卡的“移动”(move) 区域中。例如,可以通过这些指令对数据块名称进行间接寻址。
语法
.tagname
%.absoluteaddress
#.%absoluteaddress
scl:
下表内容为数据块中变量可能的绝对地址:
数据类型 绝对地址 示例 说明
bool %dbn.dbxx.y %db1.dbx1.0 db1 中的数据位 1.0
byte, char, sint, usint %dbn.dbby %db1.dbb1 db1 中的数据位 1
word, int, uint %dbn. dbwy %db1.dbw1 db1 中的数据字 1
dword, dint, udint, real, time %dbn.dbdy %db1.dbd1 db1 中的数据双字 1
示例
以下示例为全局数据块变量的寻址:
寻址 说明
motor.value 全局数据块 value 中变量 motor 的符号寻址。
%db1.dbx1.0 全局数据块 db1 中变量 dbx1.0 的绝对寻址。
#mydbany.%dbx30.0 运行期间在 mydbany 参数上传递的全局数据块中 dbx30.0 变量的绝对寻址。
myarray_db.this[#myindex].mycomponent.mycomponentelement 寻址 array 数据块。通过 myindex 变量指定 array 下标。array 元素具有 2 个附加子结构:“mycomponent”和“mycomponentelement”。
多径的影响及解决措施
去中心化流动性池机制介绍
中标喜讯 | 芯盾时代中标中建三局 护航数字化转型的业务安全
针对中国市场新一代iPhone推出双卡双待功能
IBM最新调研:目标导向和溯源技术为消费品牌企业带来更大利润空间
西门子博途中全局数据块中的变量寻址
智能电网基础知识:什么是柔性输电?
应用横格式分样器过程中需要注意的事项有哪些
数字化创新将会成为未来时代发展的新常态
XP Power推出超紧凑尺寸ECS60
骨传导耳机哪个好?最值得推荐的骨传导耳机
Oclaro推出针对100Gbps及其以上速率的相干光传输系统的拉曼放大器系列产品
英伟达开启的DPU跑道
这几类人不适合跑步,有你吗
工业应用的IEC 61508标准详解
LDO在IoT中省电的两种方法
索尼想通过哪项技术摆脱对手机等消费电子市场的依赖?
MPX扩散硅压阻式传感器
超高亮LED迷你台灯工作原理
Acrel-3200远程预付费系统的应用