Профиль должен быть заполнен на русском языке кириллицей. Заполнение профиля заведомо ложными или некорректными данными - причина возможного отказа в регистрации на форуме.

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

PLC, прочие контроллеры, промышленные компьютеры, операторские панели

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

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

Сообщение Vinsant » 21 фев 2012, 17:43

Уважаемые!
Помогите, пожалуйста, в подключении панели от 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
авторитет
авторитет
Сообщения: 875
Зарегистрирован: 15 авг 2011, 20:36
Ф.И.О.: Пупков Сергей Викторович
Благодарил (а): 7 раз
Поблагодарили: 12 раз

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

Сообщение Serex » 21 фев 2012, 19:06

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


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

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

Сообщение Vinsant » 21 фев 2012, 19:45

Шину лучше присоединить к компе и смотреть какие байты гуляют по шине. Так быстрее разберетесь.

А как это посмотреть можно?! Какие-то дополнительные программы?

Аватара пользователя

Serex
авторитет
авторитет
Сообщения: 875
Зарегистрирован: 15 авг 2011, 20:36
Ф.И.О.: Пупков Сергей Викторович
Благодарил (а): 7 раз
Поблагодарили: 12 раз

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

Сообщение Serex » 21 фев 2012, 21:27

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

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


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

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

Сообщение Vinsant » 21 фев 2012, 21:47

Надеюсь представление имеете, чем RS-485 от RS-232 отличается?

Да. С этим разобрался в первую очередь.

Аватара пользователя

Serex
авторитет
авторитет
Сообщения: 875
Зарегистрирован: 15 авг 2011, 20:36
Ф.И.О.: Пупков Сергей Викторович
Благодарил (а): 7 раз
Поблагодарили: 12 раз

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

Сообщение Serex » 22 фев 2012, 06:35

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

Аватара пользователя

MuadDib
не первый раз у нас
не первый раз у нас
Сообщения: 359
Зарегистрирован: 31 июл 2010, 08:12
Ф.И.О.: Журавлев Павел Евгеньевич
Поблагодарили: 1 раз

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

Сообщение MuadDib » 22 фев 2012, 06:45

На счет 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
авторитет
авторитет
Сообщения: 875
Зарегистрирован: 15 авг 2011, 20:36
Ф.И.О.: Пупков Сергей Викторович
Благодарил (а): 7 раз
Поблагодарили: 12 раз

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

Сообщение Serex » 22 фев 2012, 12:12

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

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


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

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

Сообщение Vinsant » 23 фев 2012, 11:42

Тогда ваша задача будет сконфигурировать панель таким образом, чтобы она формировала правильные (для вас) пакеты Modbus RTU

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

Самый обычный тип - 3х, соответствующий команде модбас "0x04 Read input register"

По 3x получилось, что надо прописывать адрес так - 1638500 (для адреса в контроллере %MX0.0).

Изображение
Изображение
Изображение
Изображение

Аватара пользователя

Serex
авторитет
авторитет
Сообщения: 875
Зарегистрирован: 15 авг 2011, 20:36
Ф.И.О.: Пупков Сергей Викторович
Благодарил (а): 7 раз
Поблагодарили: 12 раз

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

Сообщение Serex » 23 фев 2012, 19:11

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

Это относиться видимо только к контроллеру Beckhoff. К стандарту Modbus это не имеет никакого отношения.


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

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

Сообщение galeevob » 10 мар 2012, 20:27

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


Вернуться в «Средний уровень автоматизации»



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей