“@”符号是什么意思(欧姆龙PLC)?

时间:2012-02-17 11:57:13

标签: plc

@ ”符号在梯形图编程中的含义是什么?文档解释了 @在二进制模式下指定间接DM地址...偏移内存区域 :这实际意味着什么?

请考虑文档中的以下图片:

enter image description here

地址(16位或小数32767)的内容如何成为字地址?例如,如果地址 CIO 0 的内容 000000001000000 :添加 @ 符号 CIO 0 更改为 0000000.01亿?在上述指令中到底发生了什么?

2 个答案:

答案 0 :(得分:3)

仅适用于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联系人!

答案 1 :(得分:1)

Omron PLC中函数的@符号表示它仅在前沿运行。 例如,对于较旧的PLC @INC或较新的PLC,@ ++表示在前沿将通道增加1。较新的PLC中的++函数是二进制的,而较旧的PLC中的INC函数是BCD。