Программисту СПЛК доступны два типа регистра. Это регистр аккумулятора и регистр состояния. Контролеры Simatic располагают двумя тридцатидвухразрядными аккумуляторами и регистром состояния. Каждый из аккумуляторов разделяются еще на два шестнадцатиразрядных аккумулятора. При записи и чтение аккумулятора информация перемещается по принципу стека: последний записанный считывается первой.
31 АккI 0 31 АккII 0
АккII 0
Рисунок 20 - Регистры аккумулятора
Примеры обработки информации аккумулятора.
Обработка 32 разрядов:
L MD 20 //загрузка в аккумулятор АккI первый раз
L MD 24 // загрузка в аккумулятор АккI второй раз
T MD 40 //выгрузить из аккумулятора АккI по адресу MD40
В этом примере данные из адреса MD 24 будут перемещены по адресу MD 40
Обработка 16 разрядов:
L MW 20 //загрузка в аккумулятор АКК1 первый раз
L MW 22 //загрузка в аккумулятор АКК1 второй раз
L MW 24 //загрузка в аккумулятор АКК1 третий раз
L MW 26 //загрузка в аккумулятор АКК1 четвертый раз
L MW 28 //загрузка в аккумулятор АКК1 пятый раз
|
|
T MW 40 //выгрузить из аккумулятора АКК1 по адресу MW40
T MW 42 //выгрузить из аккумулятора АКК1 по адресу MW42
В этом примере по адресу MW40 запишутся данные из МW28, по адресу MW42 запишутся данные из МW26. Данные, записанные из адресаMW 20 в аккумулятор в результате пятикратной записи в аккумулятор, просто исчезают, то есть остаются только в своем исходном месте.
Все арифметические операции и логические операции над словами осуществляются через аккумуляторы. Следующий пример это демонстрируют:
L MD 20 // Вычисление по следующей формуле:
SIN
T MD20 //
L MD 20
L MD 28
+R
T MD 40
L MD 40
L MD 24
*R
T MD 44
В этом примере используются алгебраические операции над числами с плавающей запятой, длиной 32 разряда.
Регистр состояния предназначен для хранения логических результатов операции и результатов операций в аккумуляторе.Регистр состояния тридцатидвухразрядный, однако, используется из них только 9 – рисунок 21.
28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | |
BR | CC1 | CC0 | OV | OS | OR | STA | RLO | FC |
Рисунок 21 - Регистр состояния
Здесь: FC - бит первичного опроса, имеет активное инверсное значение.
RLO - результат логической операции.
STA - сохранение значений бита, который обрабатывается командой. Этот бит не используется командой, а используется только для тестирования программы.
OR - бит сохранения результата логической операции И перед ИЛИ.
OV- бит переполнения, устанавливается в единицу командами с плавающей запятой.
OS - бит сохранения переполнения, сохраняет значения бита OV предыдущих арифметических действий. Остается установленным и после устранения ошибки. Сбрасывается, если исполняемая команда JOS или команда конца блока.
|
|
СС1,СС2- коды условия, которые принимают различные комбинации по результатам арифметической операции, по результатам сравнения, по результат цифровой операции. В эти биты перемещаются биты, выдвинутые операцией сдвига и циклического сдвига.
BR- бит двойного результата, образует связь между обработкой битов и слов. Эффективно используется как признак успешного завершения подпрограммы. В конце подпрограммы сохраняется результат логического этапа в бите. В основной программе проверяется этот бит для продолжения основной программы.