step7-pro
голосование
Чего не хватает сайту
поиска
новых статей
статей о подключении оборудования
примеров решения задач
форума
ничего не нужно
поиск


новости
Появился поиск по сайту. Обещаю его улучшить и сделать более адекватным
--------------11.10.11
Новая гостевая книга надеюсь избавит от спама. Еще немного и появится поис и многое другое
--------------11.07.11
C НАСТУПАЮЩИМ НОВЫМ ГОДОМ И РОЖДЕСТВОМ!
--------------30.12.10
Новые статьи по системным функциям и блокам
--------------25.12.10
Теперь у нас новый дизайн, конечно не супер но надеюсь всем понравиться
--------------05.12.10
Форум закрыт по причине ненадобности
--------------08.09.10
Гостевая книга временно отключена из спама
--------------15.10.10
Наш форум forum.step7-pro.ru общайтесь на здоровье!
--------------03.06.10
Наш сайт в twitter Вы сможете подписаться на рассылку новостей и узнавать о новых статьях на нашем сайте.
--------------20.03.10
После долгого перерыва наш сайт снова начал работать
--------------26.02.10
реклама

 

Сжатие памяти пользователя с помощью SFC25 "COMPRESS"

Пропуски могут возникать как в рабочей, так и в загрузочной памяти вследствие многократного удаления и повторной загрузки блоков. Эти пропуски сокращают эффективную область памяти. Немного напоминает дефрагментацию дисков )))

С помощью SFC 25 .COMPRESS. Вы запускаете сжатие раздела ОЗУ как рабочей, так и загрузочной памяти. Функция сжатия здесь та же самая, что и при внешнем запуске в режиме RUN.P (положение переключателя режимов работы).

Если сжатие было запущено извне и все еще активно, то вызов SFC25 приведет к появлению сообщения об ошибке.

Примечание
Блоки данных, имеющие длину более 1000 байтов, не сдвигаются функцией SFC25 "COMPRESS". Это значит, что после сжатия в рабочей памяти могут остаться пропуски.

 

 

Параметр Описание Тип данных Область памяти Характеристика
RET_VAL OUTPUT INT I, Q, M, D, L Информация об ошибке
BUSY OUTPUT BOOL I, Q, M, D, L Показывает, активна ли еще функция сжатия, запущенная вызовом SFC25. (1 означает, что активна)
DONE OUTPUT BOOL I, Q, M, D, L Показывает, успешно ли завершился процесс сжатия, который был запущен посредством SFC 25 (1 означает .успешно.).

 

Проверка функции сжатия

При однократном вызове SFC 25 .COMPRESS. запускается функция сжатия; однако Вы не можете проверить, успешно ли выполнилось сжатие. Если Вы хотите проверить функцию сжатия, выполните описанные ниже шаги:
Вызовите SFC25 циклически. После каждого вызова сначала оценивайте параметр RET_VAL. Если его значение равно 0, можно оценить параметры BUSY и DONE. Если BUSY = 1, а DONE = 0, то это указывает, что функция сжатия еще активна. Когда BUSY примет значение 0, а DONE - значение 1, то это указывает, что функция сжатия успешно завершена. Если потом вновь вызвать SFC 25, то вновь запустится сжатие.

 

Информация об ошибках

Код ошибки (W#16#...) Объяснение
0000 Ошибок не было. Функция сжатия была запущена SFC 25. Только в этом случае имеет смысл оценивание в программе пользователя выходных параметров BUSY и DONE (читаем чуть выше ).
8091 Функция сжатия была запущена извне и еще активна
8092

Функция .Сжатие памяти пользователя. в данный момент не может быть выполнена, так как

  • была запущена извне и все еще активна функция "Удаление блока данных"
  • функция тестирования и запуска в настоящее время требует конкретного блока (например, статус)
  • была запущена извне и все еще активна функция "Копирование блоков"
  • основной контроллер выполняет функции соединения или обновления

 

 

Передача заменяющего значения в аккумулятор 1 с помощью SFC44 "REPL_VAL"

С помощью SFC44 "REPL_VAL" (replace value [заменить значение]) Вы передаете значение в аккумулятор 1 класса приоритета, вызвавшего ошибку.

Ограничение: только в OB синхронных ошибок

Вы можете вызывать SFC 44 .REPL_VAL. только в OB синхронных ошибок (OB121, OB122).

Пример применения

Если модуль ввода поврежден до такой степени, что из него более нельзя считывать значения, то при каждом обращении к этому модулю запускается OB122. В ОВ122 с помощью SFC44 "REPL_VAL" в аккумулятор 1 прерванного класса приоритета может быть передано подходящее значение, так что программа может продолжать работу с этим заменяющим значением. Информация, нужная для выбора заменяющего значения (например, блок, в котором встретилась ошибка, или поврежденный операнд), находится локальных переменных OB122.

 

 

Параметр Описание Тип данных Область памяти Характеристика
VAL INPUT DWORD I, Q, M, D, L, константа Заменяющее значение
RET_VAL OUTPUT INT I, Q, M, D, L Если во время обработки функции встретилась ошибка, то возвращаемое значение содержит код ошибки

 

Информация об ошибках

Код ошибки (W#16#...) Объяснение
0000 Ошибок не было. Было введено заменяющее значение
8080

SFC44 не вызывался ни одним из ОВ синхронных ошибок (OB121, OB122)

 

<-- Предыдущая статья   Следующая статья -->
сделано djoni политика конфидициальности Rambler's Top100