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

Общие сведения о FC

Функциональные блоки (FC) поставляются со стандартным пакетом STEP 7. Следующий список содержит номера блоков при их поставке. При желании их можно изменить.

Номер блока Название FC
1 DP_SEND
2 DP_RECV
3 DP_DIAG
4 DP_CTRL
5 AG_SEND
6 AG_RECV
50 AG_LSEND*
60 AG_LRECV*

Примечание:
Функции FC50 (AG_LSEND) и FC60 (AG_LRECV) могут использоваться с коммуникационным процессором PROFIBUS как альтернатива для FC5 и FC6. Разницы в интерфейсе или функционировании нет. При использовании сети Industrial Ethernet, функциональные блоки AG_LSEND и AG_LRECV могут пересылать большие блоки данных (от 240 байт до 8 килобайт). Если при помощи этих FC вы передаете большие объемы данных по Ind. Ethernet, вы также можете использовать их и для работы с PROFIBUS. Однако для PROFIBUS, при использовании этих же FC, вы сможете передавать блоки не более 240 байт.

Указание адреса CP

При вызове FC, в качестве параметра CPLADDR или LADDR вы должны передать начальный адрес коммуникационного процессора PROFIBUS CP. Начальный адрес коммуникационного процессора вы можете найти в диалоговом окне «Hardware Configuration» (конфигурация аппаратуры) (детальный режим – параметр «Address/Input» (адрес/вход)), появляющимся при установке коммуникационного процессора.

Запрос адреса CP

Вы можете получить начальный адрес модуля,по назначению адреса сигнальным модулям в данном слоте. Информация по аналоговым модулям применима и коммуникационному процессору.

Указание области данных в CPU

При вызове FC, вы передаете начальный адрес передачи и размер передаваемой области CPU. Помните, что размер передаваемой области ограничен 240 байтами.

Возвращаемые параметры FC при инициализации CP

При перезапуске системы или перезапуске коммуникационного процессора (после активации переключателя на модуле), выходным параметрам FC присваиваются следующие значения:
• DONE = 0
• NDR = 0
• ERROR = 0
• STATUS = 8180H или 8181H

Реакция на неправильный адрес

Если S7–CPU не может связаться с коммуникационным процессором по указанному адресу модуля, система реагирует одним из перечисленных ниже образов.

Примечание
Коммуникационный процессор PROFIBUS CP адресуется SIMATIC S7 PLC как аналоговый модуль. Это означает, что если указан неправильный адрес, сообщение об ошибке не может быть выдано самой функцией.

 

Причина Реакция / Код
Адрес CP указывает на несуществующий модуль CP или дискретный модуль. CPU остается в режиме STOP по причине системной ошибки.
Адрес CP указывает на модуль с аналоговыми I/O. Возможные коды ошибок в переменной STATUS:
8184H - Ошибка системы
80B0H - Модуль не распознает запись данных.
80C0H - Данные не могут быть прочитаны.
80C3H - Ресурсы недоступны (память).
80D2H - Неправильный локальный базовый адрес.

 

Функции режима DP для S7-300

Следующие функциональные блоки используются для режимов DP-мастер и DP-ВУ в S7–300

FC FC
может использоваться:
Назначение
  DP-мастер DP-ВУ  
DP_SEND X X передача данных
DP_RECV X X получение данных
DP_DIAG X диагностика, запускаемая с
DP-мастер
DP_CTRL X управляющие функции

Следующая диаграмма иллюстрирует использование функций DP_SEND и DP_RECV на DP-мастер и DP-ВУ.

Использование функций DP_SEND и DP_RECV на DP-мастер и DP-ВУ

 

Функциональный блок DP_SEND

Функция DP_SEND посылает данные в коммуникационный процессор (PROFIBUS CP). В зависимости от режима процессора, функция выполняет следующие действия:

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

Интерфейс вызова

Интерфейс вызова

Пример вызова на языке STL

STL


Примечания
call fc 1
CPLADDR:=    
SEND :=    
DONE :=
ERROR :=
STATUS :=

W#16#0120
P#db17.dbx0.0 byte 103
M 99.1
M 99.0
MW 104
//Вызов функции DP_SEND

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

Следующая рисунок переходов иллюстрирует обычную последовательность действий при вызове функции DP_SEND из пользовательской программы. Каждый вызов DP_SEND из пользовательской программы приводит к установке коммуникационным процессором возвращаемых параметров DONE, ERROR и STATUS.

Гарантия передачи данных
Диаграмма показывает, что возвращаемые параметры DONE=1, ERROR=0 и STATUS=0000, о правильном функционировании связи между партнерами. В данном контексте это означает следующее: данные текущего вызова DP_SEND приняты PROFIBUS CP. Данные предыдущего вызова DP_SEND переданы по сети PROFIBUS.

Описание формальных параметров
Следующая таблица описывает все формальные параметры функции DP_SEND:

Параметр Объявле-ние Тип Принимаемые
значения
Комментарии
CPLADDR INPUT WORD   Начальный адрес модуля При конфигурировании CP при помощи ПО STEP, начальный адрес модуля задается в таблице параметров. Укажите этот адрес здесь.
SEND INPUT ANY   Адрес и размер получаемой информации: Возможные области памяти:
- Образ процесса
– Меркерная память
– Блок данных
Длина может варьироваться для:
- DP-мастер: от 1 до 240
– DP-ВУ: от 1 до 86
DONE OUTPUT BOOL 0: -
1: новые данные
Этот параметр определяет, был ли последний вызов завершен без ошибок. Значение параметров DONE, ERROR и STATUS см. таблицу ниже.
ERROR OUTPUT BOOL 0: -
1: ошибка
Код ошибки
Значение параметров DONE, ERROR и
STATUS см. таблицу ниже.
STATUS OUTPUT WORD см. таблицу ниже. Код состояния
Значение параметров DONE, ERROR и
STATUS см. таблицу ниже.

Возвращаемые значения
Следующая таблица содержит информацию по значениям переменных DONE, ERROR и STATUS, которые должны обрабатываться пользователь ской программой.

Примечание
Информацию по строкам со значениями STATUS = 8FxxH можно найти в справочном руководстве STEP 7: Стандартные и системные функции. Раз- дел, описывающий обработку ошибок с использованием возвращаемого значения RET_VAL содержит более детальную информацию.

 

