什么是“@“ 符号在梯形图编程中意味着什么?文档解释了@ 指定二进制模式下的间接 DM 地址 ... 偏移内存区域: 这实际上是什么意思?
考虑文档中的以下图像:
地址(16位或十进制32767)的内容如何成为字地址?例如,如果地址CIO 0内容为000000001000000: 添加@签署CIO 0更改为000000001000000?上述指令中到底移动了什么?
这仅适用于 DM(数据存储器)。欧姆龙PLC有很多存储区。 CIO 通常仅用于输入/输出位。 W(工作)用于存储工作内存位(例如 RAM),H(保持)用于存储在断电时必须保留其值的位(例如硬盘驱动器,位数据)。 DM 和 EM 主要用于保存 WORD 数据,断电时也会存储。当然,对此没有硬性规定 - 例如,在很多情况下,如果您愿意,您可以使用 CIO 位来代替 W 位,但每个位都有某些独特的功能,可以区分它们并使它们更加出色适用于某些目的。
在这种情况下,@符号的作用就像一个指针。如果我使用指令 [MOV #1 D300],我会将十六进制数据 [x0001] 移动到内存位置 D300。需要明确的是,#1(第二个参数)是值为 x0001 的十六进制(符号 #)常量。如上例所示,如果 D300 包含值 [x0100](= 256 十进制),并且如果我使用指令 [MOV #1 @D300],我不会将值 [x0001] 移动到 D300,但我会将其移动到D300 中包含的地址 - 在本例中为 D256。
请注意,@ 符号用于二进制/十六进制格式的指针。如果 D300 = [x0100],则 @D300 的 MOV 指令会将数据移至 D256(十六进制 0100)。您还可以使用 * 修饰符执行 [MOV #1 *D300],这会将存储在 D300 中的 0100 视为 BCD 值 - 换句话说,它不会指向 D256,而是指向 D100!
使用指针可以让您不必修改 MOV 指令,例如,如果您想在不同条件下将一个值定向到一系列不同的位置。如果您想将内存移动重定向到不同的地址,您只需更新 D300 中存储的地址值即可。
请注意,@ 符号可以通过助记符表示其他含义 - 例如,@LD 表示差分 UP 触点!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)