Удаление блока данных с помощью SFC23 "DEL_DB"
С помощью SFC 23 .DEL_DB. (delete data block) Вы удаляете блок данных, находящийся в рабочей памяти, и, если имеется, в загрузочной памяти CPU. Удаляемый DB не должен быть открыт ни в текущем, ни в каком-либо более низком классе приоритета, иными словами, он не должен быть внесен ни в один из двух регистров DB, ни в В-стек. В противном случае контроллер при вызове SFC 23 переходит в состояние STOP. Следующая таблица поясняет, когда DB может быть удален с помощью SFC23 "DEL-DB".
Если... | то... |
---|---|
DB был создан путем вызова SFC22 "CREAT_DB" | SFC23 может его удалить |
DB был передан в CPU посредством STEP 7 и не был создан с ключевым словом UNLINKED | SFC23 может его удалить |
DB находится на флэш-карте | SFC23 не может его удалить |
Возможность прерывания
SFC23 "DEL_DB" может быть прерван более высокими классами приоритета. Если этот SFC вызывается там вновь, то этот второй вызов прерывается и в RET_VAL записывается W#16#8091
Параметр | Описание | Тип данных | Область памяти | Характеристика |
---|---|---|---|---|
DB_NUMBER | INPUT | WORD | I, Q, M, D, L, константа | Номер удаляемого DB |
RET_VAL | OUTPUT | INT | I, Q, M, D, L | Информация об ошибке |
Информация об ошибках
Код ошибки (W#16#...) | Объяснение |
---|---|
0000 | Ошибок не было |
8091 | Вызовы SFC23 были вложенными, и была превышена максимальная глубина вложения для используемого контроллера |
8092 |
Функция .Стирание DB. в данный момент не может быть выполнена, так как
|
80A1 |
Ошибка во входном параметре DB_NUMBER: выбранный фактический параметр
|
80B1 | DB с заданным номером в CPU не существует |
80B2 | DB с заданным номером был создан с ключевым словом UNLINKED |
80B3 | DB находится на флэш-карте |
80B4 | DB не может быть удален, так как является блоком F-библиотеки |
80C1 | Функция уничтожения DB "Delete DB" не может быть выполнена в настоящее время из-за временного критического состояния параметров |
Тестирование блока данных с помощью SFC24 "TEST_DB"
С помощью SFC24 "TEST_DB" (test data block [тестировать блок данных]) Вы получаете информацию о блоке данных, находящемся в рабочей памяти CPU. SFC запрашивает сведения о количестве байтов данных в выбранном DB и проверяет, защищен ли DB от записи.
Параметр | Описание | Тип данных | Область памяти | Характеристика |
---|---|---|---|---|
DB_NUMBER | INPUT | WORD | I, Q, M, D, L, константа | Номер тестируемого DB |
RET_VAL | OUTPUT | INT | I, Q, M, D, L | Информация об ошибках |
DB_LENGTH | OUTPUT | WORD | I, Q, M, D, L | Количество байтов данных, которое содержит выбранный DB |
WRITE_PROT | OUTPUT | BOOL | I, Q, M, D, L | Информация о признаке защиты выбранного DB от записи (1 означает, что он защищен от записи) |
Информация об ошибках
Код ошибки (W#16#...) | Объяснение |
---|---|
0000 | Ошибок не было |
80A1 |
Ошибка во входном параметре DB_NUMBER: выбранный фактический параметр
|
80B1 | DB с заданным номером в CPU не существует |
80B2 | DB с заданным номером был создан с ключевым словом UNLINKED |
<-- Предыдущая статья | Следующая статья --> |