Табл. 7–1 Возвращаемые значения функции DP_SEND
DONE
ERROR
STATUS
Значение
0 0 8180H Запуск: Служба DP запущена, но работа с данными еще не возможна Обычное функционирование: Выполняется передача данных.
1 0 0000H Новые данные получены без ошибок.
0 1 8183H Конфигурация не загружена или еще не запущен сервер DP в PROFIBUS CP.
0 1 8184H Ошибка системы.
0 1 8F22H Неправильная длина области (чтение) (напр. DB слишком мал).
0 1 8F23H Неправильная длина области (запись) (напр. DB слишком мал).
0 1 8F24H Неправильная область чтения параметра.
0 1 8F25H Неправильная область записи параметра.
0 1 8F28H Ошибка выравнивания при чтении параметра.
0 1 8F29H Ошибка выравнивания при записи параметра.
0 1 8F30H Параметр в защищенном от записи первом активном блоке данных.
0 1 8F31H Параметр в защищенном от записи втором активном блоке данных.
0 1 8F32H Слишком большой номер DB.
0 1 8F33H Неправильный номер DB.
0 1 8F3AH Область назначения не загружена (DB).
0 1 8F42H Превышение времени чтения параметра из области I/O.
0 1 8F43H Превышение времени записи параметра в область I/O.
0 1 8F44H Адрес считываемого параметра блокирован в треке доступа.
0 1 8F45H Адрес записываемого параметра блокирован в треке доступа.
0 1 8F7FH Внутренняя ошибка, напр. неправильная ссылка ANY.
0 1 8090H Не существует модуля с заданным адресом.
0 1 8091H Логический базовый адрес не выровнен по двойному слову.
0 1 80A1H Невозможно писать в модуль.
0 1 80B0H Модуль не распознает данные.
0 1 80B1H Указанная длина записи не верна.
Режим мастера: Размер области, указанный в SEND, данных больше максимального значения для отправляемых данных в CP.
Режим ВУ:
Размер области данных, указанный в SEND, больше максимального значения.
0 1 80C0H Данные не могут быть считаны.
0 1 80C1H Указанная область данных в данный момент обрабатывается.
0 1 80C2H Слишком много незавершенных задач.
0 1 80C3H Ресурсы (память) недоступны.
0 1 80C4H Коммуникационная ошибка (иногда встречается, обычно необходимо просто повторить вызов из пользовательской программы).
0 1 80D2H Неправильный логический адрес.

 

 

Функциональный блок DP_RECV

Функциональный блок DP_RECV используется для получения данных по се ти PROFIBUS. В зависимости от режима коммуникационного процессора блок DP_RECV используется:

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

Дополнительная задача: ввод байта состояния

Функция DP_RECV используется для следующих операций:

Интерфейс вызова:

Принцип работы блока
Диаграмма ниже иллюстрирует нормальную последовательность работы с данными при вызове DP_RECV из пользовательской программы. Каждый вызов задачи DP_RECV из пользовательской программы подтверждается установкой значений выходных переменных NDR, ERROR и STATUS.

Гарантии получения данных
Из диаграммы видно, что значения выходных переменных NDR=1, ERROR=0 и STATUS=0000 соответствуют правильному получению данных. Условие: мастер и ВУ находятся в фазе передачи данных. Примите во внимание следующее:

 

Описание формальных параметров

Следующая таблица содержит описание всех формальных параметров функции DP_RECV:

Параметр
Объявление
Тип
Принимаемые значения
Комментарии
CPLADDR INPUT WORD   Начальный адрес модуля. При конфигурировании CP при помощи ПО STEP, начальный адрес модуля задается в таблице параметров. Укажите этот адрес здесь.
RECV INPUT ANY   Адрес и размер получаемой информации: Возможные области памяти:
- Образ процесса
– Маркерная память
– Блок данных
Длина может варьироваться для:
- DP-мастер: от 1 до 240
- DP-ВУ: от 1 до 86
- DP-мастер; получение байта состояния: 255
NDR OUTPUT BOOL 0: -
1: получены новые данные
Параметр выставляется, только если получены новые данные. Значение параметров NDR, ERROR и STATUS см. в соответствующей таблице.
ERROR OUTPUT BOOL 0: -
1: ошибка
Код ошибки Значение параметров NDR, ERROR и STATUS см. в соответствующей таблице.
STATUS OUTPUT WORD см. след. табл. Значение параметров NDR, ERROR и STATUS см. в соответствующей таблице.
DPSTATUS OUTPUT BYTE Для программирования.
См. ниже DPSTATUS
Код состояния DP.

Возвращаемые значения

Таблица, приведенная ниже, содержит расшифровку информации возвращаемой в параметрах NDR, ERROR и STATUS, которая должна обрабатываться пользователем.

Примечание
Информацию по строкам со значениями STATUS = 8FxxH можно найти в справочном руководстве STEP 7: Стандартные и системные функции. Раз- дел, описывающий обработку ошибок с использованием возвращаемого зна- чения RET_VAL содержит более детальную информацию.

 

Табл. 7–2 Возвращаемые значения функции DP_RECV
NDR ERROR STATUS Значение
0 0 8180H Запуск:
Служба DP запущена, но работа с данными еще не возможна. Обычное функционирование: Выполняется получение данных.
1 0 0000H Новые данные получены без ошибок.
0 1 8183H Конфигурация не загружена или еще не запущен сервер DP в PROFIBUS CP.
0 1 8184H Ошибка системы.
0 1 8F22H Неправильная длина области (чтение) (напр. DB слишком мал).
0 1 8F23H Неправильная длина области (запись) (напр. DB слишком мал).
0 1 8F24H Неправильная область чтения параметра.
0 1 8F25H Неправильная область записи параметра.
0 1 8F28H Ошибка выравнивания при чтении параметра.
0 1 8F29H Ошибка выравнивания при записи параметра.
0 1 8F30H Параметр находится в защищенном от записи первом активном блоке данных.
0 1 8F31Н Параметр находится в защищенном от записи втором активном блоке данных.
0 1 8F32H Слишком большой номер DB.
0 1 8F33H Неправильный номер DB.
0 1 8F3AH Область назначения не загружена (DB).
0 1 8F42H Превышение времени чтения параметра из области I/O.
0 1 8F43H Превышение времени записи параметра в область I/O.
0 1 8F44H Адрес считываемого параметра блокирован в треке доступа.
0 1 8F45H Адрес записываемого параметра блокирован в треке доступа.
0 1 8F7FH Внутренняя ошибка, напр. неправильная ссылка ANY.
0 1 8090H Не существует модуля с заданным адресом.
0 1 8091H Логический базовый адрес не выровнен по двойному слову.
0 1 80A0H Невозможно писать в модуль.
0 1 80B0H Модуль не распознает данные.
0 1 80B1H Указанная длина записи не верна. Режим ВУ: Размер области приема больше максимального значения, указанного в информации о продукте.
Режим мастера: Размер области приема больше размера принимаемой информации, настроенного в данном CP.
0 1 80C0H Данные не могут быть считаны.
0 1 80C1H Указанная область данных в данный момент обрабатывается.
0 1 80C2H Слишком много незавершенных задач.
0 1 80C3H Ресурсы (память) недоступны.
0 1 80C4H Коммуникационная ошибка (иногда встречается, обычно необходимо просто повторить вызов из пользовательской программы).
0 1 80D2H Неправильный логический адрес.

 

Значения DPSTATUS

Кодировка байта состояния DPSTATUS отличается для мастера и ВУ:
• DP-мастер:

Табл. 7–3 Значения бит DPSTATUS для DP-мастера
Бит Значение
7
не используется
6
1: переполнение полученных данных ВУ посылает данные быстрее, чем они могут быть обработаны мастером в вызове блока из CPU. Модуль всегда считывает последние данные из всех, посланных ВУ со времени последнего вызова функции.
5,4
Состояние DP-мастера:
00 RUN
01 CLEAR
10 STOP
11 OFFLINE
3
1: Активная циклическая синхронизация.
2
0: Новых диагностических данных нет.
1: По крайней мере, одна станция содержит новую диагностическую информацию.
1
0: Все ВУ находятся в фазе передачи данных.
1: Просмотр списка станций.
0
Режим DP
0: Режим мастера (ведущего модуля) Остальные биты имеют описанное выше значение только, когда
этот бит сброшен.

 

• ВУ DP:

