Руководство по программированию 6 profinet 7 Двухточечная связь (PointtoPoint, PtP) 8
Скачать 3.76 Mb.
|
Параметр Определение Recognize message end with a character sequence [Распознавать конец сообщения по последовательности символов] Конец сообщения наступает, когда принята определенная последовательность символов. Вы можете задать последовательность, содержащую до пяти символов. Для позиции каждого символа можно указать или конкретный шестнадцатеричный символ, или что этот символ игнорируется при сопоставлении последовательностей. Ведущие игнорируемые символы не являются частью условия конца сообщения. Завершающие игнорируемые символы являются частью условия конца сообщения. Пример параметризации В этом случае условие конца сообщения удовлетворяется, когда последовательно принимаются два символа 0x7A, за которыми следуют два любых символа. Символ, предшествующий комбинации 0x7A 0x7A, не является частью последовательности конца сообщения. Два символа, следующие за комбинацией 0x7A 0x7A, необходимы для завершения последовательности конца сообщения. Символы в позициях 4 и 5 не имеют значения, но должны быть приняты, чтобы удовлетворить условие конца сообщения. Указание длины сообщения в самом сообщении При выборе особого условия, в котором длина сообщения включается в само сообщение, вы должны задать три параметра, которые определяют информацию о длине сообщения. Фактическая структура сообщения зависит от используемого протокола. Этими тремя параметрами являются: ● n: позиция символа (база 1) в сообщении, с которого начинается указатель длины ● Length size [Размер указателя длины]: Число байтов (один, два или четыре) в указателе длины ● Length m [Длина m]: Число символов после указателя длины, которые не учитываются в значении длины Эти поля появляются в конфигурации приема сообщений в свойствах устройства. Пример 1: Рассматривается сообщение, структурированное в соответствии со следующим протоколом: Символы с 3 по 14 учитываются при определении длины STX Len (n) ADR PKE INDEX PWD STW HSW BCC 1 2 3 4 5 6 7 8 9 10 11 12 13 14 STX 0x0C xx xxxx xxxx xxxx xxxx xxxx xx Двухточечная связь (PtP) 8.5 Программирование обмена данными через PtP Программируемый контроллер S7-1200 Системное руководство, 11/2009, A5E02669003-02 291 Параметры длины принимаемого сообщения конфигурируются следующим образом: ● n = 2 (Информация о длине сообщения начинается с байта 2) ● Размер указателя длины = 1 (Длина сообщения определена в одном байте) ● Длина m = 0 (Вслед за указателем длины нет дополнительных символов, которые не учитываются при определении длины. За указателем длины следуют 12 символов) В этом примере символы с 3 по 14 включительно являются символами, которые учитываются при расчете длины Len (n). Пример 2: Рассмотрим еще одно сообщение, структурированное в соответствии со следующим протоколом: Символы с 5 по 10 учитываются при определении длины SD1 Len (n) Len (n) SD2 DA SA FA Блок данных=3 байта FCS ED 1 2 3 4 5 6 7 8 9 10 11 12 xx 0x06 0x06 xx xx xx xx xx xx xx xx xx Параметры длины принимаемого сообщения конфигурируются следующим образом: ● n = 3 (Информация о длине сообщения начинается с байта 3) ● Значение длины = 1 (Длина сообщения определена в одном байте) ● Длина m = 3 (Вслед за указателем длины имеются три символа, которые не учитываются при определении длины. В протоколе этого примера символы SD2, FCS и ED не учитываются при расчете длины. Остальные шесть символов учитываются при расчете длины; таким образом, общее число символов после указателя длины равно девяти) В этом примере символы с 5 по 10 включительно являются символами, которые учитываются при расчете длины Len (n). 8.5 Программирование обмена данными через PtP STEP 7 Basic предоставляет расширенный набор команд, которые позволяют программе пользователя выполнять обмен данными через двухточечное соединение (Point-to-Point, PtP) с помощью протокола, сконструированного и заданного в программе пользователя. Эти команды могут быть разделены на две категории: ● Команды конфигурирования ● Коммуникационные команды Команды конфигурирования Прежде чем ваша пользовательская программа сможет начать обмен данными через PtP, вы должны сконфигурировать коммуникационный интерфейс и параметры для приема и передачи данных. Вы можете выполнить конфигурирование интерфейса и сообщений для каждого коммуникационного модуля в конфигурации устройств или с помощью этих команд в вашей пользовательской программе: • PORT_CFG • SEND_CFG • RCV_CFG Двухточечная связь (PtP) 8.5 Программирование обмена данными через PtP Программируемый контроллер S7-1200 292 Системное руководство, 11/2009, A5E02669003-02 Коммуникационные команды Коммуникационные команды PtP позволяют программе пользователя посылать сообщения в коммуникационные модули и принимать сообщения из этих модулей. Дальнейшую информацию о передаче данных с помощью этих команд вы найдете в разделе о согласованности данных (стр. 96). Все функции PtP работают асинхронно. Программа пользователя может использовать архитектуру опроса для определения состояния операций передачи и приема. Команды SEND_PTP и RCV_PTP могут исполняться одновременно. Коммуникационные модули буферизуют передаваемые и принимаемые сообщения по мере необходимости до максимального размера буфера 1024 байта. Коммуникационные модули передают сообщения устройствам, участвующим в обмене данными через PtP, и принимают сообщения от них. Протокол сообщений находится в буфере, который принимается из определенного коммуникационного порта или передается в этот порт. • SEND_PTP • RCV_PTP Дополнительные команды предоставляют возможность сброса приемного буфера, а также получения и установки определенных сигналов RS232. • RCV_RST • SGN_GET • SGN_SET 8.5.1 Архитектура опроса Команды двухточечного обмена данными в S7-1200 должны вызываться циклически /периодически для контроля принимаемых сообщений. Опрос процесса передачи сообщает программе пользователя, когда передача заканчивается. Архитектура опроса: master-устройство Типичной для master-устройства является следующая последовательность: 1. Команда SEND_PTP инициирует передачу коммуникационному модулю. 2. Команда SEND_PTP выполняется в следующих друг за другом циклах, опрашивая состояние процесса передачи. 3. Когда команда SEND_PTP показывает, что передача завершена, пользовательский код может готовиться к приему ответа. 4. Команда RCV_PTP выполняется многократно для контроля ответа. После получения в CM ответного сообщение команда RCV_PTP копирует ответ в CPU и сообщает, что получены новые данные. 5. Программа пользователя может обрабатывать ответ. 6. Перейдите у шагу 1 и повторите цикл. Двухточечная связь (PtP) 8.6 Команды для двухточечного соединения Программируемый контроллер S7-1200 Системное руководство, 11/2009, A5E02669003-02 293 Архитектура опроса: slave-устройство Типичной для slave-устройства является следующая последовательность: 1. Программа пользователя должна выполнять команду RCV_PTP в каждом цикле. 2. После того как CM получил запрос, команда RCV_PTP показывает, что новые данные готовы, и запрос будет скопирован в CPU. 3. Программа пользователя должна обслужить запрос и сгенерировать ответ. 4. Для передачи ответ обратно master-устройству используется команда SEND_PTP. 5. Повторите команду SEND_PTP несколько раз, чтобы убедиться, что передача происходит. 6. Перейдите у шагу 1 и повторите цикл. Slave-устройство должно обеспечить достаточно частый вызов команды RCV_PTP, чтобы получить передачу от master-устройства, прежде чем у него истечет время ожидания ответа. Для выполнения этой задачи программа пользователя может вызывать RCV_PTP из циклического OB, где время цикла достаточно для получения передачи от master-устройства, прежде чем истечет время ожидания. Если вы установите время цикла для OB так, чтобы на интервале времени ожидания master- устройства команда выполнилась дважды, то будет гарантировано, что программа пользователя примет все передачи без потерь. 8.6 Команды для двухточечного соединения 8.6.1 Общие параметры команд для двухточечного соединения Поведение светодиодов на коммуникационном модуле На коммуникационном модуле (CM) имеется три светодиодных индикатора: ● Диагностический светодиод: Этот светодиод мигает красным светом, пока к нему не обращается CPU. После запуска CPU проверяет модули и обращается к CM. Диагностический светодиод начинает мигать зеленым светом. Это значит, что CPU обратился к CM, но еще не обеспечил его конфигурацией. Конфигурация загружается в модуль, когда программа загружается в CPU. После загрузки в CPU диагностический светодиод на коммуникационном модуле должен постоянно гореть зеленым светом. ● Светодиод передачи: Этот светодиод находится над светодиодом приема. Светодиод передачи горит, когда данные передаются из коммуникационного порта. ● Светодиод приема: Это светодиод горит, когда данные принимаются коммуникационным портом. Двухточечная связь (PtP) 8.6 Команды для двухточечного соединения Программируемый контроллер S7-1200 294 Системное руководство, 11/2009, A5E02669003-02 Разрешающая способность тактов передачи Для некоторых параметров задается количество тактов передачи при сконфигурированной скорости передачи. Задание параметра в тактах передачи делает этот параметр независимым от скорости передачи. Максимальное значение для всех параметров, задаваемых в тактах передачи, равно 65535. Однако максимальное время, которое может измерить S7-1200, равно 8 секундам. Входной параметр REQ Многие из команд PtP используют вход REQ, чтобы инициировать исполнение команды при нарастающем фронте. Вход REQ должен быть равен 1 (ИСТИНА) в течение одного исполнения команды, но он может продолжать принимать значение ИСТИНА так долго, как это необходимо. Команда не начнет другую операцию, пока она не будет вызвана с входом REQ, имеющим значение ЛОЖЬ, так что команда может сбросить предыдущее состояние входа REQ. Это необходимо, чтобы команда могла обнаружить нарастающий фронт для инициирования следующей операции. Когда вы вставляете в программу команду PtP, вы получаете напоминание о необходимости задать экземплярный DB. Используйте уникальный DB для каждого типа команды PtP. Это значит, что все команды SEND_PTP для данного порта должны иметь один и тот же экземплярный DB, но SEND_PTP и RCV_PTP должны иметь разные экземплярные DB. Этот гарантирует, что входы, например, REQ, будут надлежащим образом обработаны каждой командой. Входной параметр PORT Выберите из ниспадающего меню (связанного с входом PORT) идентификатор порта CM для обработки этого экземпляра команды. Этот номер вы найдете также как "hardware identifier [идентификатор аппаратуры]" в информации о конфигурации для CM. Выходные параметры NDR, DONE, ERROR, и STATUS ● Выход DONE указывает, что запрошенная операция выполнена без ошибок. Этот выход устанавливается на время одного цикла. ● Выход NDR (готовы новые данные) указывает, что запрошенное действие завершено без ошибок и получены новые данные. Этот выход устанавливается на время одного цикла. ● Выход ERROR указывает, что запрошенное действие завершено с ошибкой. Этот выход устанавливается на время одного цикла. ● Выход STATUS используется для сообщения об ошибках или промежуточных результатах. – Если устанавливается бит DONE или NDR, то STATUS устанавливается в 0 или получает значение информационного кода. – Если бит ERROR устанавливается, то STATUS получает значение кода ошибки. – Если ни один из упомянутых битов не устанавливается, то команда возвращает информацию, описывающую текущее состояние функции, например, состояние "занято". Двухточечная связь (PtP) 8.6 Команды для двухточечного соединения Программируемый контроллер S7-1200 Системное руководство, 11/2009, A5E02669003-02 295 Общие коды условий STATUS (W#16#....) Описание 0000 Нет ошибки 8x3A Недопустимый указатель в параметре x 8070 Вся внутренняя память экземпляра используется 8080 Недопустимый номер порта 8081 Превышено время ожидания, ошибка модуля или другая внутренняя ошибка 8082 Параметризация не удалась, так как она происходит в фоновом режиме 8083 Переполнение буфера: CM вернул принятое сообщение с длиной, превышающей допустимый параметр длины. 8090 Неправильная длина сообщения, неправильный субмодуль или недопустимое сообщение 8091 Неправильная версия в параметризующем сообщении 8092 Неправильная длина записи в параметризующем сообщении 8.6.2 Команда PORT_CFG PORT_CFG (конфигурация порта) дает вам возможность изменять параметры порта, например, скорость передачи, из своей программы. Вы можете установить начальную статическую конфигурацию порта в свойствах конфигурации устройств или просто использовать значения по умолчанию. Вы можете исполнить команду PORT_CFG в вашей программе для изменения конфигурации. Изменения конфигурации, выполненные с помощью команды PORT_CFG, не сохраняются постоянно в CPU. Параметры, установленные в конфигурации устройств, восстанавливаются, когда CPU переходит из RUN в STOP, а также после выключения и последующего включения питания. Дальнейшую информацию вы найдете под заголовками Конфигурирование коммуникационных портов (стр. 281) и Управление потоками (стр. 282). Параметр Тип параметра Тип данных Описание REQ IN Bool Активизировать изменение конфигурации при нарастающем фронте на этом входе. PORT IN PORT Идентификатор коммуникационного порта: Этот логический адрес является константой, на которую может быть сделана ссылка во вкладке "Constants" стандартной таблицы переменных. PROTOCOL IN UInt 0 - протокол двухточечной связи 1..n - будущие определения конкретных протоколов Двухточечная связь (PtP) 8.6 Команды для двухточечного соединения Программируемый контроллер S7-1200 296 Системное руководство, 11/2009, A5E02669003-02 Параметр Тип параметра Тип данных Описание BAUD IN UInt Скорость передачи порта: 1 - 300 Бод 2 - 600 Бод 3 - 1200 Бод 4 - 2400 Бод 5 - 4800 Бод 6 - 9600 Бод 7 - 19200 Бод 8 - 38400 Бод 9 - 57600 Бод 10 - 76800 Бод 11 - 115200 Бод PARITY IN UInt Контроль четности порта: 1 - Нет контроля четности 2 - контроль на четность 3 - контроль на нечетность 4 - контроль по единичному биту четности 5 - контроль по нулевому биту четности DATABITS IN UInt Число битов на символ: биты данных 1 - 8 биты данных 2 - 7 STOPBITS IN UInt Стоповые биты: 1 - 1 стоповый бит 2 - 2 стоповых бита FLOWCTRL IN UInt Управление потоком: 1 - Нет управление потоком 2 - XON/XOFF 3 – Аппаратное, RTS всегда включен 4 - Аппаратное, RTS включается XONCHAR IN Char Укажите символ, который используется в качестве символа XON. Обычно это символ DC1 (11H). Этот параметр анализируется только в том случае, если разблокировано управление потоком. XOFFCHAR IN Char Укажите символ, который используется в качестве символа XOFF. Обычно это символ DC3 (13H). Этот параметр анализируется только в том случае, если разблокировано управление потоком. XWAITIME IN UInt Укажите, как долго следует ждать символа XON после получения символа XOFF, или как долго следует ждать сигнала CTS после активизации RTC (от 0 до 65535 мс). Этот параметр анализируется только в том случае, если разблокировано управление потоком. DONE OUT Bool ИСТИНА в течение одного цикла, после того как последний запрос был выполнен без ошибок ERROR OUT Bool ИСТИНА в течение одного цикла, после того как последний запрос был выполнен с ошибкой STATUS OUT Word Код условия выполнения Двухточечная связь (PtP) 8.6 Команды для двухточечного соединения Программируемый контроллер S7-1200 Системное руководство, 11/2009, A5E02669003-02 297 STATUS (W#16#....) Описание 80A0 Указанный протокол не существует. 80A1 Указанная скорость передачи не существует. 80A2 Указанный вариант контроля четности не существует. 80A3 Указанное число битов данных не существует. 80A4 Указанное число стоповых битов не существует. 80A5 Указанный тип управления потоком не существует. 80A6 Время ожидания равно 0 и управление потоком разблокировано 80A7 XON и XOFF являются недопустимыми значениями 8.6.3 Команда SEND_CFG Команда SEND_CFG (конфигурирование передачи) делает возможным динамическое конфигурирование параметров последовательной передачи для порта двухточечной связи. Все сообщения, стоящие в очереди в коммуникационном модуле (CM), будут отвергнуты, как только будет выполнена команда SEND_CFG. Вы можете установить начальную статическую конфигурацию порта в свойствах конфигурации устройств или просто использовать значения по умолчанию. Вы можете исполнить команду SEND_CFG в вашей программе для изменения конфигурации. Изменения конфигурации, выполненные с помощью команды SEND_CFG, не сохраняются постоянно в ПЛК. Параметры, установленные в конфигурации устройств, восстанавливаются, когда ПЛК переходит из RUN в STOP, а также после выключения и последующего включения питания. См. Конфигурирование параметров приема и передачи (стр. 284). |