- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
S7-1200 Modbus TCP
Модератор: Глоб.модераторы
-
- здесь недавно
- Сообщения: 48
- Зарегистрирован: 28 апр 2015, 17:19
- Имя: Петров Артем Олегович
- Благодарил (а): 10 раз
S7-1200 Modbus TCP
Добрый день. Задача: ПЛК S7-1200 1214С (Slave). Должна быть организована связь с двумя панелями (Master) по Modbus TCP. S7-1200 имеет только один порт для соединения по Modbus . Существует ли какой-нибудь дополнительный коммуникационный модуль для организации связи по Modbus TCP. Или как еще можно это сделать? Спасибо
-
- почётный участник форума
- Сообщения: 3971
- Зарегистрирован: 20 янв 2010, 22:23
- Имя: Никита
- Страна: РФ
- город/регион: Мурманск
- Благодарил (а): 21 раз
- Поблагодарили: 229 раз
S7-1200 Modbus TCP
А с через обычный хаб/свитч не работает? Теоретически, проблемы быть не должно. На практике какая-то мокса имела заморочки с количеством сокетов.
Или речь все же про ModbusRTU?
Или речь все же про ModbusRTU?
Опыт - это когда на смену вопросам: "Что? Где? Когда? Как? Почему?" приходит единственный вопрос: "Нахрена? "
-
- здесь недавно
- Сообщения: 13
- Зарегистрирован: 12 фев 2018, 20:17
- Имя: Андрей
- Страна: Россия
- город/регион: Кузнецк
- Поблагодарили: 6 раз
S7-1200 Modbus TCP
Если я правильно Вас понял, то требуется организовать параллельную связь протокола Modbus TCP между двумя Client (Master) устройствами с одним ПЛК который Server (Slave).Ivydy писал(а): ↑13 фев 2018, 16:26Добрый день. Задача: ПЛК S7-1200 1214С (Slave). Должна быть организована связь с двумя панелями (Master) по Modbus TCP. S7-1200 имеет только один порт для соединения по Modbus . Существует ли какой-нибудь дополнительный коммуникационный модуль для организации связи по Modbus TCP. Или как еще можно это сделать? Спасибо
В тепличных настольных условиях у меня работает таким образом:
1. Три опс-сервера настраиваю как TCP клиенты, их всех натравливаю на IP адрес ПЛК, но разные порты (501, 502, 503) ПЛК.
2. В организационном блоке вызова по прерыванию 50 мс (10 мс почему то связь теряется) три блока MB_SERVER кружатся с разными блоками данных, ID и разными портами (501, 502, 503).
3. Так как при устройстве из опс серверов карусели связь с ПЛК все-таки теряется, добавил инструкцию ежеминутной посылки на DOSCONNECT всех трех блоков MB_SERVER одного импульса.
4. Прошивка ПЛК 4.2.
-
- новенький
- Сообщения: 1
- Зарегистрирован: 23 апр 2018, 15:09
- Имя: Андрей
- Страна: РФ
S7-1200 Modbus TCP
На реальной установке создали два МВ блока с разными портами под одним IP и всё отлично работает
-
- здесь недавно
- Сообщения: 4
- Зарегистрирован: 20 июл 2016, 09:33
- Имя: сергей николаевич
S7-1200 Modbus TCP
Сделал один MB_Server на s7-1200 с целью отвечать на Modbus запросы клиентов.
На вход MB_Hold дал DB с аналогами (Float). Все хорошо, Modbus клиентом опрашиваю и получаю значения параметров. Кроме этого мне нужно было получить еще входные-выходные дискреты (Bool), которые хранятся в другом DB. Сначала я объединил аналоги и дискреты в одном DB, предполагая что клиенту все равно что читать в регистрах хранения, нужно задать только адрес регистра или бита. Возникла ошибка соединения с сервером. Тогда сделал два блока MB_SERVER
с другим ID и номером порта . На 1-й блок DB с аналогами, на 2-й DB с дискретами, опять неудача, значения недостоверны.
Как прочитать несколько DB с разнородными данными? Документацию уже наизусть выучил.
Там кроме всего прочего сказано, что можно получить прямой доступ к образу процесса, задавая адреса типа 10001, 30001, но как это сделать практически?
На вход MB_Hold дал DB с аналогами (Float). Все хорошо, Modbus клиентом опрашиваю и получаю значения параметров. Кроме этого мне нужно было получить еще входные-выходные дискреты (Bool), которые хранятся в другом DB. Сначала я объединил аналоги и дискреты в одном DB, предполагая что клиенту все равно что читать в регистрах хранения, нужно задать только адрес регистра или бита. Возникла ошибка соединения с сервером. Тогда сделал два блока MB_SERVER
с другим ID и номером порта . На 1-й блок DB с аналогами, на 2-й DB с дискретами, опять неудача, значения недостоверны.
Как прочитать несколько DB с разнородными данными? Документацию уже наизусть выучил.
Там кроме всего прочего сказано, что можно получить прямой доступ к образу процесса, задавая адреса типа 10001, 30001, но как это сделать практически?
-
- здесь недавно
- Сообщения: 4
- Зарегистрирован: 20 июл 2016, 09:33
- Имя: сергей николаевич
S7-1200 Modbus TCP
Я пробовал так сделать, на 2 разных МВ блока на разные порты на вход МВ_Hold дать 2 разных DB. Получил ошибку.
-
- здесь недавно
- Сообщения: 4
- Зарегистрирован: 20 июл 2016, 09:33
- Имя: сергей николаевич
S7-1200 Modbus TCP
Все решилось самым стандартным способом, созданием единой DB со всеми необходимыми данными для обмена по ТСР .Только вначале поместил дискреты, потом все остальное.
-
- здесь недавно
- Сообщения: 13
- Зарегистрирован: 12 фев 2018, 20:17
- Имя: Андрей
- Страна: Россия
- город/регион: Кузнецк
- Поблагодарили: 6 раз
S7-1200 Modbus TCP
Я дискреты через DB не делал, в инструкции нашел что можно обращатся напрямую к дискретным/аналоговым входам/выходам и делал напрямую, так и приспособился.
То есть дискретный выход контроллера %Q100.0 доступен для записи/чтения через мадбас функции 15/01 по адресу 800 или 320hex.
-
- здесь недавно
- Сообщения: 42
- Зарегистрирован: 25 июн 2014, 16:29
- Имя: Максим
- Страна: Россия
- город/регион: Каменск-Шахтинский
- Поблагодарили: 3 раза
S7-1200 Modbus TCP
Контроллер отдаёт все регистры с поменянными местами байтами. Ну, т.е вместо AB отдаёт BA (для 16 бит типа UInt), вместо ABCD отдаёт CDAB (для 32 бит типа Real). На стороне панели менять местами байты не вариант. Как это сразу сделать на стороне контроллера?