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
реклама

Генерация блоков данных в загружаемой памяти с помощью SFC82 "CREA_DBL"

С помощью SFC82 "CREA_DBL" (create date block in load memory [создание DB в загружаемой памяти]) Вы можете создать новый блок данных в загружаемой памяти (Memory Card . карта памяти). SFC82 генерирует DB с размером, заданным по умолчанию, и с номером из специального ряда. Функция SFC82 назначает наименьший из возможных номеров блоку. Вы можете задать номер DB путем назначения данного номера верхнему и нижнему граничным значениям для вышеуказанного специального ряда номеров. Невозможно задать уже используемый номер DB. Если уже существует блок с данным номером в рабочей памяти и/или загружаемой памяти, то будет выдано сообщение об ошибке.

Примечание
С помощью SFC24 "TEST_DB" Вы можете определить, существует ли уже DB с заданным номером.

 

Содержание области данных, на которую указывает параметр SRCBLK записывается в DB. Эта область данных должна быть DB с типом данных BLOCK_DB или областью из DB. Чтобы обеспечить корректность, Вы не должны изменить(заменить) эту область данных, во время работы SFC 82. С помощью SFC 82 может быть создан и инициализирован DB с атрибутом READ_ONLY. SFC 82 не изменяет контрольную сумму программы пользователя.

Принцип работы

SFC82 "CREA_DBL" работает асинхронно, т.е. время ее работы может перекрывать несколько вызовов функции. Запуск функции SFC82 осуществляется с REQ =1.
Состояние работы функции можно контролировать с помощью выходных параметров RET_VAL и BUSY.
Также для асинхронно работающих функций контролируйте значения REQ, RET_VAL и BUSY.

Параметр Описание Тип данных Область памяти Характеристика
REQ INPUT BOOL I, Q, M, D, L REQ = 1: Запрос на генерацию блока данных
LOW_LIMIT INPUT WORD I, Q, M, D, L Наименьший номер для последовательности номеров из ряда для назначения вновь создаваемым DB
UP_LIMIT INPUT WORD I, Q, M, D, L Наибольший номер для последовательности номеров из ряда для назначения вновь создаваемым DB
COUNT INPUT WORD I, Q, M, D, L Значение счетчика определяет количество байтов данных, которые резервируются для DB. Здесь необходимо определить четное число байтов.
ATTRIB INPUT BYTE I, Q, M, D, L Характеристики DB:
Бит 0 = 1 UNLINKED: (несвязанный): DB существует только в загружаемой памяти
Бит 1 = 1 READ_ONLY: (только чтение): DB защищен от записи
Бит 2 = 1 NON_RETAIN: (реманентность): DB нереманентный
Бит 3 . 7 Резерв
SRCBLK INPUT ANY D Указатель на область данных, в которой DB инициализирован
RET_VAL OUTPUT INT I, Q, M, D, L Код ошибки
BUSY OUTPUT BOOL I, Q, M, D, L BUSY = 1: (состояние работы): Процесс не завершен
DB_NUM OUTPUT WORD I, Q, M, D, L Номер сгенерированного DB

 

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

Код ошибки (W#16#...) Объяснение
0000 Ошибок не было
0081 Область назначения (целевая) больше области исходной (источника). Исходная информация полностью записывается в область назначения. Свободные байты области назначения заполняются нулями
7000 Первый вызов с REQ=0: передача данных не активирована; параметр BUSY имеет значение 0
7001 Первый вызов с REQ=1: передача данных не активирована; параметр BUSY имеет значение 1
7002 Промежуточное обращение (REQ незначащий): передача данных уже активирована; BUSY имеет значение 1
8081 Область назначения (целевая) меньше области исходной (источника). Область назначения полностью заполняется. Непоместившаяся в ней часть исходной информации игнорируется.
8091 Имеются вложенные вызовы функции SFC82
8092

Генерация DB не выполняется, т.к.:

  • активирован процесс сжатия памяти приложения
  • H CPU выполняет функции соединения или обновления
  • крах системы Windows NT (синий экран)
8093 Для параметра SCRBLK нет блока или нет соответствующего выполняемого блока (параметр инициализации блока)
8094 Еще не поддерживается атрибут, который был определен для параметра ATTRIB
80A1

Ошибка нумерации DB:

  • номер блока равен 0
  • минимальный номер для диапазона номеров больше максимального
80A2

Ошибка размера DB:

  • длина блока равна 0
  • длина блока равна нечетному числу
  • размер блока больше максимально допустимого для CPU
80B1 Нет свободных номеров для DB
80B2 Недостаточно свободной памяти
80B3 Недостаточно непрерывной памяти (необходимо провести сжатие)
80BB Недостаточно загружаемой памяти
80C0 Область назначения используется в настоящее время другой функцией SFC или функцией связи
80C3 В настоящее время требуемые ресурсы недоступны
8xyy

Общая ошибка программы, например:

  • исходный DB не существует или доступен только в виде копии
  • исходная область в DB не существует

 

 

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