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

 

Внесение записи данных с помощью SFC58 "WR_REC"

С помощью SFC58 .WR_REC. (write record [внести запись]) Вы передаете запись данных, содержащуюся в RECORD, адресуемому модулю. Вы запускаете задание на запись, присваивая входному параметру REQ значение 1 при вызове SFC58. Если задание на запись смогло выполниться немедленно, то SFC возвращает в выходном параметре BUSY значение 0. Если BUSY имеет значение 1, то задание на запись еще не завершено.

 

Параметр Описание Тип данных Область памяти Характеристика
REQ INPUT BOOL I, Q, M, D, L,
константа
REQ = 1: запрос на запись
IOID INPUT BYTE I, Q, M, D, L,
константа
Идентификатор адресной области:
B#16#54 = периферийный вход (PI)
B#16#55 = периферийный выход (PQ)
Если модуль смешанный, то укажите идентификатор области самого младшего адреса. Если адреса одинаковы, укажите B#16#54.
LADDR INPUT WORD I, Q, M, D, L,
константа
Логический адрес модуля. У смешанных модулей указывайте младший из двух адресов.
RECNUM INPUT BYTE I, Q, M, D, L, константа Номер записи данных (допустимые значения: от 2 до 240)
RECORD INPUT ANY I, Q, M, D, L Запись данных. Допустимым является только тип данных BYTE.
RET_VAL OUTPUT INT I, Q, M, D, L Если ошибка появляется, когда функция активна, то возвращаемое значение содержит код ошибки.
BUSY OUTPUT BOOL I, Q, M, D, L BUSY = 1: процесс записи еще не закончен.

Входной параметр RECORD

Передаваемые данные читаются из параметра RECORD при первом вызове SFC. Если передача записи данных длится дольше, чем вызов, то содержимое параметра RECORD больше не является релевантным для последующих вызовов SFC (для того же самого задания).

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

Смотри раздел "Считывание записей данных с помощью функции SFC 59 "RD_REC".

 

Примечание (только для S7-400)
Если происходит общая ошибка W#16#8544, то это показывает только то, что был заблокирован доступ по крайней мере к одному байту области памяти входов/выходов, содержащей запись данных. Передача данных была продолжена.

 

 

Чтение записи данных с помощью SFC59 "RD_REC"

С помощью SFC59 "RD_REC" (read record [читать запись]) Вы считываете запись данных с номером RECNUM из адресуемого модуля. Задание на чтение запускают, вызывая SFC59 и присваивая входному параметру REQ значение 1. Если задание на чтение может быть выполнено немедленно, то SFC возвращает в выходном параметре BUSY значение 0. Если BUSY имеет значение 1, то задание на чтение еще не завершилось. Считываемая запись данных вводится в область назначения, указанную параметром RECORD, если передача данных была свободна от ошибок.

 

Примечание
Если Вы считываете запись данных с номером выше 1 из FM или CP, купленного до февраля 1997 (называемого ниже "старым модулем"), то реакция SFC59 отличается от реакции в случае нового модуля. Эта особая ситуация описана в разделе "Использование старых FM и CP S7-300 с номерами записей данных выше 1".

 

Примечание
Нижеследующее относится к CPU S7-400 более низкой версии, чем показано в таблице ниже: Если область назначения меньше, чем считываемая запись данных, то в RET_VAL вводится W#16#80B1, а область назначения остается неизменной. Если длина области назначения и длина считываемой записи данных одинаковы, то в RET_VAL вместо значения 0 (нет ошибки) вводится длина записи данных в виде положительного значения.

 

CPU Заказной номер Версия (или выше)
CPU 412-1 6ES7412-1XF01-0AB0 03
CPU 413-1 6ES7413-1XG01-0AB0 03
CPU 413-2DP 6ES7413-2XG01-0AB0 03
CPU 414-1 6ES7414-1XG01-0AB0 03
CPU 414-2DP 6ES7414-2XG01-0AB0 03
CPU 414-2DP 6ES7414-2XJ00-0AB0 03
CPU 416-1 6ES7416-1XJ01-0AB0 03
CPU 416-2DP 6ES7416-2XK00-0AB0 03
CPU 416-2DP 6ES7416-2XL00-0AB0 03

 

 

 

Параметр Описание Тип данных Область памяти Характеристика
REQ INPUT BOOL I, Q, M, D, L,
константа
REQ = 1: запрос на запись
IOID INPUT BYTE I, Q, M, D, L,
константа
Идентификатор (ID) адресной области:
B#16#54 = Периферийный вход (PI)
B#16#55 = Периферийный выход (PQ)
Если модуль смешанный, то задайте ID области с наименьшим адресом. Если адреса одинаковые, то задайте B#16#54.
LADDR INPUT WORD I, Q, M, D, L, константа Логический адрес модуля. В случае смешанных модулей задайте меньший из двух адресов.
RECNUM INPUT BYTE I, Q, M, D, L, константа Номер записи данных (разрешенные значения от 0 до 240)
RET_VAL OUTPUT INT I, Q, M, D, L Если в то время, когда функция активна, происходит ошибка, то возвращаемое значение содержит код ошибки. Если область назначения больше, чем переданная запись данных, и при передаче не было ошибок, то вводится также длина фактически переданной записи данных в байтах (возможные значения: от +1 до +240).
BUSY OUTPUT BOOL I, Q, M, D, L BUSY = 1: Чтение еще не закончилось
RECORD OUTPUT ANY I, Q, M, D, L Область назначения для считываемой записи данных. В случае асинхронного выполнения SFC59 убедитесь, что фактические параметры RECORD имеют одинаковую информацию о длине во всех вызовах. Разрешен только тип данных BYTE

