- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
Соединение HMI Weintek с Beckhoff BX9000 по ModBusRTU. Help!
Модераторы: Глоб.модераторы, специалисты Weintek
-
- здесь недавно
- Сообщения: 13
- Зарегистрирован: 21 фев 2012, 18:37
- Имя: Венков Алексей Евгеньевич
- Страна: Россия
- город/регион: Moscow
- Благодарил (а): 1 раз
Соединение HMI Weintek с Beckhoff BX9000 по ModBusRTU. Help!
Уважаемые!
Помогите, пожалуйста, в подключении панели от 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, чтобы они друг друга видели? Нужно ли писать какие-то дополнительные макросы, чтобы они друг друга видели? Если да, то где и как?!
Так как я еще чайник в этом деле, то, пожалуйста, поясняйте как для ребенка.
Спасибо.
Помогите, пожалуйста, в подключении панели от 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, чтобы они друг друга видели? Нужно ли писать какие-то дополнительные макросы, чтобы они друг друга видели? Если да, то где и как?!
Так как я еще чайник в этом деле, то, пожалуйста, поясняйте как для ребенка.
Спасибо.
-
- эксперт
- Сообщения: 2099
- Зарегистрирован: 15 авг 2011, 21:36
- Имя: Пупков Сергей Викторович
- Страна: Россия
- город/регион: Москва
- Благодарил (а): 138 раз
- Поблагодарили: 174 раза
Re: Соединение HMI Weintek с Beckhoff BX9000 по ModBusRTU. H
Ну надо бы сначала разобраться, что такое ModbusRTU. Шину лучше присоединить к компе и смотреть какие байты гуляют по шине. Так быстрее разберетесь.
Ну и панель - это мастер устройство, а контроллер должен быть слэйв в терминологии Modbus
Ну и панель - это мастер устройство, а контроллер должен быть слэйв в терминологии Modbus
-
- здесь недавно
- Сообщения: 13
- Зарегистрирован: 21 фев 2012, 18:37
- Имя: Венков Алексей Евгеньевич
- Страна: Россия
- город/регион: Moscow
- Благодарил (а): 1 раз
Re: Соединение HMI Weintek с Beckhoff BX9000 по ModBusRTU. H
А как это посмотреть можно?! Какие-то дополнительные программы?Шину лучше присоединить к компе и смотреть какие байты гуляют по шине. Так быстрее разберетесь.
-
- эксперт
- Сообщения: 2099
- Зарегистрирован: 15 авг 2011, 21:36
- Имя: Пупков Сергей Викторович
- Страна: Россия
- город/регион: Москва
- Благодарил (а): 138 раз
- Поблагодарили: 174 раза
Re: Соединение HMI Weintek с Beckhoff BX9000 по ModBusRTU. H
Обычный терминал подойдет. Можете в яндексе набрать "монитор COM-порта". Много всякого валяется.
Надеюсь представление имеете, чем RS-485 от RS-232 отличается?
P.S. Хотя лучше "терминал COM-порта".
Надеюсь представление имеете, чем RS-485 от RS-232 отличается?
P.S. Хотя лучше "терминал COM-порта".
-
- здесь недавно
- Сообщения: 13
- Зарегистрирован: 21 фев 2012, 18:37
- Имя: Венков Алексей Евгеньевич
- Страна: Россия
- город/регион: Moscow
- Благодарил (а): 1 раз
Re: Соединение HMI Weintek с Beckhoff BX9000 по ModBusRTU. H
Да. С этим разобрался в первую очередь.Надеюсь представление имеете, чем RS-485 от RS-232 отличается?
-
- эксперт
- Сообщения: 2099
- Зарегистрирован: 15 авг 2011, 21:36
- Имя: Пупков Сергей Викторович
- Страна: Россия
- город/регион: Москва
- Благодарил (а): 138 раз
- Поблагодарили: 174 раза
Re: Соединение HMI Weintek с Beckhoff BX9000 по ModBusRTU. H
Когда сможете видеть на компьютере, какие байты гуляют по шине. Тогда ваша задача будет сконфигурировать панель таким образом, чтобы она формировала правильные (для вас) пакеты Modbus RTU. Для этого вам и нужно знать протокол. Где-то я видел модбас калькулятор, который посылки формирует, вещь полезная. На работе гляну, скину ссылку. После того, как будете иметь правильные посылки, вам нужно будет сделать драйвер на контроллере, чтобы он их правильно читал и давал ответ. Может в контроллере уже готовая библиотека есть, так что только спараметрировать все нужно будет.
-
- частый гость
- Сообщения: 462
- Зарегистрирован: 31 июл 2010, 09:12
- Имя: Павел
- Страна: РФ
- Благодарил (а): 10 раз
- Поблагодарили: 17 раз
Re: Соединение HMI Weintek с Beckhoff BX9000 по ModBusRTU. H
На счет 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 в названии.
Когда будет успешное чтение регистра модбас и отображение его значения на экране, можно будет разбираться дальше. Считайте такую процедуру заменителем "инструкции для чайников" :)
Описание 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 в названии.
Когда будет успешное чтение регистра модбас и отображение его значения на экране, можно будет разбираться дальше. Считайте такую процедуру заменителем "инструкции для чайников" :)
Не знаю откуда это. У Weintek такого ограничения нет.Удалось выяснить, что запись данных начинается с 16385
-
- эксперт
- Сообщения: 2099
- Зарегистрирован: 15 авг 2011, 21:36
- Имя: Пупков Сергей Викторович
- Страна: Россия
- город/регион: Москва
- Благодарил (а): 138 раз
- Поблагодарили: 174 раза
Re: Соединение HMI Weintek с Beckhoff BX9000 по ModBusRTU. H
Я пользовался этой программой, когда нужна была тщательная отладка софта.
Когда новое железо, никогда не знаешь, как оно формирует пакеты Modbus ))
http://www.simplymodbus.ca/download.htm
Когда новое железо, никогда не знаешь, как оно формирует пакеты Modbus ))
http://www.simplymodbus.ca/download.htm
-
- здесь недавно
- Сообщения: 13
- Зарегистрирован: 21 фев 2012, 18:37
- Имя: Венков Алексей Евгеньевич
- Страна: Россия
- город/регион: Moscow
- Благодарил (а): 1 раз
Re: Соединение HMI Weintek с Beckhoff BX9000 по ModBusRTU. H
Изучил несколько томов литературы. Нашел информацию, что до 16385 по ModBusRTU зарезервированное для внутренних процессов пространство в контроллере. Т.е. посылки отправляют лишь после этого значения.Тогда ваша задача будет сконфигурировать панель таким образом, чтобы она формировала правильные (для вас) пакеты Modbus RTU
По 3x получилось, что надо прописывать адрес так - 1638500 (для адреса в контроллере %MX0.0).Самый обычный тип - 3х, соответствующий команде модбас "0x04 Read input register"
-
- эксперт
- Сообщения: 2099
- Зарегистрирован: 15 авг 2011, 21:36
- Имя: Пупков Сергей Викторович
- Страна: Россия
- город/регион: Москва
- Благодарил (а): 138 раз
- Поблагодарили: 174 раза
Re: Соединение HMI Weintek с Beckhoff BX9000 по ModBusRTU. H
Это относиться видимо только к контроллеру Beckhoff. К стандарту Modbus это не имеет никакого отношения.Изучил несколько томов литературы. Нашел информацию, что до 16385 по ModBusRTU зарезервированное для внутренних процессов пространство в контроллере. Т.е. посылки отправляют лишь после этого значения.
-
- здесь недавно
- Сообщения: 10
- Зарегистрирован: 09 мар 2012, 22:17
- Имя: Галеев Олег Борисович
- Страна: Россия
- город/регион: Уфа
Re: Соединение HMI Weintek с Beckhoff BX9000 по ModBusRTU. H
http://modbus.org/docs/PI_MBUS_300.pdf описание протокола от создателя, посмотрите в википедии если с англ. туго
скиньте мыло в личку, вышлю Вам модбас тестер
скиньте мыло в личку, вышлю Вам модбас тестер