【问题标题】:What does the "@" sign mean (Omron PLC)?“@”符号是什么意思(欧姆龙PLC)?
【发布时间】:2012-03-08 19:50:18
【问题描述】:

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

考虑文档中的以下图片:

地址的内容(16 位或十进制的 32767)如何变成字地址?例如,如果地址 CIO 0 的内容为 000000001000000:添加 @ 符号将 CIO 0 更改为 000000001000000?上述指令中的具体内容是什么?

【问题讨论】:

    标签: plc


    【解决方案1】:

    这仅适用于 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 清除!你真的能理解文档中的英文吗,或者网上有教程吗?您的回答中的问题:*修饰符给出了一个 BCD 指针,但 BCD 不是 0100 = 十进制 4,因此指向 D004 而不是 D100?
    • 不,这是 x0100 - 十六进制,而不是二进制。十六进制 0100 = 二进制 (0000 0001 0000 0000),其 BCD 为 0100(一百)。每个字都可以容纳 (x0000-xFFFF)。如果你扔掉它可以容纳的十六进制数字 (x0000-x9999) - 为便于阅读而丢失信息。只要您不使用 A-F,PLC​​ 就可以通过这种方式将十六进制数解释为十进制数(即:BCD)。
    • 而且,不,我并没有真正遵循任何教程,但我从 Omron 开始就已经了解 PLC 编程。也许像 DL450 手册之类的东西在概念上会更清楚——这不是欧姆龙的,但大多数想法都是一样的:automationdirect.com/static/manuals/d4user/d4user.pdf——见第 5 章
    • ^ 请记住,欧姆龙 PLC 可以让您做一些 DL450 不会做的事情 - 每个梯级有多个输出、拆分后的逻辑等。它可能只是对基础知识有所帮助.
    • "@" 将内容视为二进制:因此 0100 指向 D256(因为 0100 二进制 = 256 十进制)。并且 * 将内容视为 BCD,因此 BCD 中的 0100 转换为十进制的 4,因此指向 D004(因为 0100 BCD = 十进制的 4)不是吗?为什么 * 将内容视为十六进制,然后转换为二进制并作为 BCD?困惑。
    【解决方案2】:

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

    【讨论】:

    • 这也是正确的,但在与问题不同的上下文中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-06
    • 2011-04-07
    • 2014-05-11
    • 1970-01-01
    • 1970-01-01
    • 2022-12-22
    • 2010-09-29
    相关资源
    最近更新 更多