Табл. 7–4 Значения DPSTATUS для DP-ВУ
Бит Значение
7-5 не используется
4 1: переполнение полученных данных
Мастер посылает входные данные быстрее, чем они могут быть обработаны модулем в вызове блока из CPU. Модуль всегда считывает последние данные из всех, посланных мастером со времени последнего вызова функции.
3 1: Модуль не получил специального сигнала от мастера за определенный промежуток времени(watchdog time). Если этот бит установлен, то бит 1 также установлен.
2 1: DP-мастер 1 находится в состоянии CLEAR. ВУ получает 0 для всей входной информации. Это не отражается на передаваемых данных.
1 1: Конфигурирование/назначение параметров не завершено.
0 Режим DP
1: ВУ DP.
Остальные биты имеют указанное выше значение только, когда этот бит установлен.

Функциональный блок DP_DIAG

Назначение блока

Функциональный блок DP_DIAG используется для получения диагностической информации. Возможны следующие операции:

Диагностическая информация также может быть запрошена для конкретного ВУ по указанному адресу станции.
Для передачи диагностической информации в CPU вы должны зарезервировать область памяти в CPU и указать ее адрес при вызове функции. Область может располагаться в маркерной памяти или блоке данных. При вызове функции помимо начального адреса необходимо указывать и ее размер.

Примечание
Функция DP_DIAG может быть использована только на мастере DP.

 

Отсутствие новой входной информации
В процессе выполнения блока информация на его входах не должна меняться. Исключение: Запрос списка станций или диагностического списка.

Пример на языке STL функционального блока DP_DIAG

STL   Коментарий
call fc 3   //Вызов функции DP_DIAG
CPLADDR:= W#16#0120  
DTYPE := B#16#00  
STATION:= B#16#03  
DIAG := P#db18.dbx0.0 byte 16  
NDR := M 70.0  
ERROR := M 70.1  
STATUS := MW 72  
DIAGLNG:= MB 20  

 

Работа с интерфейсом вызова (последовательность действий)

Вызов функции DP_DIAG обрабатывается в цикле исполнения пользовательской программы следующим образом: Операция запускается по первому вызову. Диагностическая информация возвращается в ответ на один из последующих запросов.


Обозначения:
1) Передача параметров NDR, ERROR, STATUS

После вызова функции DP_DIAG, вы получите информацию, описывающую одну из следующих ситуаций:

 

Описание формальных параметров

Следующая таблица содержит описание всех формальных параметров функции DP_DIAG:

Параметр Объявление Тип Принимаемые
значения
Комментарии
CPLADDR INPUT WORD   Начальный адрес модуля При конфигурировании CP при помощи ПО STEP, начальный адрес модуля задается в таблице параметров. Укажите этот адрес здесь.
DTYPE INPUT BYTE 0: список станций
1: диагностический список
2: текущ. диагностика
3: старая диагностика
7: чтение входной информации (ацикл.)
8: чтение выходной информации (ацикл.)
Тип диагностики
STATION INPUT BYTE   Адрес станции DP-ВУ
DIAG INPUT ANY Размер может изменяться от 1 до 240 Указывает адрес и длину области памяти для получения данных. Может указывать на
– образ процесса
– маркерную память или
– блок данных
Примечание: Если диагностическая информация не помещается в указанной области, будет получены только первые n байт. Размер полной диагностической информации содержится в DIAGLNG.
NDR OUTPUT BOOL 0: -
1: новые данные
Параметр показывает, была ли получена новая информация. Значение параметров NDR, ERROR и STATUS см. в соответствующей таблице.
ERROR OUTPUT BOOL 0: -
1: ошибка
Код ошибки Значение параметров NDR, ERROR и STATUS см. в соответствующей таблице.
STATUS OUTPUT WORD см. список Код ошибки Значение параметров NDR, ERROR и STATUS см. в соответствующей таблице.
DIAGLNG OUTPUT BYTE см. список Содержит длину (в байтах) данных, доступных из PROFIBUS CP, вне зависимости от размера буфера, указанного параметре DIAG.

Типы операций

Следующий обзор содержит возможные комбинации входных параметров DTYPE, STATION и DIAGLNG и их назначение.

Табл. 7–5 Типы операций функции DP_DIAG
DTYPE Соответствует операции Параметр STATION DIAGLNG Код подтверждения
содержится в переменной STATUS;
описан в Табл. 7–6)
0
Считать список станций DP --- >=16 Начальный адрес модуля При конфигурировании CP при помощи STEP 7, задается его начальный адрес. Укажите этот адрес здесь.
1
Считать диагностический список DP --- >=16 Диагностический список сообщает программе CPU о DP-ВУ с новой диагностической информацией. (см. Разделы 4.2.3, 4.2.4)
2
Считать диагн. информацию с одного DP от 0 до
126
>=6 Получение текущей диагностической
информации с DP-ВУ (см. Раздел 4.2.5).
3
Считать старую диагн. информацию с одного DP от 0 до
126
>=6 Получение более старой диагностической информации с DP-ВУ (см. Раздел 4.2.5). Эта информация хранится в PROFIBUS CP и считывается по принципу: последним вошел - первым вышел из кольцевого буфера. Структура буфера описана ниже. Если диагностическая информация меняется очень быстро, эта функция позволяет мастеру получить и обработать все сообщения ВУ.
4
Считать операционный режим, запрошенный операцией DPCTRL (CYTPE=4).   >=0 С помощью этой операции вы можете получить состояние DP. Возможны следующие состояния
– RUN
– CLEAR
– STOP
– OFFLINE
См. также Раздел 3.10
5
Считать состояние DP для CPU в режиме STOP   >=0 Эта операция позволяет получить состояние, в которое перейдет PROFIBUS CP, если CPU перевести в режим STOP:
- RUN
– CLEAR
– STOP
– OFFLINE
По умолчанию PROFIBUS CP переходит в состояние CLEAR, если CPU переводится в STOP. см. также Раздел 3.10
6
Считать состояние DP для CP в режиме STOP   >=0 Эта операция позволяет получить состояние, в которое перейдет PROFIBUS CP, если CP перевести в режим STOP:
- RUN
– CLEAR
– STOP
– OFFLINE
По умолчанию PROFIBUS CP переходит в состояние OFFLINE, если CPU переводится в STOP. см. также Раздел 3.10
7
Считать входную информацию 0...126 >=1 С помощью этой операции DP-мастер (класс 2) считывает входные данные ВУ. Эта функция также известна как распределенный ввод.
8
  0...126 >=1 С помощью этой операции DP-мастер (класс 2) считывает выходные данные ВУ. Эта функция также известна как распределенный вывод.
10
  0...126 >=0 Эта операция считывает текущее состояние ВУ. Возможны следующие варианты:
• Циклический обмен данными с мастером.
• Циклическое чтение входных данных.
• Циклическое чтение выходных данных.
• Отсутствие циклической обработки.

Кольцевой буфер диагностической информации

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

Кольцевой буфер диагностической информации

Когда текущая диагностическая информация считана, позиция чтения перемещается на предыдущую запись.

Возвращаемые значения
Таблица, приведенная ниже, содержит комбинации возвращаемых параметров NDR, ERROR и STATUS, которые должны обрабатываться пользовательской программой.

Примечание
Информацию по строкам со значениями STATUS = 8FxxH можно найти в справочном руководстве STEP 7: Стандартные и системные функции. Раз- дел, описывающий обработку ошибок с использованием возвращаемого зна- чения RET_VAL содержит более детальную информацию.



