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

Соединение HMI Weintek с Beckhoff BX9000 по ModBusRTU. Help!

Модератор: специалисты Weintek

Закрыто

Автор темы
Vinsant
здесь недавно
здесь недавно
Сообщения: 13
Зарегистрирован: 21 фев 2012, 18:37
Имя: Венков Алексей Евгеньевич
Страна: Россия
город/регион: Moscow
Благодарил (а): 1 раз

Соединение HMI Weintek с Beckhoff BX9000 по ModBusRTU. Help!

Сообщение Vinsant »

Уважаемые!
Помогите, пожалуйста, в подключении панели от Weintek (MT8070IH) с контроллером Beckhoff BX9000 по протоколу ModBusRTU.
Так я сам недавно в автоматизации и никогда раньше не занимался программированием, то возникло множество вопросов и проблем.

Что удалось сделать самому:
1. В TwinCat написать простейшую программу для 2х кнопок ("Старт", "Стоп") и лампочки. Переменные прописаны в "%MX0.0, %MX0.1 и %MX0.2")
2. В настройках панели Weintek был выбран тип ПЛК "ModBusRTU". В стандартном списке контроллеров нету Beckhoff'a. Поэтому следуя логике решил выбрать это. Правильно ли я поступил? Если нет, то как надо правильно делать?
3. Создал 2 кнопки и лампочку. В настройках к ним привязал "ModBusRTU" и тут возникла проблема с адресацией. Я не понимаю что значит "форматы: 0x, 1x, 3x", а так же что значит DDDDDo и как с этим работать. Более менее внятных объяснений в интернете найти не удалось.(*Где можно раздобыть некоторую инструкцию для чайников, а не профессионалов?) Удалось выяснить, что запись данных начинается с 16385. (*что это за зверь и как с ним работать тоже остается неясным). Как можно понять где в области памяти лежит нужная мне информация?
4.И вот тут начинаются вопросы: как правильно совместить адреса прописанные в Beckhoff и Weintek, чтобы они друг друга видели? Нужно ли писать какие-то дополнительные макросы, чтобы они друг друга видели? Если да, то где и как?!

Так как я еще чайник в этом деле, то, пожалуйста, поясняйте как для ребенка.
Спасибо.
Аватара пользователя

Serex
эксперт
эксперт
Сообщения: 2085
Зарегистрирован: 15 авг 2011, 21:36
Имя: Пупков Сергей Викторович
Страна: Россия
город/регион: Москва
Благодарил (а): 134 раза
Поблагодарили: 174 раза

Re: Соединение HMI Weintek с Beckhoff BX9000 по ModBusRTU. H

Сообщение Serex »

Ну надо бы сначала разобраться, что такое ModbusRTU. Шину лучше присоединить к компе и смотреть какие байты гуляют по шине. Так быстрее разберетесь.
Ну и панель - это мастер устройство, а контроллер должен быть слэйв в терминологии Modbus

Автор темы
Vinsant
здесь недавно
здесь недавно
Сообщения: 13
Зарегистрирован: 21 фев 2012, 18:37
Имя: Венков Алексей Евгеньевич
Страна: Россия
город/регион: Moscow
Благодарил (а): 1 раз

Re: Соединение HMI Weintek с Beckhoff BX9000 по ModBusRTU. H

Сообщение Vinsant »

Шину лучше присоединить к компе и смотреть какие байты гуляют по шине. Так быстрее разберетесь.
А как это посмотреть можно?! Какие-то дополнительные программы?
Аватара пользователя

Serex
эксперт
эксперт
Сообщения: 2085
Зарегистрирован: 15 авг 2011, 21:36
Имя: Пупков Сергей Викторович
Страна: Россия
город/регион: Москва
Благодарил (а): 134 раза
Поблагодарили: 174 раза

Re: Соединение HMI Weintek с Beckhoff BX9000 по ModBusRTU. H

Сообщение Serex »

Обычный терминал подойдет. Можете в яндексе набрать "монитор COM-порта". Много всякого валяется.
Надеюсь представление имеете, чем RS-485 от RS-232 отличается?

P.S. Хотя лучше "терминал COM-порта".

Автор темы
Vinsant
здесь недавно
здесь недавно
Сообщения: 13
Зарегистрирован: 21 фев 2012, 18:37
Имя: Венков Алексей Евгеньевич
Страна: Россия
город/регион: Moscow
Благодарил (а): 1 раз

Re: Соединение HMI Weintek с Beckhoff BX9000 по ModBusRTU. H

Сообщение Vinsant »

Надеюсь представление имеете, чем RS-485 от RS-232 отличается?
Да. С этим разобрался в первую очередь.
Аватара пользователя

Serex
эксперт
эксперт
Сообщения: 2085
Зарегистрирован: 15 авг 2011, 21:36
Имя: Пупков Сергей Викторович
Страна: Россия
город/регион: Москва
Благодарил (а): 134 раза
Поблагодарили: 174 раза

Re: Соединение HMI Weintek с Beckhoff BX9000 по ModBusRTU. H

Сообщение Serex »

Когда сможете видеть на компьютере, какие байты гуляют по шине. Тогда ваша задача будет сконфигурировать панель таким образом, чтобы она формировала правильные (для вас) пакеты Modbus RTU. Для этого вам и нужно знать протокол. Где-то я видел модбас калькулятор, который посылки формирует, вещь полезная. На работе гляну, скину ссылку. После того, как будете иметь правильные посылки, вам нужно будет сделать драйвер на контроллере, чтобы он их правильно читал и давал ответ. Может в контроллере уже готовая библиотека есть, так что только спараметрировать все нужно будет.
Аватара пользователя

