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

 

Считывание информации из блока данных в загружаемой памяти с помощью SFC83 "READ_DBL"

С помощью SFC83 "READ_DBL" (read date block in load memory [чтение DB в загружаемой памяти]) Вы можете считывать данные из DB типа BLOCK_DB или из DB в загружаемой памяти (Memory Card . карта памяти) в область назначения DB (DB назначения). DB назначения должен быть выполняемым (иметь атрибут UNLINKED = 0). Исходная область, из которой производится считывание не обязательно должна быть связанной (может иметь атрибут UNLINKED = 1). Содержимое загружаемой памяти не изменяется в процессе выполнения операции чтения.

Для корректной работы функции нельзя изменять область назначения во время работы SFC83.
На параметры SRCBLK и DSTBLK накладываются следующие ограничения:

При необходимости Вы можете определить размер исходной области с помощью функции SFC24 "TEST_DB".

 

Примечание
Функция SFC83 может работать асинхронно, поэтому следует избегать частого чтения переменных из загружаемой памяти.

 

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

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

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

 

Параметр Описание Тип данных Область памяти Характеристика
REQ INPUT BOOL I, Q, M, D, L REQ = 1: Запрос на чтение блока данных
SRCBLK INPUT ANY D Указатель на область данных DB в загружаемой области, из которой производится чтение
RET_VAL OUTPUT INT I, Q, M, D, L Код ошибки
BUSY OUTPUT BOOL I, Q, M, D, L BUSY = 1: (состояние работы): Процесс не завершен
DSTBLK OUTPUT ANY D Указатель на область данных целевого DB

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

Код ошибки (W#16#....) Описание
0000 Ошибок не было
8081 Область назначения (целевая) меньше области исходной (источника). Область назначения полностью заполняется. Непоместившаяся в ней часть исходной информации игнорируется.
7000 Первый вызов с REQ=0: передача данных не активирована; параметр BUSY имеет значение 0
7001 Первый вызов с REQ=1: передача данных не активирована; параметр BUSY имеет значение 1
7002 Промежуточное обращение (REQ незначащий): передача данных уже активирована; BUSY имеет значение 1
0081 Область назначения (целевая) больше области исходной (источника). Исходная информация полностью записывается в область назначения. Значения свободных байтов области назначения не изменяются
80C0 Область назначения используется в настоящее время другой функцией SFC или функцией связи
8093 Для параметра SCRBLK нет блока или нет соответствующего выполняемого блока (параметр инициализации блока)
80B1 Для параметра DSTBLK нет блока или нет соответствующего выполняемого блока (параметр инициализации блока)
80B4 DB c F-атрибутом не может быть изменен
80C3 В настоящее время требуемые ресурсы недоступны
8xyy Общая ошибка программы

 

Запись блока данных в загружаемой памяти с помощью SFC84 "WRITE_DBL"

С помощью SFC84 "WRITE_DBL" (write date block in load memory [запись DB в загружаемой памяти]) Вы можете записать данные исходного DB в DB типа BLOCK_DB или в область DB в загружаемой памяти (Memory Card . карта памяти). DB в загружаемой памяти (с параметром DSTBLK) может быть выполняемым или невыполняемым. Исходная область, из которой производится считывание, может быть типа BLOCK_DB или DB-содержимым в рабочей памяти, следовательно, исходный DB (с параметром SRCBLK) должен быть связанным (выполняемым), т.е. с параметром UNLINKED = 0. Кроме того, исходный DB может быть сгенерирован с помощью функции SCF22 "CREAT_DB".

Для корректной работы функции нельзя изменять область назначения во время работы SFC84.
На параметры SRCBLK и DSTBLK накладываются следующие ограничения:

При необходимости Вы можете определить размер исходной области с помощью функции SFC24 "TEST_DB". Во время записи загруженного DB при первом входе в него изменяется контрольная сумма пользовательской программы.

 

Примечание
Функция SFC84 может работать асинхронно, поэтому следует избегать частой записи переменных в загружаемой памяти. Частое использование данной функции, кроме того, укорачивает срок службы загружаемой памяти.

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

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

Параметр Описание Тип данных Область памяти Характеристика
REQ INPUT BOOL I, Q, M, D, L REQ = 1: Запрос на запись
SRCBLK INPUT ANY D Указатель на область данных DB, из которой производится чтение
RET_VAL OUTPUT INT I, Q, M, D, L Код ошибки
BUSY OUTPUT BOOL I, Q, M, D, L BUSY = 1: (состояние работы): Процесс не завершен
DSTBLK OUTPUT ANY D Указатель на область данных целевого DB в загружаемой памяти

 

Код ошибки (W#16#....) Описание
0000 Ошибок не было
8081 Область назначения (целевая) меньше области исходной (источника). Область назначения полностью заполняется. Непоместившаяся в ней часть исходной информации игнорируется
7000 Первый вызов с REQ=0: передача данных не активирована; параметр BUSY имеет значение 0
7001 Первый вызов с REQ=1: передача данных не активирована; параметр BUSY имеет значение 1
7002 Промежуточное обращение (REQ незначащий): передача данных уже активирована; BUSY имеет значение 1
0081 Область назначения (целевая) больше области исходной (источника). Исходная информация полностью записывается в область назначения. Значения свободных байтов области назначения не изменяются
80C0 Область назначения используется в настоящее время другой функцией SFC или функцией связи
8092 Крах ОС Windows NT (синий экран)
8093 Для параметра SCRBLK нет блока или нет соответствующего выполняемого блока (параметр инициализации блока)
80B1 Для параметра DSTBLK нет блока или нет соответствующего выполняемого блока (параметр инициализации блока)
80B4 DB c F-атрибутом не может быть изменен
80C3 В настоящее время требуемые ресурсы недоступны
8xyy Общая ошибка программы

 

 

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