# Память | Типовые задачи Предыдущий Следующий

## Общие сведения Наименование: MEMORY. Тип выхода: логический. Количество входов: 3. ## Примечания по входам •порядок входов: «S-вход», «Номер ячейки», «R-вход»; •вход «Номер ячейки» может принимать целые значения от 0 до 199 (при работе с ПР1) или от 0 до 799 (при работе с ПР2). ## Функционирование •хранение осуществляется в энергонезависимой памяти; •значение всех специальных ячеек памяти, в которые ранее не записывалась информация, равно логическому нулю; •специальные ячейки являются энергонезависимыми и восстанавливают свое логическое состояние после сбоев питания (выход алгоблока также восстанавливает свое логическое состояние); •в специальную ячейку памяти Контроллера с указанным во втором входе номером («Номер ячейки») записывается и на выход алгоблока устанавливается логическая единица, если значение первого входа («S-вход») равно логической единице; •в специальную ячейку памяти Контроллера с указанным во втором входе номером («Номер ячейки») записывается и на выход устанавливается логический нуль, если значение третьего входа («R-вход») равно логической единице, и значение первого входа («S-вход») равно логическому нулю; •недостоверное значение или неинициализированное состояние на третьем входе («R-вход») приравнивается к значению логического нуля; •запись в специальную ячейку памяти Контроллера не будет производиться, и выход будет иметь неинициализированное состояние, если первый и/или второй вход имеет неинициализированное состояние; •запись в специальную ячейку памяти Контроллера не будет производиться, и выход будет иметь недостоверное значение, если первый и/или второй вход имеет недостоверное значение (даже если другой вход имеет неинициализированное состояние). ## Примеры использования BLOCK1 = MEMORY(DI1.1; 0; DI1.2) // Если DI1.1 = 1, то в ячейку памяти 0 записывается единица BLOCK3 = MEMORY(BLOCK1; BLOCK2; BLOCK5) // использование в аргументах значений алгоблоков // ======================================= // Реализация блокировки с памятью B10 = OR(DI1.1; DI1.2; DI1.3; DI1.4) // Формула блокировки B20 = OR(DI11.1; DI12.1) // Формула снятия блокировки B30 = DELAY(B10; 10; 1) // Задержка включения блокировки на 1 с B40 = MEMORY(B30; 0; B20) // Запись в энергонезависимую ячейку // состояния блокировки B50 = RESULT(DO1.1; B40) B60 = PHY_DSC(DO1.1) // Установка состояния // (логического и физического) дискретного выходного канала Файл для импорта: block_mem.help