Табл. 7–6 Возвращаемые значения функции DP_DIAG
NDR ERROR STATUS Возможно вместе с DTYPE Значение
0 0 8181H 2-10 Операция активна.
0 0 8182H 0 Операция нецелесообразна.
0 0 8182H 1 Отсутствует новая диагностическая информация.
1 0 0000H 1-10 Операция завершена без ошибок.
1 0 8222H 7,8 Операция завершена без ошибок. Длина считанной из DP информации не соответствует ожидаемой мастером на основании списка ВУ в базе данных CP.
1 0 8227H 7,8 Операция завершена без ошибок. Сообщение: информация отсутствует.
1 0 8131H 4,5,6 Операция завершена без ошибок. Сообщение: DP уже находится в состоянии «RUN»
1 0 8132H 4,5,6 Операция завершена без ошибок. Сообщение: DP уже находится в состоянии «CLEAR»
1 0 8133H 4,5,6 Операция завершена без ошибок. Сообщение: DP уже находится в состоянии «STOP»
1 0 8134H 4,5,6 Операция завершена без ошибок. Сообщение: DP уже находится в состоянии «OFFLINE»
1 0 823AH 2,3,7,8 Операция завершена без ошибок. Сообщение: Прочитано 241 или 242 байта данных. 240 байт доступно.
1 0 8241H 2,3,10 Операция завершена без ошибок. Сообщение: Указанное ВУ не отконфигурировано.
1 0 8243H 2,3,10 Операция завершена без ошибок. Сообщение: список ВУ в базе CP содержит только пустые модули.
1 0 8245H 2,3,10 Операция завершена без ошибок. Сообщение: ВУ находится в состоянии «циклическое чтение входных данных»
1 0 8246H 2,3,10 Операция завершена без ошибок. Сообщение: ВУ находится в состоянии «циклическое чтение выходных данных»
1 0 8248H 2,3,10 Операция завершена без ошибок. Сообщение: список модулей DP-ВУ в базе CP содержит I/О модули.
1 0 8249H 2,3,10 Операция завершена без ошибок.Сообщение: ВУ пассивно из-за изменения режима DP (напр. переключатель режима CP установлен в STOP)
1 0 824AH 2,3,10 Операция завершена без ошибок. Сообщение: ВУ пассивно из-за выполнения в CPU функции DP_CTRL.
0 1 8090H 0-10 Неправильный логический базовый адрес модуля
0 1 80B0H 0-10 Модуль не распознает данные или выполняет переход RUN --> STOP.
0 1 80B1H 0-10 Указанная длина записи данных не верна.
0 1 80C0H 0-10 Невозможно считать данные.
0 1 80C1H 0-10 Указанная запись данных уже обрабатывается.
0 1 80C2H 0-10 Слишком много незавершенных операций.
0 1 80C3H   Ресурсы (память) недоступны.
0 1 80C4H 0-10 Коммуникационная ошибка (иногда встречается,
обычно необходимо просто повторить вызов из поль-
зовательской программы).
0 1 80D2H 0-10 Неправильный логический базовый адрес.
0 1 8183H 0-10 DP-мастер не отконфигурирован.
0 1 8184H   Ошибка системы.
0 1 8311H 2-10 Неправильное значение параметра DTYPE.
0 1 8313H 2,3,7,8,10 Неправильное значение параметра STATION.
0 1 8313H 2-10 ВУ предоставляет только неправильные данные.
0 1 8326H 7-8 ВУ содержит более 242 байт информации. PROFIBUS CP поддерживает не более 242 байт.
0 1 8335H 7-8 PROFIBUS CP находится в состоянии PROFIBUS: станция вне кольца.
0 1 8341H 2,3,10 Указанное ВУ не отконфигурировано.
0 1 8342H 7,8 ВУ с адресом, указанным в STATION не доступно.
0 1 8F22H 0-10 Неправильная длина области (чтение) (напр. DB слишком мал).
0 1 8F23H 0-10 Неправильная длина области (запись) (напр. DB слишком мал).
0 1 8F24H 0-10 Неправильная область чтения параметра.
0 1 8F25H 0-10 Неправильная область записи параметра.
0 1 8F28H 0-10 Ошибка выравнивания при чтении параметра.
0 1 8F29H 0-10 Ошибка выравнивания при записи параметра.
0 1 8F30H 0-10 Параметр принадлежит защищенному от записи первому активному блоку данных.
0 1 8F31H 0-10 Параметр принадлежит защищенному от записи второму активному блоку данных.
0 1 8F32H 0-10 Слишком большой номер DB.
0 1 8F33H 0-10 Неправильный номер DB.
0 1 8F3AH 0-10 Область не загружена (DB).
0 1 8F42H 0-10 Превышение времени чтения параметра из области I/O.
0 1 8F43H 0-10 Превышение времени записи параметра в область I/O.
0 1 8F44H 0-10 Адрес считываемого параметра блокирован в треке доступа.
0 1 8F45H 0-10 Адрес записываемого параметра блокирован в треке доступа.
0 1 8F7FH 0-10 Внутренняя ошибка, напр. неправильная ссылка ANY.

 

Функциональный блок DP_CTRL

Функциональный блок DP_CTRL передает управление PROFIBUS CP. Можно использовать поле операции (параметр CONTROL) для более конкретного указания операции. Существуют следующие типы операции:

Примечание
Функция DP_CTRL может использоваться только мастером DP.

Отсутствие новой информации
В процессе выполнения блока информация на его входах не должна меняться.

Интерфейс вызова

Пример на языке STL функционального блока DP_CTRL

STL   Коментарий
call fc 4   //Вызов функции DP_CTRL
CPLADDR:= W#16#0120  
CONTROL:= P#db14.dbx0.0 byte 30 // Буфер для управляющей операции
    // занимает первые 30 байт в DB 14.
DONE := M 70.0  
ERROR := M 70.1  
STATUS := MW 72  

Работа с интерфейсом вызова (последовательность действий)

Вызов функции DP_CTRL обрабатывается в цикле исполнения пользовательской программы следующим образом: Операция запускается по первому вызову. Диагностическая информация возвращается в ответ на один из последующих запросов.

После вызова функции DP_CTRL, вы получите информацию, описывающую одну из следующих ситуаций:

Следующая таблица содержит описание всех формальных параметров функции DP_CTRL.

Параметр Объявление Тип Принимаемые значения Комментарии
CPLADDR INPUT WORD   Начальный адрес модуля При конфигурировании CP при помощи ПО STEP, начальный адрес модуля задается в таблице параметров. Укажите этот адрес здесь.
CONTROL INPUT ANY Размер может варьироваться от 1 до 240 Указывает адрес и длину области памяти для управляющей операции. Может указывать на
– образ процесса
– маркерную память или
– блок данных
Размер должен быть не меньше количества параметров.
DONE OUTPUT BOOL 0: -
1: Операция завершена без ошибок.
Отражает безошибочное завершение операции.
Значение параметров DONE, ERROR и STATUS см. в соответствующей таблице.
ERROR OUTPUT BOOL 0: -
1: ошибка
Код ошибки Значение параметров DONE, ERROR и STATUS см. в соответствующей таблице.
STATUS OUTPUT WORD см. Табл. Возвращаемые значения Код состояния Значение параметров DONE, ERROR и STATUS см. в соответствующей таблице.

Управляющее поле имеет следующую структуру:

Структура поля операции CONTROL

Пример поля операции
Поле операции, представленное ниже, синхронизирует глобальное циклическое управление и посылает сигнал «unfreeze» (разморозка) без опции автоматической очистки группам 4 и 5.

