1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

S7-1200 и ModBus TCP (MB_CLIENT)

Модератор: Глоб.модераторы

Ответить

Автор темы
SergMons
здесь недавно
здесь недавно
Сообщения: 7
Зарегистрирован: 23 мар 2017, 13:43
Имя: Сергей
Страна: Россия
город/регион: Томск

S7-1200 и ModBus TCP (MB_CLIENT)

Сообщение SergMons »

Доброго дня.
Проблема следующая: необходимо связать S7-1200 (CPU 1214C AC/DC/Rly) и ICP DAS корзины i-8KE8 по ModBus TCP. В S7-1200 используется инструкция MB_CLIENT (v3.1). Конфигурация инструкции: EN - всегда активен, REQ - раз в 5 с (для отладки), DISCONNECT - 0, CONNECT_ID - 1, ip - адрес корзины, порт 502, MB_MODE - 0 (чтение), MB_DATA_ADDR - 1 (читать выходные биты), MB_DATA_LEN - 16 (16 бит), MB_DATA_PTR - указывает на структуру из 16 битов в DB(блок данных), DONE - указывает на бит в структуре статуса в DB (блок данных), BUSY - указывает на бит в структуре статуса в DB (блок данных), ERROR - указывает на бит в структуре статуса в DB (блок данных), STATUS - указывает на WORD в структуре статуса в DB (блок данных). Запускаю процесс. В результате: DONE - FALSE, BUSY - TRUE, ERROR - FALSE, STATUS - 0000. Что означает данная ситуация? Т.е. получается инструкция MB_CLIENT подвисла в режиме выполнения? Куда копнуть в этом вопросе?
P.S. запускаю MasterOPC (Инсат) и работаю с корзинами ISP DAS без проблем, читаю, пишу и т.д.
С уважением, Сергей.
Аватара пользователя

megavolt86
эксперт
эксперт
Сообщения: 1172
Зарегистрирован: 14 ноя 2013, 20:35
Имя: Анатолий Сергеевич
Страна: Россия
город/регион: Башкортостан
Благодарил (а): 13 раз
Поблагодарили: 68 раз

S7-1200 и ModBus TCP (MB_CLIENT)

Сообщение megavolt86 »

Модбас адрес корзинки указывали? Откройти базу данных этого блока, там параметров тьма которые тоже надо настраивать)))
:ext_secret:

Автор темы
SergMons
здесь недавно
здесь недавно
Сообщения: 7
Зарегистрирован: 23 мар 2017, 13:43
Имя: Сергей
Страна: Россия
город/регион: Томск

S7-1200 и ModBus TCP (MB_CLIENT)

Сообщение SergMons »

Добрый день.
В корзинке ICP DAS крутится своя программа на С, которая читает или записывает по ModBus областям (0x,1x,3x,4x) данные при работе с внутренними модулями (в/в, аналоговые). А из этих областей я уже клиентом по ModBus TCP вытягиваю данные или пишу. В инструкции MB_CLIENT (v3.1) есть параметр MB_DATA_ADDR, где от 1 до 9999, чтение выходных битов (т.е. из области 0x), от 10001 до 19999, чтение входных битов (т.е. из области 1x).
Про базу данных "этого блока, там параметров тьма" не совсем понял. У меня есть блок DB в котором организовано две структуры: первая - статус, вторая - данные 16 бит (bool). Этот блок привязан своими переменными к инструкции MB_CLIENT (v3.1). Из всех параметров которые можно конфигурировать - Name (там как раз две структуры организованы), Start Value (можно назначить начальные значения), Retain (сохранение в энергонезависимой памяти), Visible HMI, Accessible from HMI, Set Point, Comment и все. Может что-то еще?
С уважением, Сергей.
Аватара пользователя

megavolt86
эксперт
эксперт
Сообщения: 1172
Зарегистрирован: 14 ноя 2013, 20:35
Имя: Анатолий Сергеевич
Страна: Россия
город/регион: Башкортостан
Благодарил (а): 13 раз
Поблагодарили: 68 раз

S7-1200 и ModBus TCP (MB_CLIENT)

Сообщение megavolt86 »

Я про то что вы не описали указали ли адрес вашей корзины удаленной. Октеты с айпи-адресом заполнили?
Адрес модбас устройства указывается в созданном дб при вызове фб "mb_client". Этот дб находится в системмных блоках>program resources>mb_client_db. В даннос блоке находите параметр mb_unit_id в него запивываете адрес устройства.
Тут косяк сименса - спрятали такой важный параметр и в хелпе про него умолчали.
:ext_secret:

Автор темы
SergMons
здесь недавно
здесь недавно
Сообщения: 7
Зарегистрирован: 23 мар 2017, 13:43
Имя: Сергей
Страна: Россия
город/регион: Томск

S7-1200 и ModBus TCP (MB_CLIENT)

Сообщение SergMons »

спасибо за ответы, нашел этот параметр mb_unit_id, хорошо они его спрятали, а в документации не нашел. Может и есть эта информация, но сразу с наскока прошерстить 1300 стр. системного руководства тяжеловато. По умолчанию там 16#00FF. Только встала другая проблема, как исправить этот параметр. Сообщение весит для параметров этого блока:"The block is read-only because it is know-how protected". И не дает задать этот конкретный параметр.
Снифером WireShark смотрю пакеты которые летают между корзиной и MasterOPC (Инсат). Запрос-ответ. А в моем случае тишина.
P.S. октеты ip адреса я сразу задавал. В изначальном сообщении эта информация недостаточно четко раскрыта, поэтому у Вас и возникло подозрение, что я не задал ip адрес.
С уважением, Сергей.

Автор темы
SergMons
здесь недавно
здесь недавно
Сообщения: 7
Зарегистрирован: 23 мар 2017, 13:43
Имя: Сергей
Страна: Россия
город/регион: Томск

S7-1200 и ModBus TCP (MB_CLIENT)

Сообщение SergMons »

К последнему моему сообщению. Не тот блок пытался подправить.)) Все работает, со всеми корзинами ICP DAS наполненными модулями ввода/вывода идет общение. Megavolt86 спасибо.
P.S. а какой объем памяти отъедается при создании и работе с инструкцией MB_CLIENT. Понимаю, что это очень сильно зависит от многих факторов, но может быть в среднем случае, есть такие данные?
С уважением, Сергей.
Ответить

Вернуться в «ПЛК SIMATIC (S7-200, S7-1200, S7-300, S7-400, S7-1500, ET200)»