Руководство по программированию 6 profinet 7 Двухточечная связь (PointtoPoint, PtP) 8
Скачать 3.76 Mb.
|
GET_ERR_ID Команда GET_ERR_ID указывает, что произошла ошибка при исполнении программного блока, и сообщает ID (идентификационный код) ошибки. Параметр Тип данных Описание ID Word Значения идентификатора ошибки для элемента ErrorStruct ERROR_ID ERROR_ID шестнадцатеричный ERROR_ID десятичный Ошибка исполнения программного блока 2503 9475 Ошибка – неинициализированный указатель 2522 9506 Ошибка чтения – операнд вне допустимого диапазона 2523 9507 Ошибка записи – операнд вне допустимого диапазона 2524 9508 Ошибка чтения – недействительная область 2525 9509 Ошибка записи – недействительная область 2528 9512 Ошибка чтения при выравнивании данных (неверное выравнивание битов) 2529 9513 Ошибка записи при выравнивании данных (неверное выравнивание битов) 2530 9520 DB защищен от записи 253A 9530 Глобальный DB не существует 253C 9532 Неправильная версия или FC не существует 253D 9533 Команда не существует 253E 9534 Неправильная версия или FB не существует 253F 9535 Команда не существует 2575 9589 Ошибка глубины вложения программ 2576 9590 Ошибка выделения локальных данных 2942 10562 Физический вход не существует 2943 10563 Физический выход не существует Руководство по программированию 6.2 Расширенные команды Программируемый контроллер S7-1200 180 Системное руководство, 11/2009, A5E02669003-02 Принцип действия По умолчанию CPU реагирует на ошибку исполнения блока регистрацией ошибки в диагностическом буфере и переходом в состояние STOP. Однако, если вы поместите в кодовый блок одну или несколько команд GET_ERROR или ERR_ID, то этот блок в состоянии обрабатывать ошибки в самом блоке. В этом случае CPU не переходит в STOP и не регистрирует ошибку в диагностическом буфере. Вместо этого информация об ошибке сообщается на выходе команды GET_ERROR или GET_ERR_ID. Вы можете прочитать подробную информацию об ошибке с помощью команды GET_ERROR или только прочитать идентификатор ошибки с помощью команды GET_ERR_ID. Обычно первая ошибка является самой важной, а последующие ошибки являются только следствие первой ошибки. Первое исполнение команды GET_ERROR или GET_ERR_ID в блоке возвращает первую ошибку, обнаруженную во время исполнения блока. Эта ошибка могла возникнуть в любом месте между началом блока и исполнением GET_ERROR или GET_ERR_ID. Следующие исполнения GET_ERROR или GET_ERR_ID возвращают первую ошибку после предыдущего исполнения GET_ERROR или GET_ERR_ID. История ошибок не сохраняется, и исполнение любой из этих команд побуждает ПЛК к регистрации следующей ошибки. Тип данных ErrorStruct, используемый командой GET_ERROR, может быть вставлен в редакторе блока данных и в редакторах интерфейса блоков, так что логика вашей программы получает доступ к этим значениям. Для добавления этой структуры выберите ErrorStruct из ниспадающего списка типов данных. Вы можете создать несколько структур ErrorStruct, используя уникальные имена. Элементы ErrorStruct не могут быть переименованы. Сбойное состояние, указываемое с помощью ENO Если EN = ИСТИНА и исполняется GET_ERROR или GET_ERR_ID, то: ● ENO = ИСТИНА указывает, что во время исполнения кодового блока произошла ошибка и имеются данные об ошибке ● ENO = ЛОЖЬ указывает, что во время исполнения кодового блока не было ошибок Вы можете подключить к ENO программу реагирования на ошибку, которая активизируется после возникновения ошибки. Если ошибка существует, то выходной параметр сохраняет данные об ошибке там, где ваша программа может к ним обратиться. Команды GET_ERROR и GET_ERR_ID могут использоваться для передачи информации об ошибке из исполняющегося в данный момент блока (вызванного блока) в вызывающий блок. Поместите эту команду в последнюю сеть вызываемого программного блока, чтобы сообщить конечное состояние при исполнении вызванного блока. Руководство по программированию 6.2 Расширенные команды Программируемый контроллер S7-1200 Системное руководство, 11/2009, A5E02669003-02 181 6.2.5 Коммуникационные операции 6.2.5.1 Обмен данными с открытой сетью Open Ethernet Обмен данными с открытой сетью Open Ethernet с использованием автоматического соединения и рассоединения (TSEND_C и TRCV_C) Указание Обработка команд TSEND_C и TRCV_C может занимать неопределенное количество времени. Чтобы обеспечить обработку этих команд в каждом цикле сканирования, вызывайте их из главного программного цикла, например, из OB программного цикла или из кодового блока, который вызывается из программного цикла. Не вызывайте эти команды из OB аппаратных прерываний, OB прерываний с задержкой, OB циклических прерываний, OB прерываний из-за ошибки или OB запуска. За информацией о передаче данных с помощью этих команд обратитесь к разделу о согласованности данных (стр. 96). Описание команды TSEND_C Команда TSEND_C устанавливает связь с партнером через TCP или ISO on TCP, посылает данные и может завершить соединение. После установления и создания соединения оно автоматически поддерживается и контролируется с помощью CPU. Команда TSEND_C объединяет в себе функции команд TCON, TDISCON и TSEND. Минимальный размер данных, которые вы можете передать с помощью команды TSEND_C, составляет один байт. Указание Настройка по умолчанию параметра LEN (LEN = 0) использует параметр DATA для определения длины передаваемых данных. Обеспечьте, чтобы параметр DATA, передаваемый командой TSEND_C, имел такой же размер, что и параметр DATA команды TRCV_C. Следующие функции описывают действие команды TSEND_C: ● Для установления соединения команда TSEND_C должна исполняться с параметром CONT = 1. ● После успешного установления соединения TSEND_C устанавливает на один цикл параметр DONE. ● Для завершения соединения используется TSEND_C с параметром CONT = 0. Соединение прерывается немедленно. Это оказывает воздействие также на принимающую станцию. Соединение завершается и там, и данные внутри принимающего буфера могут быть потеряны. ● Для передачи данных через существующее соединение команда TSEND_C должна исполняться при нарастающем фронте на REQ. После успешной передачи TSEND_C устанавливает на один цикл в 1 параметр DONE. ● Для установления соединения и передачи данных команда TSEND_C должна исполняться с CONT =1 и REQ = 1. После успешной передачи TSEND_C устанавливает на один цикл в 1 параметр DONE. Руководство по программированию 6.2 Расширенные команды Программируемый контроллер S7-1200 182 Системное руководство, 11/2009, A5E02669003-02 Описание TRCV_C Команда TRCV_C устанавливает связь с партнерским CPU через TCP или ISO on TCP, получает данные и может завершить соединение. После установления и создания соединения оно автоматически поддерживается и контролируется с помощью CPU. Команда TRCV_C объединяет в себе функции команд TCON, TDISCON, и TRCV. Минимальный размер данных, которые вы можете принять с помощью команды TRCV_C, составляет один байт. Команда TRCV_C не поддерживает передачу булевых данных или булевых массивов. Указание Настройка по умолчанию параметра LEN (LEN = 0) использует параметр DATA для определения длины передаваемых данных. Обеспечьте, чтобы параметр DATA, передаваемый командой TSEND_C, имел такой же размер, что и параметр DATA команды TRCV_C. Следующие функции описывают действие команды TRCV_C: ● Для установления соединения команда TRCV_C должна исполняться с параметром CONT = 1. ● Для получения данных исполняйте TRCV_C с параметром EN_R = 1. TRCV_C получает данные непрерывно, когда параметры EN_R = 1 и CONT = 1. ● Для завершения соединения используется TRCV_C с параметром CONT = 0. Соединение прерывается немедленно, и данные могут быть потеряны. Руководство по программированию 6.2 Расширенные команды Программируемый контроллер S7-1200 Системное руководство, 11/2009, A5E02669003-02 183 Режимы приема Команда TRCV_C работает в таких же режимах, что и команда TRCV. В следующей таблице показано, как данные записываются в область приема. Вариант протокола Ввод данных в область приема Параметр "connection_type [тип соединения]" TCP Прием данных заданной длины B#16#11 ISO on TCP Под управлением протокола B#16#12 Указание Из-за асинхронной обработки команды TSEND_C вы должны поддерживать согласованность данных в области передачи, пока параметр DONE или параметр ERROR не примет значение ИСТИНА. Для команды TSEND_C состояние ИСТИНА параметра DONE означает, что данные были переданы успешно. Это не означает, что CPU партнера по соединению фактически прочитал принимающий буфер. Из-за асинхронной обработки команды TRCV_C данные в области приема согласованы только в том случае, если параметр DONE = 1. В следующей таблице показаны отношения между параметрами BUSY, DONE и ERROR. BUSY DONE ERROR Описание ИСТИНА Не имеет значения Не имеет значения Задание обрабатывается. ЛОЖЬ ИСТИНА ЛОЖЬ Задание успешно завершено. ЛОЖЬ ЛОЖЬ ИСТИНА Задание завершено с ошибкой. Причину ошибки можно найти в параметре STATUS. ЛОЖЬ ЛОЖЬ ЛОЖЬ Новое задание не назначено. Руководство по программированию 6.2 Расширенные команды Программируемый контроллер S7-1200 184 Системное руководство, 11/2009, A5E02669003-02 Параметры TSEND_C Параметр Тип параметра Тип данных Описание REQ INPUT Bool Управляющий параметр REQ запускает задание на передачу при нарастающем фронте через соединение, описанное в CONNECT. CONT INPUT Bool • 0: рассоединить • 1: установить и удерживать соединение LEN INPUT Int Максимальное число байтов, подлежащих передаче. (Значение по умолчанию = 0, что означает, что параметр DATA определяет длину данных, подлежащих передаче.). CONNECT IN_OUT TCON- Param Указатель на описание соединения DATA IN_OUT Variant Область передачи; содержит адрес и длину данных, подлежащих передаче. COM_RST IN_OUT Bool • 1: Полный перезапуск функционального блока, существующее соединение разрывается. DONE OUTPUT Bool • 0: Задание еще не запущено или еще исполняется. • 1: Задание исполнено с ошибкой. BUSY OUTPUT Bool • 0: Задание завершено. • 1: Задание еще не завершено. Новое задание не может быть запущено. ERROR OUTPUT Bool • 1: Во время обработки произошла ошибка. Параметр STATUS предоставляет подробную информацию о типе ошибки. STATUS OUTPUT Word Информация об ошибке Параметры TRCV_C Руководство по программированию 6.2 Расширенные команды Программируемый контроллер S7-1200 Системное руководство, 11/2009, A5E02669003-02 185 Параметр Тип параметра Тип данных Описание EN_R IN Bool Управляющий параметр, разблокированный для приема: Когда EN_R = 1, команда TRCV_C готова к приему. Задание на прием обрабатывается. CONT IN Bool Управляющий параметр CONT: • 0: рассоединить • 1: установить и удерживать соединение LEN IN Int Длина области приема в байтах. (Значение по умолчанию = 0, что означает, что параметр DATA определяет длину данных, подлежащих передаче.). CONNECT IN_OUT TCON- Param Указатель на описание соединения DATA IN_OUT Variant Область приема содержит начальный адрес и максимальную длину принимаемых данных. COM_RST IN_OUT Bool • 1: Полный перезапуск функционального блока; существующее соединение разрывается. DONE OUT Bool • 0: Задание еще не запущено или еще исполняется. • 1: Задание исполнено с ошибкой. BUSY OUT Bool • 0: Задание завершено. • 1: Задание еще не завершено. Новое задание не может быть запущено. ERROR OUT Bool • 1: Во время обработки произошла ошибка. Параметр STATUS предоставляет подробную информацию о типе ошибки. STATUS OUT Word Информация об ошибке RCVD_LEN OUT Int Количество фактически принятых данных, в байтах Руководство по программированию 6.2 Расширенные команды Программируемый контроллер S7-1200 186 Системное руководство, 11/2009, A5E02669003-02 Параметры Error и Status ERROR STATUS (W#16#...) Описание 0 0000 Задание исполнено с ошибкой 0 7000 Обработки задания не происходит 0 7001 Запуск обработки задания, установление соединения, ожидание партнера по соединению 0 7002 Происходит прием или передача данных 0 7003 Соединение завершается 0 7004 Соединение установлено и контролируется, обработки задания не происходит 1 8085 Параметр LEN превышает максимально допустимое значение 1 8086 Параметр CONNECT выходит за пределы допустимого диапазона 1 8087 Достигнуто максимальное число соединений; дополнительные соединения невозможны 1 8088 Параметр LEN превышает область памяти, указанную в параметре DATA; принимающая область памяти слишком мала 1 8089 Параметр CONNECT не указывает на блок данных. 1 8091 Превышена максимальная глубина вложения 1 809A Параметр CONNECT указывает на поле, которое не соответствует длине в описании соединения. 1 809B local_device_id в описании соединения не согласовывается с CPU. 1 80A1 Коммуникационная ошибка: • Указанное соединение еще не установлено • Указанное соединение в настоящее время завершается; передача через это соединение невозможна • Интерфейс снова инициализируется 1 80A3 Делается попытка завершить несуществующее соединение 1 80A4 IP-адрес соединения с удаленным партнером неверен. Например, IP- адрес удаленного партнера совпадает с IP-адресом локального партнера. 1 80A7 Коммуникационная ошибка: вы вызвали TDISCON, прежде чем был завершен TCON (TDISCON должен сначала полностью завершить соединение, указанное в ID) 1 80B2 Параметр CONNECT указывает на блок данных, который был сгенерирован с ключевым словом UNLINKED 1 80B3 Несовместимые параметры: • Ошибка в описании соединения • Локальный порт (параметр local_tsap_id) уже присутствует в описании другого соединения • ID в описании соединения отличен от ID, указанного в качестве параметра Руководство по программированию 6.2 Расширенные команды Программируемый контроллер S7-1200 Системное руководство, 11/2009, A5E02669003-02 187 ERROR STATUS (W#16#...) Описание 1 80B4 При использовании ISO on TCP (connection_type = B#16#12) для установления пассивного соединения код ошибки 80B4 предупреждает вас, что введенный TSAP не соответствует одному из следующих требований к адресу: • Если локальный TSAP имеет длину 2 и значение ID для первого байта, равное E0 или E1 (шестнадцатеричное), то второй байт должен быть 00 или 01. • Если локальный TSAP имеет длину 3 или больше и значение ID для первого байта E0 или E1 (шестнадцатеричное), то второй байт должен быть 00 или 01, а все остальные байты должны быть действительными символами ASCII. • Если локальный TSAP имеет длину 3 или больше, и первый байт ID TSAP не имеет значения E0 или E1 (шестнадцатеричное), то все байты ID TSAP должны быть действительными символами ASCII. Действительными символами ASCII являются значения байтов от 20 до 7E (шестнадцатеричное). 1 80C3 Все ресурсы соединений используются. 1 80C4 Коммуникационная ошибка, связанная со временем: • Соединение не может быть установлено в настоящее время • Интерфейс получает новые параметры • Сконфигурированное соединение в настоящее время удаляется командой TDISCON 1 8722 Параметр CONNECT: Недействительная область источника: область не существует в DB 1 873A Параметр CONNECT: Доступ к описанию соединения невозможен (напр., DB отсутствует) 1 877F Параметр CONNECT: Внутренняя ошибка, например, недействительная ссылка на ANY Обмен данными с открытой сетью Open Ethernet с использованием управления соединением и рассоединением Указание Обработка команд TSEND_C и TRCV_C может занимать неопределенное количество времени. Чтобы обеспечить обработку этих команд в каждом цикле сканирования, вызывайте их из главного программного цикла, например, из OB программного цикла или из кодового блока, который вызывается из программного цикла. Не вызывайте эти команды из OB аппаратных прерываний, OB прерываний с задержкой, OB циклических прерываний, OB прерываний из-за ошибки или OB запуска. Руководство по программированию 6.2 Расширенные команды Программируемый контроллер S7-1200 188 Системное руководство, 11/2009, A5E02669003-02 Обмен данными через Ethernet с помощью протоколов TCP и ISO on TCP Обменом данными управляют в программе следующие команды: ● TCON устанавливает соединение. ● TSEND и TRCV передают и принимают данные. ● TDISCON разрывает соединение. Минимальный размер данных, которые вы можете передать или принять с помощью команд TSEND и TRCV, составляет один байт. Команда TRCV не поддерживает передачу булевых данных или булевых массивов. Дополнительную информацию вы найдете в разделе о согласованности данных (стр. 96). Указание Настройка по умолчанию параметра LEN (LEN = 0) использует параметр DATA для определения длины передаваемых данных. Обеспечьте, чтобы параметр DATA, передаваемый командой TSEND, имел такой же размер, что и параметр DATA команды TRCV. Оба партнера по обмену данными выполняют команду TCON, чтобы создать и установить коммуникационное соединение. С помощью параметров вы указываете активный и пассивный концевой пункт обмена данными. После создания и установления соединения оно автоматически поддерживается и контролируется посредством CPU. Если соединение прекращается, например, из-за обрыва провода или удаленного партнера по обмену данными, то активный партнер пытается вновь установить сконфигурированное соединение. Вы не должны вновь выполнять команду TCON. Если выполняется команда TDISCON или CPU перешел в состояние STOP, то существующее соединение завершается, и созданное соединение удаляется. Для создания и восстановления соединения вы должны снова выполнить команду TCON. |