На форуме обязательно:
  1. Заполнить свой профиль НА РУССКОМ ЯЗЫКЕ КИРИЛИЦЕЙ. См. Правила, п.2.d.
  2. Не писать свой вопрос в первую попавшуюся тему, а вместо этого создать свою. См. Правила, п.3.a.

Рекламу мы не размещаем ни на каких условиях.

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

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

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

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

Сообщение Maksim Nevmer » 09 июл 2018, 12:32

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

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


NewOrdered
здесь недавно
здесь недавно
Сообщения: 20
Зарегистрирован: 24 янв 2018, 11:18
Имя: Антон
Благодарил (а): 5 раз
Поблагодарили: 2 раза

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

Сообщение NewOrdered » 11 июл 2018, 10:27

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


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

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

Сообщение Maksim Nevmer » 11 июл 2018, 14:41

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
здесь недавно
здесь недавно
Сообщения: 20
Зарегистрирован: 24 янв 2018, 11:18
Имя: Антон
Благодарил (а): 5 раз
Поблагодарили: 2 раза

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

Сообщение NewOrdered » 11 июл 2018, 18:08

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


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

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

Сообщение Maksim Nevmer » 12 июл 2018, 03:17

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


NewOrdered
здесь недавно
здесь недавно
Сообщения: 20
Зарегистрирован: 24 янв 2018, 11:18
Имя: Антон
Благодарил (а): 5 раз
Поблагодарили: 2 раза

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

Сообщение NewOrdered » 12 июл 2018, 14:30

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


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

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

Сообщение Maksim Nevmer » 13 июл 2018, 07:35

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

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

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

Ответить

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