Главная страница
Навигация по странице:

  • Значения входов команды MB_MASTER Выходы slave- устройства до Данные DATA_PTR Выходы slave- устройства после

  • Значения входов команды MB_MASTER Значение slave- устройства Modbus Данные DATA_PTR после

  • 00003 OFF "Data".Bool[0]=ЛОЖЬ DATA_LEN 15 00004 ON "Data".Bool[1]=ИСТИНА 00005 ON "Data".Bool[2]=ИСТИНА 00006

  • 00010 OFF Data".Bool[7]=ЛОЖЬ 00011 OFF Data".Bool[8]=ЛОЖЬ 00012 ON Data".Bool[9]=ИСТИНА 00013 OFF

  • Коды условий Значение STATUS (W16....) Описание

  • Функции Modbus команды MB_SLAVE S7-1200

  • Диагностические функции Modbus команды MB_SLAVE S7-1200

  • Правила обмена данными для slave-устройства Modbus

  • Примеры для параметра MB_HOLD_REG

  • Указание Блок данных регистра временного хранения информации Modbus должен ссылаться на глобальный блок данных, который должен быть создан с

  • Пример 1 - Стандартный массив из слов

  • Пример 2 - Именованная структура из слов Этот пример регистра временного хранения информации представляет собой ряд слов с описательными символическими именами. Преимущества

  • Руководство по программированию 6 profinet 7 Двухточечная связь (PointtoPoint, PtP) 8


    Скачать 3.76 Mb.
    НазваниеРуководство по программированию 6 profinet 7 Двухточечная связь (PointtoPoint, PtP) 8
    Дата27.07.2022
    Размер3.76 Mb.
    Формат файлаpdf
    Имя файлаs71200_system_manual_r.pdf
    ТипРуководство
    #636782
    страница25 из 40
    1   ...   21   22   23   24   25   26   27   28   ...   40
    Пример считывания и записи битов, используя адреса битов в качестве входа
    DATA_PTR
    Хотя процессы считывания и записи Modbus в адреса битов могут осуществляться путем использования адресов слов, области DATA_PTR могут быть также сконфигурированы как булевы типы данных, структуры или массивы, чтобы установить прямую, 1 к 1, взаимосвязь для первого считываемого или записываемого бита с помощью команды MB_MASTER.
    Если вы используете булевы массивы или структуры, то рекомендуется, чтобы вы делали размер данных кратным 8 битам (по границам байта). Например, если вы создаете булев массив из 10 битов, то программное обеспечение STEP 7 Basic выделит 16 битов (2 байта) в глобальном блоке данных для этих 10 битов. Внутри блока данных они будут храниться как байт1 [xxxx xxxx] байт2 [---- --xx], где x указывает доступные адреса данных, а – указывает недоступные адреса. Длина запросов Modbus может составлять до 16 битов, но старшие 6 битов будут помещены в те адреса байта
    2, которые не будут доступны для вашей программы.
    Булевы области могут быть созданы как массив булевых значений или как структура из булевых переменных. Оба метода работают одинаковым образом и отличаются только способом создания и способом обращения к ним в вашей программе.
    Представленный внизу вид редактора глобального блока данных показывает один массив из 16 булевых значений, созданный с базисом 0. Этот массив может быть также создан как массив с базисом 1. Стрелка показывает, как это массив связан с командой MB_MASTER.

    Руководство по программированию
    6.3
    Глобальные библиотечные команды
    Программируемый контроллер S7-1200
    Системное руководство, 11/2009, A5E02669003-02 235
    Сценарии 11 и 12 показывают соответствие адресов Modbus адресам булева массива.
    Таблица 6- 5 Сценарий 11: Запись 5 выходных битов, начиная с адреса Modbus 00001
    Значения входов команды
    MB_MASTER
    Выходы slave-
    устройства до
    Данные DATA_PTR
    Выходы slave-
    устройства после
    MB_ADDR 27
    (пример slave- устройства)
    00001 ON
    "Data".Bool[0]=ЛОЖЬ OFF
    MODE 1
    (запись) 00002
    ON
    "Data".Bool[1]=ИСТИНА ON
    DATA_ADDR 00001
    (выходы) 00003
    OFF
    "Data".Bool[2]=ИСТИНА ON
    DATA_LEN 5 00004 ON
    "Data".Bool[3]-ЛОЖЬ OFF
    00005 ON
    "Data".Bool[4]=ЛОЖЬ OFF
    00006 OFF не меняется
    00007 ON не меняется
    DATA_PTR "Data".Bool
    00008 OFF не меняется
    Таблица 6- 6 Сценарий 12: Чтение 15 выходных битов, начиная с адреса Modbus 00004
    Значения входов команды MB_MASTER
    Значение slave-
    устройства Modbus
    Данные DATA_PTR после
    MB_ADDR 27
    (пример slave- устройства)
    00001 ON
    MODE 0
    (чтение) 00002
    ON
    DATA_ADDR 00003
    (выходы)
    00003
    OFF
    "Data".Bool[0]=ЛОЖЬ
    DATA_LEN 15
    00004
    ON
    "Data".Bool[1]=ИСТИНА
    00005
    ON
    "Data".Bool[2]=ИСТИНА
    00006
    OFF
    "Data".Bool[3]-ЛОЖЬ
    00007
    ON
    Data".Bool[4]=ИСТИНА
    00008
    ON
    Data".Bool[5]=ИСТИНА
    00009
    ON
    Data".Bool[6]=ИСТИНА
    00010
    OFF
    Data".Bool[7]=ЛОЖЬ
    00011
    OFF
    Data".Bool[8]=ЛОЖЬ
    00012
    ON
    Data".Bool[9]=ИСТИНА
    00013
    OFF
    Data".Bool[10]=ЛОЖЬ
    00014
    ON
    Data".Bool[11]=ИСТИНА
    00015
    OFF
    Data".Bool[12]=ЛОЖЬ
    00016
    ON
    Data".Bool[13]=ИСТИНА
    00017
    ON
    Data".Bool[14]=ИСТИНА
    00018 OFF
    DATA_PTR "Data".Bool
    00019 ON

    Руководство по программированию
    6.3 Глобальные библиотечные команды
    Программируемый контроллер S7-1200 236
    Системное руководство, 11/2009, A5E02669003-02
    Коды условий
    Значение
    STATUS
    (W#16#....)
    Описание
    0000
    Нет ошибки
    80C8
    Заданное время ожидания ответа (см. RCVTIME или MSGTIME) равно 0.
    80D1
    Приемник издал запрос на управление потоком, чтобы остановить активную передачу и не возобновлять ее в течение указанного времени ожидания.
    Эта ошибка генерируется также при аппаратном управлении потоком, если приемник не объявляет о готовности к приему (CTS) в течение указанного времени ожидания.
    80D2
    Запрос на передачу был отменен, так как не был получен сигнал о готовности
    (DSR) от аппаратуры передачи данных (DCE).
    80E0
    Сообщение было завершено, так как приемный буфер полон.
    80E1
    Сообщение было завершено в результате ошибки контроля четности.
    80E2
    Сообщение было завершено в результате ошибки кадрирования.
    80E3
    Сообщение было завершено в результате ошибки переполнения.
    80E4
    Сообщение было завершено в результате того, что указанная длина превышает общий размер буфера.
    8180
    Неверное значение идентификатора порта
    8186
    Неверный адрес станции Modbus
    8188
    Неверное значение MODE или режим записи для области адресов slave- устройства, доступных только для чтения
    8189
    Неверное значение адреса данных
    818A
    Неверное значение длины данных
    818B
    • Неверный указатель на источник или цель локальных данных: Неверный размер
    818C
    Указатель на DB безопасного типа для DATA_PTR (должен быть DB классического типа)
    8200
    Порт занят обработкой запроса на передачу

    Руководство по программированию
    6.3
    Глобальные библиотечные команды
    Программируемый контроллер S7-1200
    Системное руководство, 11/2009, A5E02669003-02 237
    6.3.2.3 MB_SLAVE
    Команда MB_SLAVE позволяет вашей программе осуществлять обмен данными в качестве slave-устройства Modbus, используя порт на модуле двухточечной связи
    (Point-to-Point, PtP) CM 1241 RS485 или CM 1241 RS232. Master-устройство Modbus
    RTU может послать запрос, а затем ваша программа отвечает, исполняя команду
    MB_SLAVE.
    Помещая команду MB_SLAVE в свою программу, вы должны назначить ей уникальный экземплярный блок данных. Имя этого экземплярного блока данных используется, когда вы задаете параметр MB_DB в команде MB_COMM_LOAD.
    Коды функций связи Modbus (1, 2, 4, 5 и 15) могут считывать и записывать байты и слова непосредственно в образах процесса ПЛК на входах и выходах. В следующей таблице показано соответствие адресов Modbus образу процесса в CPU.
    Функции Modbus команды MB_SLAVE
    S7-1200
    Коды
    Функция
    Область данных
    Диапазон адресов
    Область данных
    Адрес в CPU
    01
    Чтение битов
    Выход 1 до 8192
    Образ процесса на выходах от Q0.0 до Q1023.7 02
    Чтение битов
    Вход 10001 до 18192
    Образ процесса на входах от I0.0 до I1023.7 04
    Чтение слов
    Вход 30001 до 30512
    Образ процесса на входах от IW0 до IW1022 05
    Запись бита
    Выход 1 до 8192
    Образ процесса на выходах от Q0.0 до Q1023.7 15
    Запись битов
    Выход 1 до 8192
    Образ процесса на выходах от Q0.0 до Q1023.7
    Коды функций связи Modbus (3, 6, 16) используют отдельный и уникальный блок данных Modbus с регистром временного хранения информации. Этот DB вы должны создать, прежде чем вы сможете задать параметр MB_HOLD_REG команды
    MB_SLAVE. В следующей таблице показано соответствие регистра временного хранения информации Modbus адресу DB параметра MB_HOLD_REG в ПЛК.
    Функции Modbus команды MB_SLAVE
    S7-1200
    Коды Функция
    Область данных
    Диапазон адресов
    Область данных DB в
    CPU
    Адрес DB в
    CPU от 40001 до
    49999
    Слова от 1 до
    9999 03
    Чтение слов
    Регистр временного хранения информации от 400001 до
    465535
    MB_HOLD_REG
    Слова от 1 до
    65535 от 40001 до
    49999
    Слова от 1 до
    9999 06
    Запись слова
    Регистр временного хранения информации. от 400001 до
    465535
    MB_HOLD_REG
    Слова от 1 до
    65535 от 40001 до
    49999
    Слова от 1 до
    9999 16
    Запись слов
    Регистр временного хранения информации от 400001 до
    465535
    MB_HOLD_REG
    Слова от 1 до
    65535

    Руководство по программированию
    6.3 Глобальные библиотечные команды
    Программируемый контроллер S7-1200 238
    Системное руководство, 11/2009, A5E02669003-02
    В следующей таблице показаны диагностические функции, поддерживаемые Modbus.
    Диагностические функции Modbus команды MB_SLAVE S7-1200
    Коды
    Подфункция Описание
    08 0000H
    Эхотест – возврат данных опроса: Команда MB_SLAVE возвращает обратно в master- устройство Modbus полученное слово данных.
    08 000AH
    Очистка счетчика коммуникационных событий: Команда MB_SLAVE очищает счетчик коммуникационных событий, используемый для функции 11 Modbus.
    11
    Получение значения счетчика коммуникационных событий: Команда MB_SLAVE использует внутренний счетчик коммуникационных событий для записи количества успешных запросов Modbus на чтение и запись, которые были посланы slave- устройством Modbus. Счетчик не реагирует на функции 8, 11 и широковещательные запросы. Он не реагирует также на запросы, приводящие к коммуникационным ошибкам
    (например, ошибки контроля четности или контроля с помощью циклического избыточного кода CRC).
    Команда MB_SLAVE поддерживает трансляцию запросов на запись из master- устройств Modbus, пока запросы относятся к действительным адресам.
    Независимо от того, действителен запрос или нет, команда MB_SLAVE не отвечает master-устройству Modbus на широковещательный запрос.
    LAD
    FBD
    Параметр
    Тип
    параметра
    Тип
    данных
    Описание
    MB_ADDR IN USINT
    Адрес Modbus RTU (от 1 до 247):
    Адрес станции slave-устройства Modbus.
    MB_HOLD_REG IN
    VARIANT Указатель на DB регистра временного хранения информации Modbus. DB регистра временного хранения информации должен быть классическим глобальным DB. См. ниже указание к MB_HOLD_REG.
    NDR OUT
    BOOL
    Готовы новые данные:
    • 0
    – нет новых данных
    • 1
    – указывает, что master-устройством
    Modbus были записаны новые данные
    DR OUT
    BOOL
    Чтение данных:
    • 0
    – данные не считывались
    • 1
    – указывает, что данные считывались master-устройством Modbus
    ERROR OUT
    BOOL
    Ошибка:
    • 0
    – ошибка не обнаружена
    • 1
    – указывает, что обнаружена ошибка и код ошибки в параметре STATUS действителен.
    STATUS OUT
    WORD
    Код ошибки

    Руководство по программированию
    6.3
    Глобальные библиотечные команды
    Программируемый контроллер S7-1200
    Системное руководство, 11/2009, A5E02669003-02 239
    Правила обмена данными для slave-устройства Modbus
    ● Команда MB_COMM_LOAD должна быть исполнена для конфигурирования порта, прежде чем команда MB_SLAVE сможет обмениваться данными с этим портом.
    ● Если порт должен отвечать как slave-устройство master-устройству Modbus, то этот порт не может быть использован командой MB_MASTER. Для каждого данного порта может использоваться только один экземпляр MB_SLAVE.
    ● Команды Modbus не используют события, прерывающие обмен данными, для управления коммуникационным процессом. Ваша программа должна управлять коммуникационным процессом путем опроса команды MB_SLAVE о завершенных процессах передачи и приема.
    ● Команда MB_SLAVE должна исполняться периодически с частотой, позволяющей ей своевременно отвечать на поступающие запросы от master-устройства Modbus.
    ● Вы должны вызывать MB_SLAVE в каждом цикле из OB программного цикла.
    Принцип действия
    Команда MB_SLAVE должна исполняться периодически, чтобы получать каждый запрос от master-устройства Modbus, а затем соответствующим образом отвечать.
    Частота исполнения команды MB_SLAVE зависит от интервала времени ожидания ответа, задаваемого master-устройством Modbus. Это иллюстрируется следующим рисунком.
    Время ожидания ответа - это интервал времени, в течение которого master-устройство
    Modbus ожидает начала ответа от slave-устройства Modbus. Этот интервал времени не определяется протоколом Modbus, а является параметром соответствующего master- устройства Modbus. Частота исполнения (время от одного исполнения до другого) команды MB_SLAVE должна основываться на конкретных параметрах вашего master- устройства Modbus. Как минимум, вы должны исполнять MB_SLAVE дважды в течение времени ожидания master-устройства Modbus.
    Время ожидания ответа
    Данные
    Передает master-устройство
    Передает slave-устройство
    Данные
    Начальный интервал
    Начальный интервал = 3,5 времени передачи 1 символа
    Время задержки ответа

    Руководство по программированию
    6.3 Глобальные библиотечные команды
    Программируемый контроллер S7-1200 240
    Системное руководство, 11/2009, A5E02669003-02
    Примеры для параметра MB_HOLD_REG
    Параметр MB_HOLD_REG – это указатель на блок данных регистра временного хранения информации Modbus. Этот DB используется для хранения значений данных, к которым разрешен доступ (на чтение или запись) master-устройству Modbus. Вы должны создать этот блок данных и назначить структуру типов данных, которые оттуда будут считываться или туда записываться, прежде чем он сможет быть использован командой MB_SLAVE.
    Указание
    Блок данных регистра временного хранения информации Modbus должен
    ссылаться на глобальный блок данных, который должен быть создан с
    деактивированной триггерной кнопкой атрибута Symbolic Access Only [Только
    символический доступ].
    При добавлении нового блока данных вы должны снять пометку с триггерной кнопки "Symbolic address only", чтобы создать блок данных классического типа
    Регистры временного хранения информации могут использовать следующие структуры данных этого DB:
    ● Стандартный массив из слов
    ● Именованная структура из слов
    ● Именованная составная структура
    Следующие примеры программ показывают, как можно использовать параметр
    MB_HOLD_REG параметр для обработки структур данных этого DB.

    Руководство по программированию
    6.3
    Глобальные библиотечные команды
    Программируемый контроллер S7-1200
    Системное руководство, 11/2009, A5E02669003-02 241
    Пример 1 - Стандартный массив из слов
    Этот пример для регистра временного хранения информации представляет собой массив из слов. Назначения типов данных могут быть изменены на другие типы размеров слова (INT и UINT).
    Преимущества:
    • Этот тип структуры регистра временного хранения информации может быть быстро и легко создан.
    • Упрощена логика программы для доступа к элементу данных.

    Недостатки:
    • Хотя вы можете программно ссылаться на каждый элемент массива по символическим именам (от "HR_DB"."Array"[1] до "HR_DB"."Array"[10]), эти имена не описывают внутреннюю функцию данных.
    • Массив может состоять только из одного типа данных. В пользовательской программе со строгим контролем типов может потребоваться преобразование типов.
    Вот как выглядит структура массива из слов в редакторе блоков данных.
    На следующем рисунке показано, как этот массив назначается входу MB_HOLD_REG команды MB_SLAVE.

    Руководство по программированию
    6.3 Глобальные библиотечные команды
    Программируемый контроллер S7-1200 242
    Системное руководство, 11/2009, A5E02669003-02
    К каждому элементу этого массива можно получить доступ по символическому имени, как это показано ниже. В этом примере новое значение передается во второй элемент массива, который соответствует адресу Modbus 40002.
    Каждое из слов в этом массиве, в соответствии с определением в блоке данных, снабжает команду MB_SLAVE адресами регистра временного хранения информации
    Modbus. В этом примере, так как в массиве имеется только 10 элементов, имеется в наличии только 10 адресов регистра временного хранения информации Modbus, которые могут быть использованы этой командой MB_SLAVE и доступны master- устройству Modbus.
    Ниже показано соответствие имен элементов массива адресам Modbus.
    "HR_DB".Array[1]
    Адрес Modbus 40001
    " HR_DB ". Array[2]
    Адрес Modbus 40002
    " HR_DB ". Array[3]
    Адрес Modbus 40003
    " HR_DB ". Array[9]
    Адрес Modbus 40009
    " HR_DB ".Array [10]
    Адрес Modbus 40010

    Руководство по программированию
    6.3
    Глобальные библиотечные команды
    Программируемый контроллер S7-1200
    Системное руководство, 11/2009, A5E02669003-02 243
    Пример 2 - Именованная структура из слов
    Этот пример регистра временного хранения информации представляет собой ряд слов с описательными символическими именами.
    Преимущества:
    • Каждый элемент структуры имеет описательное имя с назначенным ему конкретным типом данных.
    Недостатки:
    • Создание этого типа структуры требует больше времени, чем для стандартного массива из слов.
    • Элементы требуют дополнительных символических ссылок при использовании в программе пользователя. В то время как ссылка на первый элемент простого массива имеет вид "HR_DB".Array[0], ссылка на элемент этого типа имеет вид "HR_DB".Data.Temp_1.
    Вот как именованная структура из слов появляется в редакторе блоков данных.
    Каждый элемент имеет уникальное имя и может иметь тип WORD, UINT или INT.
    На следующем рисунке показано, как вышеприведенная структура данных может быть назначена входу MB_HOLD_REG команды MB_SLAVE в вашей программе.

    Руководство по программированию
    6.3 Глобальные библиотечные команды
    Программируемый контроллер S7-1200 244
    Системное руководство, 11/2009, A5E02669003-02
    К каждому элементу этого массива можно получить доступ по символическому имени, как это показано ниже. В этом примере новое значение передается во второй элемент массива, который соответствует адресу Modbus 40002.
    Ниже показано соответствие имен элементов массива адресам Modbus.
    "HR_DB".Data.Temp_1
    Адрес Modbus 40001
    "HR_DB".Data.Temp_2
    Адрес Modbus 40002
    "HR_DB".Data.Temp_3
    Адрес Modbus 40003
    "HR_DB".Data.Good_Count
    Адрес Modbus 40004
    "HR_DB".Data.Bad_Count
    Адрес Modbus 40005
    "HR_DB".Data.Rework_Count
    Адрес Modbus 40006
    "HR_DB".Data.Line_Stops
    Адрес Modbus 40007
    "HR_DB".Data.Avg_Time
    Адрес Modbus 40008
    "HR_DB".Data.Code_1
    Адрес Modbus 40009
    "HR_DB".Data.Code_2
    Адрес Modbus 40010

    Руководство по программированию
    6.3
    Глобальные библиотечные команды
    Программируемый контроллер S7-1200
    Системное руководство, 11/2009, A5E02669003-02 245
    1   ...   21   22   23   24   25   26   27   28   ...   40


    написать администратору сайта