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

S7-1200 Modbus TCP

Ответить

Автор темы
Ivydy
здесь недавно
здесь недавно
Сообщения: 42
Зарегистрирован: 28 апр 2015, 17:19
Имя: Петров Артем Олегович
Благодарил (а): 8 раз

S7-1200 Modbus TCP

Сообщение Ivydy »

Добрый день. Задача: ПЛК S7-1200 1214С (Slave). Должна быть организована связь с двумя панелями (Master) по Modbus TCP. S7-1200 имеет только один порт для соединения по Modbus . Существует ли какой-нибудь дополнительный коммуникационный модуль для организации связи по Modbus TCP. Или как еще можно это сделать? Спасибо
Аватара пользователя

Никита
почётный участник форума
почётный участник форума
Сообщения: 3899
Зарегистрирован: 20 янв 2010, 22:23
Имя: Никита
Страна: РФ
город/регион: Мурманск
Благодарил (а): 18 раз
Поблагодарили: 187 раз

S7-1200 Modbus TCP

Сообщение Никита »

А с через обычный хаб/свитч не работает? Теоретически, проблемы быть не должно. На практике какая-то мокса имела заморочки с количеством сокетов.
Или речь все же про ModbusRTU?
Опыт - это когда на смену вопросам: "Что? Где? Когда? Как? Почему?" приходит единственный вопрос: "Нахрена? "

kanadeiar
здесь недавно
здесь недавно
Сообщения: 13
Зарегистрирован: 12 фев 2018, 20:17
Имя: Андрей
Страна: Россия
город/регион: Кузнецк
Поблагодарили: 6 раз

S7-1200 Modbus TCP

Сообщение kanadeiar »

Ivydy писал(а): 13 фев 2018, 16:26Добрый день. Задача: ПЛК S7-1200 1214С (Slave). Должна быть организована связь с двумя панелями (Master) по Modbus TCP. S7-1200 имеет только один порт для соединения по Modbus . Существует ли какой-нибудь дополнительный коммуникационный модуль для организации связи по Modbus TCP. Или как еще можно это сделать? Спасибо
Если я правильно Вас понял, то требуется организовать параллельную связь протокола Modbus TCP между двумя Client (Master) устройствами с одним ПЛК который Server (Slave).
В тепличных настольных условиях у меня работает таким образом:
1. Три опс-сервера настраиваю как TCP клиенты, их всех натравливаю на IP адрес ПЛК, но разные порты (501, 502, 503) ПЛК.
2. В организационном блоке вызова по прерыванию 50 мс (10 мс почему то связь теряется) три блока MB_SERVER кружатся с разными блоками данных, ID и разными портами (501, 502, 503).
3. Так как при устройстве из опс серверов карусели связь с ПЛК все-таки теряется, добавил инструкцию ежеминутной посылки на DOSCONNECT всех трех блоков MB_SERVER одного импульса.
4. Прошивка ПЛК 4.2.

Lutuginec
новенький
новенький
Сообщения: 1
Зарегистрирован: 23 апр 2018, 15:09
Имя: Андрей
Страна: РФ

S7-1200 Modbus TCP

Сообщение Lutuginec »

На реальной установке создали два МВ блока с разными портами под одним IP и всё отлично работает

asnik
здесь недавно
здесь недавно
Сообщения: 4
Зарегистрирован: 20 июл 2016, 09:33
Имя: сергей николаевич

S7-1200 Modbus TCP

Сообщение asnik »

Сделал один MB_Server на s7-1200 с целью отвечать на Modbus запросы клиентов.
На вход MB_Hold дал DB с аналогами (Float). Все хорошо, Modbus клиентом опрашиваю и получаю значения параметров. Кроме этого мне нужно было получить еще входные-выходные дискреты (Bool), которые хранятся в другом DB. Сначала я объединил аналоги и дискреты в одном DB, предполагая что клиенту все равно что читать в регистрах хранения, нужно задать только адрес регистра или бита. Возникла ошибка соединения с сервером. Тогда сделал два блока MB_SERVER
с другим ID и номером порта . На 1-й блок DB с аналогами, на 2-й DB с дискретами, опять неудача, значения недостоверны.
Как прочитать несколько DB с разнородными данными? Документацию уже наизусть выучил.
Там кроме всего прочего сказано, что можно получить прямой доступ к образу процесса, задавая адреса типа 10001, 30001, но как это сделать практически?

asnik
здесь недавно
здесь недавно
Сообщения: 4
Зарегистрирован: 20 июл 2016, 09:33
Имя: сергей николаевич

S7-1200 Modbus TCP

Сообщение asnik »

Lutuginec писал(а): 23 апр 2018, 15:13 На реальной установке создали два МВ блока с разными портами под одним IP и всё отлично работает
Я пробовал так сделать, на 2 разных МВ блока на разные порты на вход МВ_Hold дать 2 разных DB. Получил ошибку.

asnik
здесь недавно
здесь недавно
Сообщения: 4
Зарегистрирован: 20 июл 2016, 09:33
Имя: сергей николаевич

S7-1200 Modbus TCP

Сообщение asnik »

Все решилось самым стандартным способом, созданием единой DB со всеми необходимыми данными для обмена по ТСР .Только вначале поместил дискреты, потом все остальное.

kanadeiar
здесь недавно
здесь недавно
Сообщения: 13
Зарегистрирован: 12 фев 2018, 20:17
Имя: Андрей
Страна: Россия
город/регион: Кузнецк
Поблагодарили: 6 раз

S7-1200 Modbus TCP

Сообщение kanadeiar »

asnik писал(а): 01 сен 2018, 12:32 Все решилось самым стандартным способом, созданием единой DB со всеми необходимыми данными для обмена по ТСР .Только вначале поместил дискреты, потом все остальное.
Я дискреты через DB не делал, в инструкции нашел что можно обращатся напрямую к дискретным/аналоговым входам/выходам и делал напрямую, так и приспособился.
То есть дискретный выход контроллера %Q100.0 доступен для записи/чтения через мадбас функции 15/01 по адресу 800 или 320hex.

askaev
здесь недавно
здесь недавно
Сообщения: 40
Зарегистрирован: 25 июн 2014, 16:29
Имя: Максим
Страна: Россия
город/регион: Каменск-Шахтинский
Поблагодарили: 3 раза

S7-1200 Modbus TCP

Сообщение askaev »

Контроллер отдаёт все регистры с поменянными местами байтами. Ну, т.е вместо AB отдаёт BA (для 16 бит типа UInt), вместо ABCD отдаёт CDAB (для 32 бит типа Real). На стороне панели менять местами байты не вариант. Как это сразу сделать на стороне контроллера?
Ответить

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