Что означает знак "@" (Omron PLC)? - PullRequest
       29

Что означает знак "@" (Omron PLC)?

2 голосов
/ 17 февраля 2012

Что означает знак " @ " в лестничном программировании? Документация объясняет, что @ определяет косвенный адрес DM в двоичном режиме ... смещение области памяти : что это означает на самом деле?

Рассмотрим следующее изображение из документации:

enter image description here

Как содержимое адреса (16 бит или десятичное 32767) может стать словом адреса? Например, если адрес CIO 0 имеет содержимое 000000001000000 : при добавлении знака @ CIO 0 изменяется на 000000001000000 ? Что именно движется в приведенной выше инструкции?

Ответы [ 2 ]

3 голосов
/ 17 февраля 2012

Работает только для DM (Data Memory). Существует много областей памяти ПЛК Omron. CIO обычно используется только для битов ввода / вывода. W (работа) используется для хранения битов рабочей памяти (например, ОЗУ), 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], то инструкция MOV к @ D300 переместит данные в D256 (шестнадцатеричный 0100). Вы также можете использовать модификатор *, чтобы сделать [MOV # 1 * D300], и это будет относиться к 0100, сохраненному в D300, как к значению BCD - другими словами, вместо указания на D256 оно будет указывать на D100!

Использование указателей позволяет вам не изменять инструкцию MOV, например, если вы хотите направить значение в ряд различных мест в разных условиях. Если вы хотите перенаправить движение памяти на другой адрес, вы просто обновите значение адреса, хранящееся в D300.

Обратите внимание, что символ @ может означать другие вещи с мнемоникой - @LD, например, означает дифференциальный контакт UP!

1 голос
/ 10 июля 2012

Знак @ в функции в Omron PLC означает, что она работает только на переднем фронте. Например, с более старыми ПЛК @INC или с более новыми ПЛК @ ++ означает увеличение канала на 1 по переднему фронту. Функция ++ в более новых ПЛК является двоичной, а функция INC в более старых ПЛК - BCD.

...