Перемещение данных 

Перемещение данных

2.8.2

Числа часто требуется перемешать из одного места в другое; например, может потребоваться изменить значение уставки таймера в соответствии с условиями работы объекта; или переслать данные счетчика на выходную плату для их индикации на цифровом табло; или результат некоторых вычислений использовать в какой-либо другой части программы.

PLC-5 семейства Allen Bradley для операции переноса использует одно звено, и, по-видимому, это простейший случай, с которого следует начать объяснение. Простота использования одного звена на операцию распространяется на все арифметические функции, которые мы будем рассматривать, но иногда по сравнению с другими машинами для данной операции может потребоваться большее количество звеньев.

На рис. 2.37 (о) изображен вид звена. Его работа начинается с проверки некоторых условий в двоичной форме; если все эти условия выполнены, вырабатывается команда MOV (от move — переместить), приказывающая перенести данные от их источника по адресу назначения. Источник и пункт назначения могут быть любыми местами размещения числовых данных, например:

Уставка счетчика или таймера, например С5:17.PRE или
Т4:52. PRE
Накопленное значение счетчика
или таймера, например С5:22.АСС или
Т4.-6.АСС
Входные или выходные данные (WORD), например 1:23 (плата 3 в стойке 2, все 16 бит) или 0:47 (плата 7 « в стойке 4, все 16 бит)

Заметим, что все эти данные представляются в двоичной форме. Если требуется двоично-десятичное представление, то могут быть использованы инструкции FRD и TOD (см. рис. 2.36).

Внутреннее ЗУ для целых чисел, например N7:24
Внутреннее ЗУ для чисел
с плавающей точкой, например F8:32

Рис. 2.37. Перемещение данных в ПЛК: (a) Allen Bradley; (б) Siemens; (в) GEM-80

Если данные переносятся из источника, где они хранятся в формате целого числа, в пункт назначения, где данные имеют вид чисел с плавающей точкой, то преобразование выполняется автоматически. Однако следует соблюдать осторожность, если переносимые данные связаны с преобразованием чисел с плавающей точкой (в источнике) в целые числа (в пункте назначения). В данном случае может возникнуть ошибка, если число в формате с плавающей точкой находится вне диапазона целого числа. И наконец, в качестве источника может служить обычная константа (например, 3, 17 или 4057).

На рис. 2.37 (а) приведен пример, когда в случае выполнения условий срабатывания данного звена число, хранящееся по адресу N7:34, пересылается в качестве уставки таймера по адресу Т4:6.

В ПЛК Siemens и GEM используется несколько отличный способ пересылки, который делает программу более компактной и уменьшает ошибки округления за счет менее очевидного выполнения действий. Оба этих типа ПЛК осуществляют перемещение данных с помощью двух отдельных инструкций через специальный аккумулятор (ячейку хранения одного слова). В ПЛК Siemens для перемещения данных из источника в аккумулятор используется инструкция Load, а для перемещения данных из аккумулятора по месту назначения — инструкция Transfer, как показано на рис. 2.37 (б). Данные могут быть взяты из любой области памяти (или направлены в такую область); вот некоторые из таких областей:

iW — 16-битовое входное слово QW— 16-битовое выходное слово Т— слово таймера С— слово счетчика

DW— 16-битовое слово в ячейке памяти данных

Так, для рис. 2.37 (б) можно написать следующую программу:

:LТ113(переслать значение таймера в аккумулятор) :ТDW45(из аккумулятора в слово данных 45)

В GEM-80 использование аккумулятора не столь очевидно. При помощи инструкции —<AND>— двоичное число помещается из определенного места (из внутреннего ЗУ или входной/выходной платы) в звено, а инструкция —<OUT>— служит для пересылки числа из звена по определенному адресу. На рис. 2.37 (в) двоичное число из 16-битового входного слова А12 помещается в 16-битовую ячейку памяти G24. Преобразование из двоично-десятичного формата в двоичный и наоборот осуществляется с помощью инструкций —<BCDIN>— и -<BCDOUT>— (направление преобразования очевидно).

Различие между рис. 2.37 (б, в) и рис. 2.37 (о) станет понятным, когда мы рассмотрим арифметические операции в разд. 2.8.4.

В ABB Master точки, между которыми осуществляется перенос данных, просто соединяются между собой на логической схеме.