MuadDib
частый гость
частый гость
Сообщения: 462
Зарегистрирован: 31 июл 2010, 09:12
Имя: Павел
Страна: РФ
Благодарил (а): 10 раз
Поблагодарили: 17 раз

Re: Соединение HMI Weintek с Beckhoff BX9000 по ModBusRTU. H

Сообщение MuadDib »

На счет Beckhoff не подскажу, но с Weintek помочь могу.

Описание DeviceType (0x, 1x и т.д.) смотрите в документации EasyBuilder (раздел 19.3 About MODBUS Address Type). В зависимости от этой уставки панель выбирает команду Modbus для чтения/записи значения. О том, какие команды поддерживает Beckhoff , смотрите в документации на контроллер.

Макросы в общем случае не нужны. Для начала попробуйте прочитать значение любого регистра контроллера. Выясните, как устанавливается соответствие между адресами Modbus и переменными контроллера, а также как устанавливается slave-адрес (мануалы Beckhoff). Когда с этим будет все ясно, создайте пустой проект для панельки и сделайте следующее:

1. Добавьте в проект устройство Modbus RTU, задайте правильные параметры COM-порта.
2. Поместите на экран Numeric display object и сделайте следующие настройки:
- PLC Name - созданное вами устройство Modbus RTU
- Device type - выбирайте в зависимости от поддерживаемых вашим контроллером команд. Самый обычный тип - 3х, соответствующий команде модбас "0x04 Read input register"
- Address - адрес Модбас, назначенный переменной в контроллере. Если вы задаете просто число, то запрос идет на устройство с адресом, указанным в настройке PLC default station no. Если устройств на шине несколько, можно делать так: 2#345 (читать переменную 345 с устройства со slave-адресом 2)

С адресом переменной часто бывает путаница: Как правило, когда вы присваиваете переменной некий адрес n, то в кадре протокола должно быть число (n-1). Соответственно, n >= 1. Это прописано в стандарте, и многие производители этого придерживаются. Многие, но не все. Поэтому лучше для начала создать несколько переменных, например, с адресами 1 и 2. Потом сделайте в панельке чтение переменной с адресом 2. Если все нормально, то вы прочитаете переменную "2" контроллера. В противном случае вы будете читать с адреса 1. Если есть несоответствие, то можно использовать альтернативный "тип контроллера" в настройках проекта Weintek, отличающийся наличием zero-based addressing в названии.

Когда будет успешное чтение регистра модбас и отображение его значения на экране, можно будет разбираться дальше. Считайте такую процедуру заменителем "инструкции для чайников" :)
Удалось выяснить, что запись данных начинается с 16385
Не знаю откуда это. У Weintek такого ограничения нет.
Аватара пользователя

Serex
эксперт
эксперт
Сообщения: 2085
Зарегистрирован: 15 авг 2011, 21:36
Имя: Пупков Сергей Викторович
Страна: Россия
город/регион: Москва
Благодарил (а): 134 раза
Поблагодарили: 174 раза

Re: Соединение HMI Weintek с Beckhoff BX9000 по ModBusRTU. H

Сообщение Serex »

Я пользовался этой программой, когда нужна была тщательная отладка софта.
Когда новое железо, никогда не знаешь, как оно формирует пакеты Modbus ))

http://www.simplymodbus.ca/download.htm

Автор темы
Vinsant
здесь недавно
здесь недавно
Сообщения: 13
Зарегистрирован: 21 фев 2012, 18:37
Имя: Венков Алексей Евгеньевич
Страна: Россия
город/регион: Moscow
Благодарил (а): 1 раз

Re: Соединение HMI Weintek с Beckhoff BX9000 по ModBusRTU. H

Сообщение Vinsant »

Тогда ваша задача будет сконфигурировать панель таким образом, чтобы она формировала правильные (для вас) пакеты Modbus RTU
Изучил несколько томов литературы. Нашел информацию, что до 16385 по ModBusRTU зарезервированное для внутренних процессов пространство в контроллере. Т.е. посылки отправляют лишь после этого значения.
Самый обычный тип - 3х, соответствующий команде модбас "0x04 Read input register"
По 3x получилось, что надо прописывать адрес так - 1638500 (для адреса в контроллере %MX0.0).

Изображение
Изображение
Изображение
Изображение
Аватара пользователя

Serex
эксперт
эксперт
Сообщения: 2085
Зарегистрирован: 15 авг 2011, 21:36
Имя: Пупков Сергей Викторович
Страна: Россия
город/регион: Москва
Благодарил (а): 134 раза
Поблагодарили: 174 раза

Re: Соединение HMI Weintek с Beckhoff BX9000 по ModBusRTU. H

Сообщение Serex »

Изучил несколько томов литературы. Нашел информацию, что до 16385 по ModBusRTU зарезервированное для внутренних процессов пространство в контроллере. Т.е. посылки отправляют лишь после этого значения.
Это относиться видимо только к контроллеру Beckhoff. К стандарту Modbus это не имеет никакого отношения.

galeevob
здесь недавно
здесь недавно
Сообщения: 10
Зарегистрирован: 09 мар 2012, 22:17
Имя: Галеев Олег Борисович
Страна: Россия
город/регион: Уфа

Re: Соединение HMI Weintek с Beckhoff BX9000 по ModBusRTU. H

Сообщение galeevob »

http://modbus.org/docs/PI_MBUS_300.pdf описание протокола от создателя, посмотрите в википедии если с англ. туго
скиньте мыло в личку, вышлю Вам модбас тестер
Закрыто

Вернуться в «WEINTEK (операторские панели)»