Руководство по программированию 6 profinet 7 Двухточечная связь (PointtoPoint, PtP) 8
Скачать 3.76 Mb.
|
параметра Тип данных Описание REQ IN Bool Ввод запроса: • 0 – нет запроса • 1 – запрос на передачу данных в slave-устройство(-а) Modbus MB_ADR IN USInt Адрес станции Modbus RTU: Допустимый диапазон адресов: от 0 до 247 Значение 0 зарезервировано для транслирования сообщения всем slave-устройствам Modbus. Функциональные коды Modbus 05, 06, 15 и 16 являются единственными функциональными кодами, поддерживаемыми для широкого транслирования. MODE IN USInt Выбор режима: Определяет вид запроса: чтение, запись или диагностика Подробности вы найдете в следующей таблице функций Modbus. DATA_ADDR IN UDInt Начальный адрес в Slave-устройстве: Определяет начальный адрес данных, к которым нужно получить доступ в slave-устройстве Modbus. Допустимые адреса вы найдете в следующей таблице функций Modbus. DATA_LEN IN UInt Длина данных: Определяет число битов или слов, к которым нужно получить доступ в этом запросе. Допустимые длины вы найдете в следующей таблице функций Modbus. DATA_PTR IN Variant Указатель на данные: Указывает на адрес DB в CPU для записываемых или считываемых данных. DB должен быть типа "NOT symbolic access only [Только НЕ символическая адресация]". См. ниже указание для DATA_PTR. NDR OUT Bool Готовы новые данные: • 0 – транзакция не завершена • 1 – указывает, что команда MB_MASTER завершила запрошенную транзакцию со slave-устройством(-ами) Modbus BUSY OUT Bool Занят: • 0 – транзакция командой MB_MASTER не производится • 1 – осуществляется транзакция командой MB_MASTER ERROR OUT Bool Ошибка: • 0 – ошибка не обнаружена • 1 – указывает, что обнаружена ошибка и код ошибки в параметре STATUS действителен STATUS OUT Word Код условия выполнения Руководство по программированию 6.3 Глобальные библиотечные команды Программируемый контроллер S7-1200 226 Системное руководство, 11/2009, A5E02669003-02 Правила обмена данными для master-устройства Modbus ● Команда MB_COMM_LOAD должна быть исполнена для конфигурирования порта до того, как команда MB_MASTER сможет обмениваться данными с этим портом. ● Если порт должен использоваться для инициирования запросов master-устройства Modbus, то этот порт не может использоваться командой MB_SLAVE. С этим портом может использоваться один или несколько экземпляров исполнения команды MB_MASTER. ● Команды Modbus не используют события, прерывающие обмен данными, для управления процессом обмена данными. Ваша программа должна опрашивать команду MB_MASTER об условиях завершения передачи и приема. ● Если ваша программа работает как master-устройство Modbus и использует команду MB_MASTER для передачи запроса slave-устройству, то вы должны продолжать опрос (исполнять команду MB_MASTER) до тех пор, пока не будет получен ответ от slave-устройства. ● Осуществляйте все исполнения команды MB_MASTER для данного порта из одного и того же OB (или из OB одного и того же уровня приоритета). Параметр REQ Значение REQ ЛОЖЬ = Нет запроса Значение REQ ИСТИНА = Запрос на передачу данных slave-устройству(-ам) Modbus. Вы должны подать сигнал на этот вход через контакт, управляемый нарастающим фронтом, при первом вызове на исполнение команды MB_MASTER. Импульс, запускаемый фронтом, вызывает запрос на передачу один раз. Все входы фиксируются и удерживаются в неизменном состоянии на время одного запроса и ответа, инициируемого этим входом. Внутри команда MB_MASTER запускает механизм состояний, который обеспечивает, что никакой другой команде MB_MASTER не будет позволено выдавать запрос, пока данный запрос не будет завершен. Кроме того, если один и тот же экземпляр вызова FB команды MB_MASTER исполняется снова с входом REQ, имеющим значение ИСТИНА, до завершения запроса, то последующие передачи не будут выполняться. Однако, как только запрос будет завершен, то будет выдан новый запрос, если MB_MASTER исполняется с входом REQ, имеющим значение ИСТИНА. Руководство по программированию 6.3 Глобальные библиотечные команды Программируемый контроллер S7-1200 Системное руководство, 11/2009, A5E02669003-02 227 Через параметры DATA_ADDR и MODE выбирается тип функции Modbus DATA_ADDR (начальный адрес Modbus в Slave-устройстве): Указывает начальный адрес данных, к которым нужно получить доступ в slave-устройстве Modbus. MB_MASTER использует вместо ввода кода функции вход MODE. Комбинация MODE и области адресов Modbus определяет код функции, который используется в фактическом сообщении Modbus. В следующей таблице показано соответствие между параметром MODE команды MBUS_MASTER, кодом функции Modbus и областью адресов Modbus. Функции Modbus команды MB_MASTER Параметр DATA_ADDR для адреса Modbus Тип адреса Параметр DATA_LEN для длины данных Modbus Функция Modbus Режим 0 от 00001 до 09999 Выходные биты от 1 до 2000 01H от 10001 – 19999 Входные биты от 1 до 2000 02H от 30001 - 39999 Входные регистры от 1 до 125 04H Чтение от 40001 до 49999 от 400001 до 465536 (расширенные) Регистры временного хранения информации от 1 до 125 03H Режим 1 от 00001 до 09999 Выходные биты 1 (один бит) 05H от 40001 до 49999 от 400001 до 465536 (расширенные) Регистры временного хранения информации 1 (одно слово) 06H от 00001 до 09999 Выходные биты от 2 до 1968 15H Запись от 40001 до 49999 от 400001 до 465536 (расширенные) Регистры временного хранения информации от 2 до 123 16H Режим 2 Некоторые slave-устройства Modbus не поддерживают записи в один бит или одно слово с помощью функций Modbus 05H и 06H. В этих случаях используется режим 2 для принудительной записи одного бита и слова с помощью функций Modbus 15H и 16H. от 00001 до 09999 Выходные биты от 1 до 1968 15H Запись от 40001 до 49999 от 400001 до 465536(расширенные) Регистры временного хранения информации от 1 до 123 16H Режим 11 • Считывает слово счетчика событий из slave-устройства Modbus, которое указывается в качестве входа для MB_ADDR • У slave-устройства Modbus S7-1200 фирмы Siemens этот счетчик увеличивает свое значение на 1 каждый раз, когда slave-устройство получает действительный запрос на чтение или запись (не широковещательный) от master-устройства Modbus. • Возвращаемое значение сохраняется по адресу слова, указанному в качестве входа DATA_PTR. • Для этого режима не требуется действительного значения DATA_LEN. Руководство по программированию 6.3 Глобальные библиотечные команды Программируемый контроллер S7-1200 228 Системное руководство, 11/2009, A5E02669003-02 Функции Modbus команды MB_MASTER Режим 80 • Проверяет коммуникационное состояние slave-устройства Modbus, которое указывается в качестве входа для MB_ADDR • Установка выходного битв NDR команды MB_MASTER указывает, что адресованное slave-устройство Modbus отреагировало соответствующими ответными данными. • В вашу программу никакие данные не возвращаются. • Для этого режима не требуется действительного значения DATA_LEN. Режим 81 • Сбрасывает счетчик событий (как возвращенный режимом 11) на slave-устройстве Modbus, который указывается в качестве входа для MB_ADDR • Установка выходного битв NDR команды MB_MASTER указывает, что адресованное slave-устройство Modbus отреагировало соответствующими ответными данными. • В вашу программу никакие данные не возвращаются. • Для этого режима не требуется действительного значения DATA_LEN. Параметр DATA_PTR Параметр DATA_PTR указывает локальный исходный или целевой адрес (адрес в CPU S7-1200) данных, которые, соответственно, должны быть прочитаны или записаны. Когда вы используете команду MB_MASTER для создания master- устройства Modbus, вы должны создать глобальный блок данных, который предоставляет память для процессов чтения и записи на slave-устройствах Modbus. Указание Параметр DATA_PTR должен ссылаться на глобальный блок данных, который был создан с деактивированным атрибутом Symbolic Access Only [Только символический доступ]. Вы должны снять метку с триггерной кнопки "Symbolic address only", когда вы добавляете новый блок данных, чтобы создать глобальный DB классического типа. Руководство по программированию 6.3 Глобальные библиотечные команды Программируемый контроллер S7-1200 Системное руководство, 11/2009, A5E02669003-02 229 Структуры блока данных для параметра DATA_PTR ● Эти типы данных действительны для чтения слов адресов Modbus от 30001 до 39999, от 40001 до 49999 и от 400001 до 465536, а также для записи слов в адреса Modbus от 40001 до 49999 и от 400001 до 465536. – Стандартный массив данных типа WORD, UINT или INT, как показано ниже. – Именованная структура типа WORD, UINT или INT, в которой каждый элемент имеет уникальное имя и 16-битовый тип данных. – Именованная смешанная структура, в которой каждый элемент имеет уникальное имя и 16- или 32-битовый тип данных. ● Для чтения и записи битов для адресов Modbus от 00001 до 09999 и от 10001 до 19999. – Стандартный массив из данных типа Bool. – Именованная булева структура из уникально именованных переменных типа Bool. ● Хотя это и не является необходимым, но рекомендуется, чтобы каждая команда MB_MASTER имела свою собственную отдельную область в глобальном блоке данных. Причиной для этой рекомендации является то, что возможность нарушения данных возрастает, если несколько команд MB_MASTER производят чтение и запись в одной и той же области глобального блока данных. ● Не требуется, чтобы области данных DATA_PTR находились в одном и том же глобальном блоке данных. Вы можете создать один блок данных с несколькими областями для операций чтения Modbus, один блок данных для операций записи Modbus или один блок данных для каждой подчиненной станции. ● Все массивы в нижеприведенном примере созданы как массивы с базисом 1 [1 … ##]. Массивы могут создаваться также как массивы с базисом 0 [0 … ###] или смесью базиса 0 и базиса 1. Руководство по программированию 6.3 Глобальные библиотечные команды Программируемый контроллер S7-1200 230 Системное руководство, 11/2009, A5E02669003-02 Примеры команд MB_MASTER, обращающихся к глобальным блокам данных DATA_PTR Представленный ниже пример глобального блока данных использует 4 уникально именованных массивов с 6 словами для сохранения данных запросов Modbus. Хотя массивы данных в этом примере имеют одинаковый размер, но массивы могут быть разных размеров и показаны одного размера для упрощения примеров. Каждый массив может быть также заменен структурой данных, содержащей более информативные имена переменных и смешанные типы данных. Примеры альтернативных структур данных представлены в описании параметра HR_DB команды (стр. 237). В представленных ниже примерах команды MB_MASTER показан только параметр DATA_PTR, но не показаны другие необходимые параметры. Цель этих примеров состоит в том, чтобы показать, как команда MB_MASTER использует блок данных DATA_PTR. Стрелки на рисунке показывают, как каждый массив связан с различными командами MB_MASTER. Руководство по программированию 6.3 Глобальные библиотечные команды Программируемый контроллер S7-1200 Системное руководство, 11/2009, A5E02669003-02 231 Первый элемент любого массива или структуры всегда является первым источником или первой целью любого процесса чтения или записи Modbus. Все описанные ниже сценарии основаны на вышеприведенной диаграмме. Сценарий 1: Если первая команда MB_MASTER считывает 3 слова данных из адреса Modbus 40001 на любом действующем slave-устройстве Modbus, то происходит следующее. Слово из адреса 40001 сохраняется в "Data".Array_1[1]. Слово из адреса 40002 сохраняется в "Data".Array_1[2]. Слово из адреса 40003 сохраняется в "Data".Array_1[3]. Сценарий 2: Если первая команда MB_MASTER считывает 4 слова данных из адреса Modbus 40015 на любом действующем slave-устройстве Modbus, то происходит следующее. Слово из адреса 40015 сохраняется в "Data".Array_1[1]. Слово из адреса 40016 сохраняется в "Data".Array_1[2]. Слово из адреса 40017 сохраняется в "Data".Array_1[3]. Слово из адреса 40018 сохраняется в "Data".Array_1[4]. Сценарий 3: Если вторая команда MB_MASTER считывает 2 слова данных из адреса Modbus 30033 на любом действующем slave-устройстве Modbus, то происходит следующее. Слово из адреса 30033 сохраняется в "Data".Array_2[1]. Слово из адреса 30034 сохраняется в "Data".Array_2[2]. Сценарий 4: Если третья команда MB_MASTER записывает 4 слова данных в адрес Modbus 40050 на любом действующем slave-устройстве Modbus, то происходит следующее. Слово из "Data".Array_3[1] записывается в адрес Modbus 40050. Слово из "Data".Array_3[2] записывается в адрес Modbus 40051. Слово из "Data".Array_3[3] записывается в адрес Modbus 40052. Слово из "Data".Array_3[4] записывается в адрес Modbus 40053. Сценарий 5: Если третья команда MB_MASTER записывает 3 слова данных в адрес Modbus 40001 на любом действующем slave-устройстве Modbus, то происходит следующее. Слово из "Data".Array_3[1] записывается в адрес Modbus 40001. Слово из "Data".Array_3[2] записывается в адрес Modbus 40002. Слово из "Data".Array_3[3] записывается в адрес Modbus 40003. Сценарий 6: Если четвертая команда MB_MASTER использует режим 11 (извлекает значение счетчика действительных сообщений) из любого действующего slave- устройства Modbus, происходит следующее. Слово со значением счетчика сохраняется в "Data".Array_4[1]. Руководство по программированию 6.3 Глобальные библиотечные команды Программируемый контроллер S7-1200 232 Системное руководство, 11/2009, A5E02669003-02 Пример считывания и записи битов, используя адреса слов в качестве входа DATA_PTR Таблица 6-1. Сценарий 7: Чтение 4 выходных битов, начиная с адреса Modbus 00001 Значения входов команды MB_MASTER Значения slave-устройства Modbus MB_ADDR 27 (пример slave- устройства) 00001 ON MODE 0 (чтение) 00002 ON DATA_ADDR 00001 (выходы) 00003 OFF DATA_LEN 4 00004 ON 00005 ON 00006 OFF 00007 ON DATA_PTR "Data".Array_4 00008 OFF Значения "Data".Array_4[1] после запроса Modbus Старший байт Младший байт xxxx-1011 xxxx-xxxx x указывает, что данные не изменяется Таблица 6-2. Сценарий 8: Чтение 12 выходных битов, начиная с адреса Modbus 00003 Значения входов команды MB_MASTER Значения slave-устройства Modbus MB_ADDR 27 (пример slave- устройства) 00001 ON 00010 ON MODE 0 (чтение) 00002 ON 00011 OFF DATA_ADDR 00003 (выходы) 00003 OFF 00012 OFF DATA_LEN 12 00004 ON 00013 ON 00005 ON 00014 OFF 00006 OFF 00015 ON 00007 ON 00016 ON 00008 ON 00017 OFF DATA_PTR "Data".Array_4 00009 OFF 00018 ON Значения "Data".Array_4[1] после запроса Modbus Старший байт Младший байт 1011-0110 xxxx-0100- x указывает, что данные не изменяются Руководство по программированию 6.3 Глобальные библиотечные команды Программируемый контроллер S7-1200 Системное руководство, 11/2009, A5E02669003-02 233 Таблица 6-3. Сценарий 9: Запись 5 выходных битов, начиная с адреса Modbus 00001 Значения входов команды MB_MASTER Выходы slave- устройства до Выходы slave- устройства после MB_ADDR 27 (пример slave- устройства) 00001 ON OFF MODE 1 (запись) 00002 ON ON DATA_ADDR 00001 (выходы) 00003 OFF ON DATA_LEN 5 00004 ON OFF 00005 ON ON 00006 OFF не меняется 00007 ON не меняется 00008 ON не меняется DATA_PTR "Data".Array_4 00009 OFF не меняется Значения "Data".Array_4[1] после запроса Modbus на запись Старший байт Младший байт xxx1-0110 xxxxx-xxxx x указывает, что данные не используются в запросе Modbus Таблица 6-4. Сценарий 10: Чтение 22 выходных битов, начиная с адреса Modbus 00003 Значения входов команды MB_MASTER Значения slave-устройства Modbus MB_ADDR 27 (пример slave- устройства) 00001 ON 00014 ON MODE 0 (чтение) 00002 ON 00015 OFF DATA_ADDR 00003 (выходы) 00003 OFF 00016 ON DATA_LEN 22 00004 ON 00017 ON 00005 ON 00018 OFF 00006 OFF 00019 ON 00007 ON 00020 ON 00008 ON 00021 OFF 00009 ON 00022 ON 00010 OFF 00023 ON 00011 OFF 00024 OFF 00012 ON 00025 OFF DATA_PTR "Data".Array_4 00013 OFF 00026 ON Значения "Data".Array_4[1] после запроса Modbus Старший байт Младший байт 0111-0110 0110-1010 Значения "Data".Array_4[2] после запроса Modbus Старший байт Младший байт xx01-1011 xxxx-xxxx x указывает, что данные не изменяются |