Длина указателя ANY Должна быть не менее 4 байт (в примере было выбрано значение 30).

Описания возможных операций сгруппированы в зависимости от значения CTYPE и помещены в таблицу ниже.

Табл. 7–7 Типы операций функции DP_CTRL
CTYPE Соответствует операции Параметры в поле операции Название Кол-во Значение
0 Запустить
глобальное управление
1ый байт:
командный режим
2ой байт: выбор группы
(см. Раздел после табл.)
2 Глобальная управляющая операция посылается DP-ВУ, выбранным 2ым байтом (см.Раздел 3.2). Командный режим указывает на одну из следующих глобальных операций:
- SYNC (синхронизация)
– UNSYNC (рассинхронизация)
– FREEZE (блокирование)
– UNFREEZE (разблокирование)
– CLEAR (очистка)
Можно указать более одной операции в командном режиме.
1 Запустить циклическое глобальное управление 1ый байт: командный режим
2ой байт: выбор группы
3ий байт: автоочистка (см. след.Раздел)
3 Глобальная циклическая управляющая операция посылается DP-ВУ, выбранным 2ым байтом (см. Раздел 3.2). Параметр «автоочистка» обрабатывается совместно с глобальной операцией SYNC. Если хотя бы одно из ВУ в выбранной группе не находится в фазе передачи данных и автоочистка=1, активируется операция CLEAR и выходные данные DP-ВУ сбрасываются в «0». Следующие глобальные операции могут быть активированы:
- SYNC
– FREEZE
- CLEAR (CLEAR бит = 1)
или отменены:
- UNSYNC
– UNFREEZE
- UNCLEAR (CLEAR бит = 0)
Можно указать более одной операции в командном режиме. Активная глобальная циклическая операция может быть прервана только другой глобальной операцией (циклической или нет). Для завершения операции, указанной в командном режиме, она должна быть отменена. Например, операция SYNC отменяется операцией UNSYNC.
3 Удалить старую диагностическую информацию 1ый адрес ВУ 0 - 126
127 = все ВУ
1 Старая диагностическая информация PROFIBUS CP удаляется для одного или всех ВУ.
4 Установить текущий режим DP 1.RUN=00H
1.CLEAR=01H
1.STOP=02H
1.OFFLINE=03H
1. RUN с autoclear=04H
1.RUN без autoclear=05H
1 Этой операцией можно установить один из следующих режимов DP:
- RUN
- CLEAR
- STOP
- OFFLINE
(см. также Раздел 3.10) Параметр autoclear означает, что DP-мастер первого класса автоматически переходит в режим CLEAR когда хотя бы одно из ВУ, с которым происходит обмен информацией, не находится в фазе передачи данных. RUN без autoclear отменяет автоочистку.
5 Установить режим DP для состояния CPU stop 1.RUN =00H
1.CLEAR =01H
1.STOP =02H
1.OFFLINE=03H
1 Этой операцией можно установить режим DP, в который переходит PROFIBUS CP, когда CPU переходит в stop.
- RUN
- CLEAR
- STOP
- OFFLINE
По умолчанию PROFIBUS CP переходит в режим CLEAR при остановке CPU. Этот режим сохраняется, когда CP переходит RUN --> STOP --> RUN. (см. также Р. 3.10)
6 Установить режим DP для состояния CP stop 1.STOP =02H
1.OFFLINE =03H
1 Этой операцией можно установить режим DP, в который переходит PROFIBUS CP, когда CP переходит в stop.
- STOP
- OFFLINE
По умолчанию PROFIBUS CP переходит в режим OFFLINE при остановке CP. Этот режим сохраняется, когда CP переходит RUN --> STOP --> RUN. (см. также Р 3.10)
7 Циклическое чтение входной информации 1ый байт: адрес ВУ
0 - 125
1 Эта операция активирует циклическое чтение входных данных DP-ВУ в коммуникационный процессор, работающий как DP-мастер (класс2). Обычно, DP-ВУ назначен другому DP-мастеру (класс 1). Данные сохраняются в конфигурированной области DP-ВУ и могут быть получены пользователем с помощью функции DP_RECV. Эта функция также известна как распределенный ввод.
8 Циклическое чтение выходной информации 1ый байт: адрес ВУ
0 - 125
1 Эта операция активирует циклическое чтение выходных данных DP-ВУ в коммуникационный процессор, работающий как DP-мастер (класс 2). Обычно, DP-ВУ назначено другому DP-мастеру (класс 1). Данные сохраняются в конфигурированной области DP-ВУ и могут быть получены пользователем с помощью функции DP_RECV. Эта функция также известна как распределенный ввод.
9 Отмена циклического чтения информации. 1ый байт: адрес ВУ
0 - 125
1 Эта операция прерывает циклическое чтение входных или выходных данных DP-ВУ или передачу данных (DP-мастер класс 1). В таком случае DP-ВУ больше не обрабатывается PROFIBUS CP в качестве DP-мастер класс 2. Это переводит DP-ВУ в пассивное состояние.
10

Отмена циклического чтения информации. Начать передачу данных DP-мастером класса 1.

1ый байт: адрес ВУ
0 - 125
1 Операция начинает передачу данных (DP-мастер класс 1). Предыдущая операция (пассивное состояние или циклическое чтение) завершается. Коммуникационный процессор, работающий как DP-мастер (класс 1) назначает параметры ВУ и начинает передачу данных Эта операция принадлежит режиму DP-мастер класс 1.

 

Структура переменной «командный режим»

Переменная «командный режим» позволяет вам указать режим ввода и вывода данных для циклических и ациклических глобальных операций.
Значение:
1 = активный
0 = пассивный

Номер бита

Структура переменной «выбор группы»

Переменная «выбор группы» содержит группу адресуемую операцией, указанной в командном режиме. Она расположена во втором байте поля операции. Каждый бит определяет группу DP-ВУ.
Значение:
1 = назначена
0 = не назначена

Номер бита:
Группа:

Возвращаемые значения
Следующая таблица содержит информацию по значениям переменных DONE, ERROR и STATUS, которые должны обрабатываться пользовательской программой.

Примечание
Информацию по строкам со значениями STATUS = 8FxxH можно найти в справочном руководстве STEP 7: Стандартные и системные функции. Раз- дел, описывающий обработку ошибок с использованием возвращаемого зна- чения RET_VAL содержит более детальную информацию.

 