Выходной параметр RET_VAL

 

Примечание
ошибка W#16#8545, то это указывает только на то, что был блокирован доступ, по крайней мере, к одному байту области памяти входов/выходов, содержащей запись данных. Запись данных была правильно считана модулем и записана в область памяти входов/выходов.

 

Установка RECORD

Примечание
Если Вы хотите гарантировать, чтобы всегда читалась полная запись данных, то выберите область назначения длиной 241 байт. Если передача данных свободна от ошибок, то RET_VAL содержит фактическую длину записи данных.

Использование старых FM и CP S7-300 с номерами записей данных выше 1

Если Вы хотите считывать с помощью SFC59 "RD_REC" запись данных с номером выше 1 из старого FM S7-300 или старого CP S7-300, то помните о следующем:

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

"Реальные" данные об ошибках (коды ошибок W#16#8xyz) в следующей таблице могут быть разделены на два класса:

 

Примечание
Если Вы передаете записи данных ведомому устройству DPV1 с помощью SFC58 "WR_REC" или, если Вы выбираете записи данных из ведомого устройства DPV1 подчиненный с SFC59 "RD_REC", и если это устройство DPV1 функционирует в режиме DPV1, то ведущее устройство DP проверяет информацию об ошибках, которую оно получает от ведомого устройства DPV1, следующим образом:
Если код ошибки лежит в диапазонах W#16#8000 . W#16#80FF или W#16#F000 . W#16#FFFF, то ведущее устройство DP передает информацию об ошибках в SFC. Если код ошибки лежит вне указанных диапазонов, то CPU передает значение W#16#80A2 в SFC и приостанавливает ведомое устройство.
Для описания информации об ошибках, полученной от DPV1-устройства, см. раздел "Получение прерывания от ведомого устройства DP с помощью SFB 54 "RALRM" STATUS (состояние) [3].

 

Специальная информация об ошибках для SFC58 "WR_REC" и SFC59 "RD_REC".

Код ошибки (W#16#...) Объяснение Ограничение
7000 Первый вызов с REQ=0: Передача данных не активна; BUSY имеет значение 0.  
7001 Первый вызов с REQ=1: Передача данных не активна; BUSY имеет значение 1. Децентрализованная периферия
7002 Промежуточный вызов (REQ не имеет значения): Передача данных уже активна; BUSY имеет значение 1. Децентрализованная периферия
8090 Задан недействительный логический базовый адрес: Нет назначения в SDB1/SDB2X или нет базового адреса  
8092 Тип, указанный в ссылке ANY, не BYTE. Только S7-400
8093 Этот SFC не разрешен для модуля, определяемого LADDR и IOID (разрешены следующие модули: модули S7-300 для S7-300, модули S7-400 для S7- 400, модули S7-DP для S7-300 и S7-400).  
80A0 Отрицательное подтверждение при считывании из модуля
• модуль был снят во время задания на чтение или неисправен;
• для Н-систем: односторонние I/О резервного CPU недоступны (напр., резервный CPU в режиме STOP).
Только в случае SFC59 "RD_REC"
80A1 Отрицательное подтверждение при передаче записи данных в модуль
• модуль был снят во время задания на чтение или неисправен;
• для Н-систем: односторонние I/О резервного CPU недоступны (напр., резервный CPU в режиме STOP).
Только в случае SFC58 "WR_REC"
80A2 Ошибка протокола DP на уровне 2, возможно, неисправность аппаратуры. Децентрализованная периферия
80A3 Ошибка протокола DP в случае преобразователя данных с прямым каналом передачи данных или пользовательского интерфейса/пользователя. Возможно, неисправность аппаратуры. Децентрализованная периферия
80A4 Ошибка связи в коммуникационной шине Ошибка происходит между CPU и внешним интерфейсным модулем DP
80B0 • SFC недопустим для типа модуля.
• Модуль не распознает запись данных.
• Номер записи данных ≥ 241 не разрешен
• В случае SFC58 (WR_REC) записи данных 0 и 1 не разрешены.
 
80B1 В параметре RECORD задана неправильная длина • Для SFC58 "WR_REC": неправильная длина
• Для SFC59 "RD_REC" (только при использовании старых FM S7-300 и CP S7-300): длина > длины записи
• Для SFC13 "DPNRM_DG": длина < длины записи
80B2 Сконфигурированный слот не занят  
80B3 Фактический тип модуля не совпадает с типом модуля, требуемым в SDB1  
80C0 В случае SFC59 (RD_REC): Модуль имеет запись данных, но все еще нет данных, которые нужно считывать.
В случае SFC13 (DPNRM_DG): Нет доступных диагностических данных
Только в случае SFC59 (RD_REC) или для SFC13 "DPNRM_DG"
80C1 Данные предыдущего задания на запись для той же самой записи данных в модуле еще не были обработаны модулем  
80C2 Модуль в настоящее время обрабатывает максимально возможное для CPU количество заданий  
80C3 Требуемые ресурсы (память и т.д.) в настоящее время заняты  
80C4 Внутренняя нерегулярная ошибка. Функция не может быть выполнена.
• Повторите запуск задачи. При частом повторении ошибки проверьте Вашу систему на предмет электрических помех.
 
80C5 Децентрализованная периферия недоступна Децентрализованная периферия
80C6 Передача записи данных была остановлена вследствие прерывания класса приоритета (горячий рестарт или фоновый режим) Децентрализованная периферия

 

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