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

связь между расходомером US800 и ПЛК по Modbus

ПЛК SIMATIC (S7-200, S7-1200, S7-300, S7-400, S7-1500, ET200)
Ответить

Автор темы
Maksim Nevmer
здесь недавно
здесь недавно
Сообщения: 13
Зарегистрирован: 04 июл 2018, 03:27
Имя: Максим Невмержицкий
Страна: Россия
Благодарил (а): 2 раза
Поблагодарили: 1 раз

связь между расходомером US800 и ПЛК по Modbus

Сообщение Maksim Nevmer »

Здравствуйте, коллеги

Возможно тема давно не актуальна, но у меня появилась задача связать расходомер US-800 с ПЛК Siemens S7 1212 по Modbus RTU.
На данный момент мне не понято, как при помощи стандартных блоков библиотеки Communication создать телеграмму для опроса значений регистров расходомера?

NewOrdered
осмотрелся
осмотрелся
Сообщения: 166
Зарегистрирован: 24 янв 2018, 11:18
Имя: Антон
Страна: Россия
город/регион: Калининград
Благодарил (а): 26 раз
Поблагодарили: 27 раз

связь между расходомером US800 и ПЛК по Modbus

Сообщение NewOrdered »

Maksim Nevmer,
1. Единожды (при старте контроллера) вызываете блок MB_COMM_LOAD
2. Для чтения регистров вызываете блок MB_MASTER с необходимыми значениями параметров.

Автор темы
Maksim Nevmer
здесь недавно
здесь недавно
Сообщения: 13
Зарегистрирован: 04 июл 2018, 03:27
Имя: Максим Невмержицкий
Страна: Россия
Благодарил (а): 2 раза
Поблагодарили: 1 раз

связь между расходомером US800 и ПЛК по Modbus

Сообщение Maksim Nevmer »

NewOrdered, Спасибо за ответ!

Как я понял, что коммуникация с расходомером происходить в формате запрос-ответ.
У расходомера для чтения параметров следующие номера регистров шестнадцатеричноо формата 200..206.
На корректный адрес нужно отправить запрос в формате набора восьми байт: 01 03 02 00 00 07 05 B0

Я не уверен, что верно настроил параметры блоков MB_MASTER.
Прилагаю, картинки настроек и пример настройки от производителя.

параметр MB_MASTER_STATUS выдаёт по очереди ошибки:
W#16#8281 - Negative acknowledgment when writing module
W#16#818D - The area addressed by DATA_PTR is longer than the DB, or the area addressed is too small for the number of data bytes to be read or written.
На модуле СМ 1241 не мигают ламы Tx и Rx.

Читая описание к функциям MODBUS я пока не понял, каким параметром указываться запись в регистры.
Можно ли использовать типы данных BYTE?
У вас нет необходимых прав для просмотра вложений в этом сообщении.

NewOrdered
осмотрелся
осмотрелся
Сообщения: 166
Зарегистрирован: 24 янв 2018, 11:18
Имя: Антон
Страна: Россия
город/регион: Калининград
Благодарил (а): 26 раз
Поблагодарили: 27 раз

связь между расходомером US800 и ПЛК по Modbus

Сообщение NewOrdered »

При чтении:
MODE = 0
DATA_LEN = Количество запрашиваемых регистров (не байт)
DATA_ADDR - тут надо подбирать. С моим слэйвом заработал вариант не 40000, а 400000
DATA_PTR должен указывать на область, равную (кол-во регистров * длина регистра). Для вашего случая 19*2 = 38 байт

Автор темы
Maksim Nevmer
здесь недавно
здесь недавно
Сообщения: 13
Зарегистрирован: 04 июл 2018, 03:27
Имя: Максим Невмержицкий
Страна: Россия
Благодарил (а): 2 раза
Поблагодарили: 1 раз

связь между расходомером US800 и ПЛК по Modbus

Сообщение Maksim Nevmer »

А при записи:
- каким будет параметр MODE?
- необходимо ли как-то задавать Modbus function code, или он автоматически создаётся блоком MB_MASTER?

NewOrdered
осмотрелся
осмотрелся
Сообщения: 166
Зарегистрирован: 24 янв 2018, 11:18
Имя: Антон
Страна: Россия
город/регион: Калининград
Благодарил (а): 26 раз
Поблагодарили: 27 раз

связь между расходомером US800 и ПЛК по Modbus

Сообщение NewOrdered »

Maksim Nevmer, F1 на блоке MB_MASTER. Там будет ссылка на подробную расшифровку параметра MODE.
Там же в таблице и примеры адресации в зависимости от выбранного режима MODE.
Всю посылку, включая и код функции, и длину и CRC, блок формирует сам "под капотом".

Автор темы
Maksim Nevmer
здесь недавно
здесь недавно
Сообщения: 13
Зарегистрирован: 04 июл 2018, 03:27
Имя: Максим Невмержицкий
Страна: Россия
Благодарил (а): 2 раза
Поблагодарили: 1 раз

связь между расходомером US800 и ПЛК по Modbus

Сообщение Maksim Nevmer »

Модбас в различных вариантах, к сожалению, не помог для этого прибора.

Я решил задачу коммуникации с расходомер US-800 по протоколу PTP, библиотеки версии 3.1. Обмен данными идёт стабильно!
Также пробовал более ранние библиотеки PTP 1.1 и т.п. - запрос на чтение параметров отправлялся, но расходомер его не понимал, и ответ не слал (судя по диагностической информации прибора)

P.S. Натолкнуло меня на решение задачи полезное видео о коммуникации с похожим расходомером другой фирмы!))
https://www.youtube.com/watch?v=EHKXNcAOIhw
Коллега на видео использует библиотеки PTP 1.1
Ответить

Вернуться в «Simatic Step7»