Табл. 7–8 Возвращаемые значения функции DP_CTRL
DONE ERROR STATUS Возможные
значения
CTYPE
Значение
0 0 8181H 0-10 Операция активна
1 0 0000H 0-10 Операция завершена без ошибок
1 0 8214H 1 Операция завершена без ошибок.
Сообщение: циклическая глобальная операция послана как ациклическая
1 0 8215H 0,1 Операция завершена без ошибок.
Все указанные в команде ВУ пассивны.
1 0 8219H 0,1 Операция завершена без ошибок.
Была сделана попытка послать уже выполняющуюся глобальную циклическую операцию. Глобальное управление осталось неизменным.
1 0 8228H 0,1 Операция завершена без ошибок.
Сообщение: адресуемые DP-ВУ не содержат входных модулей.
1 0 8229H 0,1 Операция завершена без ошибок.
Сообщение: адресуемые DP-ВУ не содержат выходных модулей.
1 0 8231H 4,5,6 Операция завершена без ошибок.
Сообщение: DP уже находится в режиме «RUN»
1 0 8232H 4,5,6 Операция завершена без ошибок.
Сообщение: DP уже находится в режиме «CLEAR»
1 0 8233H 4,5,6 Операция завершена без ошибок.
Сообщение: DP уже находится в режиме «STOP»
1 0 8234H 4,5,6 Операция завершена без ошибок.
Сообщение: DP уже находится в режиме «OFFLINE»
1 0 8235H 4 Операция завершена без ошибок.
Сообщение: DP уже находится в состоянии «RUN» с автоматической очисткой (autoclear)
1 0 8236H 4 Операция завершена без ошибок.
Сообщение: DP уже находится в состоянии «RUN» с автоматической очисткой (autoclear)
1 0 8241H 7-10 Операция завершена без ошибок.
Сообщение: указанное DP-ВУ не отконфигурировано.
1 0 8243H 7-10 Операция завершена без ошибок.
Сообщение: DP-ВУ уже пассивно, так как список ВУ в базе CP содержит только пустые модули.
1 0 8245H 7-10 Операция завершена без ошибок.
Сообщение: DP-ВУ уже находится в режиме циклического чтения входных данных
1 0 8246H 7-10 Операция завершена без ошибок.
Сообщение: DP-ВУ уже находится в режиме циклического чтения выходных данных
1 0 8248H 7-10 Операция завершена без ошибок.
Сообщение: список DP-ВУ в базе CP содержит входные, выходные или I/O модули.
1 0 8249H 7-10 Операция завершена без ошибок.
Сообщение: ВУ пассивно из-за изменения режима DP.
1 0 824AH 7-10 Операция завершена без ошибок.
Сообщение: DP-ВУ уже пассивно вследствие выполнения DP_CTRL
0 1 8090H 0-10 Не существует модуля с заданным адресом.
0 1 8091H 0-10 Логический базовый адрес не выровнен по двойному
слову.
0 1 80B0H 0-10 Модуль не распознает данные.
0 1 80B1H 0-10 Указанная длина записи не верна.
0 1 80C0H 0-10 Данные не могут быть считаны.
0 1 80C1H 0-10 Указанная область данных в данный момент обрабатывается.
0 1 80C2H 0-10 Слишком много незавершенных задач.
0 1 80C3H   Ресурсы (память) недоступны.
0 1 8311H 0-10 Неправильное значение параметра CTYPE.
0 1 8312H 0-10 Размер области памяти параметра CONTROL слишком мал.
0 1 8313H 3,7,8,10 Адрес ВУ находится за пределами допустимых значений.
0 1 8315H 0,1 Все DP-ВУ указанной группы пассивны (происходит всегда, если группа пуста).
0 1 8317H 8 Размер посылаемых данных больше настроенной области приема на DP-ВУ. Активирование ВУ режима чтения выходной информации не возможно.
0 1 8318H 0,1,4,5,6 Первый байт поля операции содержит недопустимое значение. Для глобального управления CLEAR использован с SYNC или глобальное управление с CLEAR назначено группе 0.
0 1 831АH 0,1 По крайней мере, одно DP-ВУ не поддерживает FREEZE.
0 1 831BH 0,1 По крайней мере, одно DP-ВУ не поддерживает SYNC.
0 1 8333H 0,1 Операция не разрешена в режиме STOP.
0 1 8334H 0,1 Операция не разрешена в режиме OFFLINE.
0 1 8335H 0,1 PROFIBUS CP находится в состоянии PROFIBUS: станция вне кольца.
0 1 8339H 0,1 Хотя бы одно DP-ВУ в выбранной группе не находится в фазе передачи данных.
0 1 833СH 1 Циклическое глобальное управление не должно использоваться в режиме «PLC <-> CP free running» (свободное выполнение). Эта ошибка не может случиться в CP 3425 поскольку такой режим не поддерживается данным CP (для передачи данных всегда используются записи PBUS).
0 1 8341H 7-10 Указанное DP-ВУ не отконфигурировано.
0 1 8183H 0-10 DP-мастер не отконфигурирован.
0 1 8184H   Ошибка системы.
0 1 8F22H 0-10 Неправильная длина области (чтение) (напр. DB слишком мал).
0 1 8F23H 0-10 Неправильная длина области (запись) (напр. DB слишком мал).
0 1 8F24H 0-10 Неправильная область чтения параметра.
0 1 8F25H 0-10 Неправильная область записи параметра.
0 1 8F28H 0-10 Ошибка выравнивания при чтении параметра.
0 1 8F29H 0-10 Ошибка выравнивания при записи параметра.
0 1 8F30H 0-10 Параметр лежит в первом текущем блоке, защищенном от записи.
0 1 8F31H 0-10 Параметр лежит во втором текущем блоке, защищенном от записи.
0 1 8F32H 0-10 Слишком большой номер DB.
0 1 8F33H 0-10 Неправильный номер DB.
0 1 8F3AH 0-10 Область назначения не загружена (DB).
0 1 8F42H 0-10 Превышение времени чтения параметра из области I/O.
0 1 8F43H 0-10 Превышение времени ожидания при записи в область I/O.
0 1 8F44H 0-10 ХЗ*
0 1 8F45H 0-10 ХЗ*
0 1 8F7FH 0-10 Внутренняя ошибка, напр. неправильная ссылка ANY.
0 1 80C4H 0-10 Коммуникационная ошибка (иногда встречается, обычно необходимо просто повторить вызов из пользовательской программы).
0 1 80C4H 0-10 Неправильный логический базовый адрес.

 

 

Функции FDL-соединения (интерфейс SEND/RECEIVE)

 

Следующие функциональные блоки используются для интерфейса SEND/RECEIVE при передаче данных по установленному FDL соединению:

FC
Назначение
AG_SEND / AG_LSEND Для передачи данных
AG_RECV / AG_LRECV Для получения данных



Примечание:
Функции FC50 (AG_LSEND) и FC60 (AG_LRECV) могут использоваться PROFIBUS CP как альтернатива FC5 и FC 6. При этом нет никакой разницы, как в интерфейсе, так и в способе функционирования. При использовании Industrial Ethernet, функции AG_LSEND и AG_LRECV могут передавать боль- шие объемы данных (от 240 байт до 8 Кбайт). Если вы используете эти блоки для передачи большого количества данных через Ind. Ethernet, вы также мо- жете использовать эти блоки для работы по PROFIBUS. Однако по PROFIBUS, даже при использовании этих функциональных блоков, вы смо- жете передавать записи не длиннее 240.

Следующая схема иллюстрирует способы использования блоков AG_SEND /AG_LSEND и
AG_RECV /AG_LRECV для двунаправленной передачи данных по одному FDL соединению. Некоторые типы соединений включают заголовок операции в пользовательскую область данных.

Использование блоков AG_SEND и AG_RECV в обоих коммуникационных партнерах.

Приложения без заголовка операции
Для определенного FDL соединения адрес и заголовок операции указаны в настройках соединения. Пользовательская программа лишь копирует данные в область FDL при их посылке с помощью
AG_SEND /AG_LSEND или считывает данные с помощью AG_RECV / AG_LRECV. При этом может быть передано до 240 байт пользовательской информации. Это применимо к PROFIBUS для AG_SEND и AG_LSEND функций.

Приложения с заголовком операции
Следующие типы соединений требуют заголовок операции в FDL (пользовательской) области:

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

Передача и прием по FDL соединению с широковещательной (Broadcast) рассылкой

