Страница 2 из 2

Re: S7-1200 + Modbus TCP + Altivar Process

Добавлено: 23 ноя 2017, 20:24
ермак
Михайло писал(а):А что Вы уже сделали и поняли? И что Вы не сделали и не поняли?
У меня есть пример по соединению S7-1200 - Sentron PAC. Как я понял, никакие сетевые настройки не конфигурируются, А конфигурируются только блоки получения/передачи - MB_Server/MB_Client. Ну и опрос..
До этого я программировал в основном логику, когда контроллер управляет напрямую исполнительными механизмами посредством релейных выходов. А со связью - впервые, вот тут то и встала загвоздка по параметрированию MB_Server/MB_Client. Длина слов, ID - я не могу понять, откуда это все берется, и как мне передать задание в ЧРП, и получить обратно несколько слов от ЧРП. Сам механизм конфигурирования/передачи/получения мне не ясен. Если можете посоветовать умную литературу (в которой доступно будет объяснено) - буду очень признателен!

Re: S7-1200 + Modbus TCP + Altivar Process

Добавлено: 23 ноя 2017, 20:37
mr_Frodo
Найдите здесь сообщения участника Chant. У него в подписи есть информация.

Re: S7-1200 + Modbus TCP + Altivar Process

Добавлено: 24 ноя 2017, 12:47
ермак
Не совсем понял терминологию "в подписи". Это где?

Re: S7-1200 + Modbus TCP + Altivar Process

Добавлено: 24 ноя 2017, 13:07
ермак
Мне не понятен сам механизм передачи.
1. Настраивается только MB_Client/MB_Server.. Или же еще что-то. Когда вставляю MB_Client в OB1 - на самом блоке нет настройки адреса (IP_OCTET).
2. Куда должны записываться передаваемые/считываемые данные? Я так подозреваю что в соответствующие блоки данных MB_Client/MB_Server. Но опять же... я не знаю каким образом это делать.

Re: S7-1200 + Modbus TCP + Altivar Process

Добавлено: 24 ноя 2017, 16:44
Михайло
Вам нужно использовать MB_Client. Контроллер обращается к ЧРП как клиент, а ЧРП обслуживает контроллер (ЧРП - сервер). Клиент сам решает, какие данные куда переложить. Он может скомандовать "возьми вот эти данные, запиши их в такую-то свою ячейку" или "дай мне данные из такой-то твоей ячейки". Modbus-сервера, как правило, вообще не нужно программировать даже, они простые исполнители, работают все одинаково. MB_Server в S7-1200 предназначен лишь для возможности организации ограничения доступа к своим данным.

MB_Client/MB_Server имеют несколько разных версий с заметной разницей в настройках. Раньше, насколько я помню, IP-адрес вбивался прямо в MB_Client/MB_Server. Потом видимо настроек стало больше и эти настройки вывели в отдельную структуру TCON_IP_v4, которая цепляется к функции MB_Client/MB_Server ко входу Connect. Видимо поэтому Вы не видите, куда вводить IP.

Итак, Вы добавили MB_Client и связали его с датаблоком MB_Client_DB. Создайте еще один датаблок DB1, добавьте в него тэг с любым именем, тип тэга "TCON_IP_v4". Увидели, куда вбивать IP? :p
Второй сложный вопрос: что такое MB_DATA_PTR? Это указатель на область памяти, которые нужно либо передать серверу, либо куда принять от сервера. Добавьте в DB1 нужные тэги, которыми Вы будете обмениваться с ЧРП. Я уже забыл, кажись их потом и надо будет прописывать в MB_DATA_PTR.

Re: S7-1200 + Modbus TCP + Altivar Process

Добавлено: 24 ноя 2017, 20:00
mr_Frodo
Подпись - это текст в конце письма (поста), которым автор обозначает свой профиль. В последнее время - на этот аппендикс никто не обращает внимания, хотя зря...

Re: S7-1200 + Modbus TCP + Altivar Process

Добавлено: 01 дек 2017, 20:31
ермак
Соединение создал с помощью MB_Client. Задал IP-адрес, режим работы, начальный адрес для чтения, длину сообщения и адрес куда записывать. В общем-то все дело было в некоторых тонкостях. Начальный адрес для чтения был найден экспериментально-эмпирическим путем. Попозже выложу скрин и описание настройки.

Re: S7-1200 + Modbus TCP + Altivar Process

Добавлено: 01 дек 2017, 20:34
ермак
Теперь встала проблема с записью в ЧРП. При попытке записать в ЧРП уставку скорости связь с ПЛК нарушается. Не работает ни запись, ни чтение. Помогает только перезагрузка ЧРП. Кто-нибудь когда-нибудь записывал данные в ЧРП?

Re: S7-1200 + Modbus TCP + Altivar Process

Добавлено: 02 дек 2017, 07:16
Михайло
Может нужно сделать swap? То есть поменять местами байты в слове, просто разные производители придерживаются разного порядка байтов в слове (младший-старший little-endian или старший-младший big-endian). Кажется Schneider Electric придерживается порядка big-endian, а Siemens - little-endian.
Для этого у S7-1200 есть инструкция SWAP. На вход подай частоту вращения little-endian, на выходе получи big-endian для вставки в Modbus-сообщение.

Re: S7-1200 + Modbus TCP + Altivar Process

Добавлено: 03 дек 2017, 06:51
mr_Frodo
Просто посмотри что идет на выход в Стёпе в слове управления для альтиварпроцесс до того и после.

Re: S7-1200 + Modbus TCP + Altivar Process

Добавлено: 22 июл 2022, 11:02
timonen
Для тех кому интересно решение проблемы, в экземплярном блоке данных для MB_Client нужно поменять широковещательный запрос MB_Unit_ID =255 на 0.