Размер блока данных не может превышать 240 байт. При этом можно использовать лишь 236 байт для собственно пользовательских данных. 4 байта резервируются для операционного заголовка.

 

Функциональный блок AG_SEND / AG_LSEND

AG_SEND / AG_LSEND функция пересылает данные в PROFIBUS CP для передачи по FDL соединению.
Данные могут находиться в области образа процесса, меркерной памяти или блоке данных. Успешное завершение работы функции индицируется когда весь FDL блок данных может быть послан по PROFIBUS.
Примечание: Информация, приведенная ниже, относится как к AG_SEND так и к AG_LSEND.

Интерфейс вызова

Пример на языке STL функционального блока AG_SEND / AG_LSEND

STL   Коментарий
call fc 5   //Вызов функции AG_SEND
ACT := M 10.0  
ID := MB 10  
LADDR := W#16#0100 //=LADDR 256dec. в настройках оборудования
SEND := P#db99.dbx10.0 byte 240  
LEN := MW 12  
DONE := M 10.0  
ERROR := M 10.7  
STATUS := MW 14  

 

Вызовы с операционным заголовком

Таблица ниже содержит типы соединений и операции для которых должны быть определены параметры в операционном заголовке. Операционный заголовок расположен в начале FDL области данных. Он за-
нимает 4 байта и должен быть прибавлен к длине, указываемой в параметре LEN. Максимальная длина пользовательских данных для операций с заголовком, таким образом, уменьшена до 236 байт.

Табл. 7–9 Добавление операционного заголовка в пользовательской области данных
Параметр Свободный уровень 2 Всеобщая рассылка Множественная рассылка
адрес PB Адрес станции-приемника Значения: 0..126 в зависимости от станции / 127
для всеобщей /множественной рассылки
Не важно, но должно быть зарезервировано. Не важно, но должно быть зарезервировано
LSAP LSAP станции-приемника Значения: 0..62 в зависимости от станции / 63
для множественной рассылки
Не важно, но должно быть зарезервировано. Не важно, но должно быть зарезервировано.
Службы SDA (Посылка с подтверждением): Значение: 00H
SDN (Посылка без подтверждения): Значение: 01H
Не важно, но должно быть зарезервировано. Не важно, но должно быть зарезервировано.


Диаграмма ниже иллюстрирует обычную последовательность при передаче данных, активированной использованием в программе функции AG_SEND. Каждая операция AG_SEND в пользовательской программе подтверждается PROFIBUS CP заданием выходных параметров DONE, ERROR и STATUS.

Для обновления возвращаемого слова состояния без использования операции, параметр ACT должен быть сброшен в 0.
Следующая таблица содержит описание всех формальных параметров функции AG_SEND.

Параметр Объявление Тип Принимаемые значения Комментарии
ACT INPUT BOOL 0,1 Если ACT=1, то посылается LEN байт из области FDL, определяемой параметром SEND.
Если ACT=0, обновляются коды состояния DONE, ERROR и STATUS.
ID INPUT INT 1,2...16 Переменная ID содержит номер FDL- соединения (см. настройку в Разделе 2)
LADDR INPUT WORD   Начальный адрес модуля При конфигурировании CP при помощи ПО STEP, начальный адрес модуля задается в таблице параметров. Укажите этот адрес здесь.
SEND INPUT ANY   Адрес и размер FDL блока: Возможные области памяти:
- Образ процесса
– Меркерная память
– Блок данных
При вызове с операционным заголовком область FDL должна содержать сам заголовок и пользовательскую информацию.
LEN INPUT INT 1,2, до 240 (или длины, указанной в параметре SEND) Количество байт посылаемых из области FDL текущей операцией. Принимаемые значения варьируются от 1 до длины, указанной в параметре SEND. При вызове с операционным заголовком LEN>= 4 из-за учета длины заголовка.
DONE OUTPUT BOOL 0: -
1: новые дан-
ные
Параметр свидетельствует о безошибочном окончании операции. Значения параметров DONE, ERROR и
STATUS см. в соответствующей таблице.
ERROR OUTPUT BOOL 0: -
1: ошибка
Код ошибки Значения параметров DONE, ERROR и
STATUS см. в соответствующей таблице.
STATUS OUTPUT WORD см. таблицу
ниже
Код состояния Значения параметров DONE, ERROR и
STATUS см. в соответствующей таблице.

Возвращаемые значения
Таблица, приведенная ниже, содержит расшифровку информации возвращаемой в параметрах DONE, ERROR и STATUS, которая должна обрабатываться пользователем.

Примечание
Информацию по строкам со значениями STATUS = 8FxxH можно найти в справочном руководстве STEP 7: Стандартные и системные функции. Раз- дел, описывающий обработку ошибок с использованием возвращаемого зна- чения RET_VAL содержит более детальную информацию.

 

Табл. 7–10 Возвращаемые значения функции AG_SEND
DONE ERROR STATUS Значение
1 0 0000H Операция завершена без ошибок.
0 1 7000H Код возможен только для S7–400; FC был вызван с ACT=0; однако операция не выполняется.
0 0 8181H Операция активна.
0 1 8183H Отсутствие настроек или служба FDL не запущена в PROFIBUS CP.
0 1 8184H FDL соединение без операционного буфера: системная ошибка FDL соединение с операционным буфером: параметр LEN<4 или неправильный параметр в заголовке (со свободным доступом к уровню 2).
0 1 8185H Параметр LEN длиннее, чем область, указанная в SEND.
0 1 8186H Неправильное значение ID. ID!=1,2 - 15,16.
0 1 8301H SAP не активна на станции-приемнике.
0 1 8302H Недостаточно ресурсов на приемнике: станция-приемник не может достаточно быстро обработать принимаемые данные или ресурсы приемника не подготовлены.
0 1 8303H Служба PROFIBUS (SDA SendDatawithAcknowledge) (посылка данных с подтверждением) не поддерживается SAP на станции-приемнике.
0 1 8304H FDL соединение не установлено.
0 1 8311H Станция-приемник не доступна по указанному адресу PROFIBUS.
0 1 8312H Ошибка PROFIBUS в CP; например, короткое замыкание на шине, выпадение станции из кольца.
0 1 8315H Внутренняя ошибка параметра в FDL соединении с операционным заголовком: параметр LEN<4 или неправильный параметр в заголовке (со свободным доступом к уровню 2).
0 1 8F22H Некорректная исходная область, например: область не существует в DB, параметр LEN < 0
0 1 8F24H Неправильная область чтения параметра.
0 1 8F28H Ошибка выравнивания при чтении параметра.
0 1 8F32H Номер DB слишком велик.
0 1 8F33H Неправильный номер DB.
0 1 8F3AH Область не загружена (DB).
0 1 8F42H Превышение времени чтения параметра из области I/O.
0 1 8F44H Адрес считываемого параметра блокирован в треке доступа.
0 1 8F7FH Внутренняя ошибка, напр. неправильная ссылка ANY. Например, LEN=0
0 1 8090H Не существует модуля с заданным адресом.
0 1 8091H Логический базовый адрес не выровнен по двойному слову.
0 1 80B0H Модуль не распознает данные.
0 1 80B1H Некорректная область приема, например, ее размер > 240 байт.
0 1 80B2H Не возможно установить соединение по шине между CPU и CP.
0 1 80C0H Данные не могут быть считаны.
0 1 80C1H Указанная область данных в данный момент обрабатывается
0 1 80C2H Слишком много незавершенных задач.
0 1 80C3H Ресурсы (память) недоступны.
0 1 80C4H Коммуникационная ошибка (иногда встречается, обычно необходимо просто повторить вызов из пользовательской программы).
0 1 80D2H Неправильный начальный адрес модуля.

 

 

Функциональный блок AG_RECV / AG_LRECV

Функциональные блоки AG_RECV / AG_LRECV используются для получения данных по установленному FDL соединению через PROFIBUS CP. Область данных, указанная для приема может лежать в образе процесса,
меркерной памяти или блоке данных. Успешное завершение работы функции индицируется когда блок данных может быть получен из PROFIBUS CP.
Примечание: Информация, приведенная ниже, относится как к FC AG_RECV так и к AG_LRECV.

Пример на языке STL функционального блока AG_RECV / AG_LRECV

STL   Коментарий
call fc 5   //Вызов функции AG_SEND
ACT := M 10.0  
ID := MB 10  
LADDR := W#16#0100 //=LADDR 256dec. в настройках оборудования
SEND := P#db99.dbx10.0 byte 240  
LEN := MW 12  
DONE := M 10.0  
ERROR := M 10.7  
STATUS := MW 14  

 

Вызовы с операционным заголовком

Таблица ниже содержит типы соединений и операции, для которых должны быть определены параметры в операционном заголовке. Операционный заголовок расположен в начале FDL области данных. Он занимает 4 байта и должен быть прибавлен к длине, указываемой в параметре LEN. Максимальная длина пользовательских данных для операций с заголовком, таким образом, уменьшена до 236 байт.

Табл. 7–11 Возвращаемые параметры операционного заголовка в области FDL
Параметр Свободный уровень 2 Всеобщая рассылка Множественная рассылка
адрес PB Адрес отправителя Значения: 0..126 в зависимости от станции
LSAP LSAP отправителя 0..63 в зависимости от станции
Службы Отображение SDN ( Посылка без подтверждения - индикация): Значение: 01H
или
Отображение SDA (Посылка с подтверждением индикация):
Значение: 00H
Отображение SDN ( Посылка без подтверждения - индикация):
Значение: 7FH
Отображение SDN ( Посылка без подтверждения - индикация):
Значение: 01H

Диаграмма ниже иллюстрирует обычную последовательность при передаче данных, активированной использованием в программе функции AG_RECV. Каждая операция AG_RECV в пользовательской программе подтверждается выходными параметрами NDR, ERROR и STATUS.

 

Следующая таблица содержит описание всех формальных параметров функции AG_RECV.

 

Параметр Объявление Тип Принимаемые значения Комментарии
ID INPUT INT 1,2...16 (S7–300)
1,2...32 (S7–400)
Переменная ID содержит номер FDL- соединения (см. настройку в Разделе 2)
LADDR INPUT WORD   Начальный адрес модуля. При конфигурировании CP при помощи ПО STEP, начальный адрес модуля задается в таблице параметров. Укажите этот адрес здесь.
RECV INPUT ANY   Адрес и размер FDL блока: Возможные области памяти:
- Образ процесса
– Меркерная память
– Блок данных
При вызове с операционным заголовком область FDL содержит заголовок и пользовательскую информацию.
LEN OUTPUT INT 1,2,...240 Количество получаемой в область FDL информации из PROFIBUS CP. При вызове с операционным заголовком LEN >= 4 из-за учета длины заголовка.
NDR OUTPUT BOOL 0: -
1: новые данные
Параметр свидетельствует о получении новых данных. Значения параметров NDR, ERROR и STATUS см. в соответствующей таблице.
ERROR OUTPUT BOOL 0: -
1: ошибка
Код ошибки
Значения параметров NDR, ERROR и STATUS см. в соответствующей таблице.
STATUS OUTPUT WORD см. таблицу ниже Код состояния
Значения параметров NDR, ERROR и STATUS см. в соответствующей таблице.

 

Возвращаемые значения

Таблица, приведенная ниже, содержит расшифровку информации возвращаемой в параметрах NDR, ERROR и STATUS, которая должна обрабатываться пользователем.

Примечание
Информацию по строкам со значениями STATUS = 8FxxH можно найти в справочном руководстве STEP 7: Стандартные и системные функции. Раз- дел, описывающий обработку ошибок с использованием возвращаемого зна- чения RET_VAL содержит более детальную информацию.



Табл. 7–12 Возвращаемые значения функции AG_RECV
NDR
ERROR
STATUS
Значение
1 0 0000H Получена новая информация
0 0 8180H Информация пока отсутствует
0 0 8181H Операция активна
0 1 8183H Отсутствие настроек или служба FDL не запущена в PROFIBUS CP.
0 1 8184H Ошибка системы.
0 1 8185H Буфер приемника (RECV) слишком мал.
0 1 8186H Неправильное значение ID. ID!=1,2 - 15,16.
0 1 8304H Соединение FDL не установлено.
0 1 8F23H Некорректная область источника, например: область в DB не существует.
0 1 8F25H Неправильная область записи параметра.
0 1 8F29H Ошибка выравнивания при записи параметра.
0 1 8F30H Параметр принадлежит защищенному от записи первому активному блоку данных.
0 1 8F31H Параметр принадлежит защищенному от записи второму активному блоку данных.
0 1 8F32H Номер DB слишком велик.
0 1 8F33H Неправильный номер DB.
0 1 8F3AH Область назначения не загружена (DB).
0 1 8F43H Превышение времени записи параметра в область I/O.
0 1 8F45H Адрес считываемого параметра блокирован в треке доступа.
0 1 8F7FH Внутренняя ошибка, напр. неправильная ссылка ANY.
0 1 8090H Не существует модуля с заданным адресом.
0 1 8091H Логический базовый адрес не выровнен по двойному слову.
0 1 80A0H Отсутствие подтверждения чтения из модуля.
0 1 80B0H Модуль не распознает данные.
0 1 80B1H Некорректная область приема.
0 1 80B2H Не возможно установить соединение по шине между CPU и CP.
0 1 80C0H Данные не могут быть считаны.
0 1 80C1H Указанная область данных в данный момент обрабатывается.
0 1 80C2H Слишком много незавершенных задач.
0 1 80C3H Ресурсы (память) недоступны.
0 1 80C4H Коммуникационная ошибка (иногда встречается, обычно необходимо просто повторить вызов из пользовательской программы).
0 1 80D2H Неправильный начальный адрес модуля.

 

 

Характеристики / Используемые ресурсы FC

 

Табл. 7–13 Функциональные блоки для S7-400
Название
Версия
Номер FC
Размер, байт
MC7
байт
Локальные
данные, байт
AG_SEND
0.3
5
738
540
20
AG_RECV
0.3
6
662
486
20
AG_LSEND
2.5
50
1148
934
54
AG_LRECV
2.4
60
1158
938
56

 

Табл. 7–13 Функциональные блоки для S7-300
Название
Версия
Номер FC
Размер, байт
MC7
байт
Локальные
данные, байт
DP_SEND
1.11
1
384
260
18
DP_RECV
1.11
2
454
322
22
DP_DIAG
1.11
3
1060
854
34
DP_CTRL
1.11
4
630
488
30
AG_SEND
1.11
5
898
718
32
AG_RECV
1.11
6
666
504
20
AG_LSEND
2.5
50
996
766
52
AG_LRECV
2.4
60
1192
952
58



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