Перейти к содержанию
    

Плавный переход C -> C++ под МК

4 часа назад, sidy сказал:

Если имеется ввиду преобразователь COM->USB то он есть.

Ой как все запущено...
"преобразователь COM->USB" не умеет RTU! Совсем, от слова вообще. Если вы как микроконтроллерщик хотя бы читали спецификацию RTU то должны знать что там критически важна отработка временных интервалов. Ни Виндоуз ни Линукс не умеют работать с точными времянками потому что они ни разу не RTOS да и USB не гарантирует соблюдение временных характеристик что называется by design.

Цитата

Какую среду разработки использовать?

Ту в которой вы привыкли писать программы для ПК. Если под ПК ранее не писали  - ищите на проект писюкового погромизда.

8 часов назад, Arlleex сказал:

Qt Creator. Там C++ с блекджеком и слотами/сигналами.

Отличный совет!
Что у нас с лицензией Qt для Russia ???

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 6/5/2024 at 5:15 PM, _3m said:

Что у нас с лицензией Qt для Russia

для гуёв уровня  "прочетать модбас" это очень важно 🙂 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

43 минуты назад, _3m сказал:

Что у нас с лицензией Qt для Russia ???

А чё там с ней? Компудахтер не дает программировать?)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

20 hours ago, _3m said:

Ой как все запущено...
"преобразователь COM->USB" не умеет RTU! Совсем, от слова вообще. Если вы как микроконтроллерщик хотя бы читали спецификацию RTU то должны знать что там критически важна отработка временных интервалов. Ни Виндоуз ни Линукс не умеют работать с точными времянками потому что они ни разу не RTOS да и USB не гарантирует соблюдение временных характеристик что называется by design.

Не только читал RTU, но и реализовывал на МК. И прекрасно знаю про паузу 2,5 байта при приеме и 3,5 байта при передаче. По факту сталкивался со сторонними устройствами с modbus rtu в которых эти интервалы отличались гораздо в большую сторону. Если  Виндоуз и Линукс не могут в realtime, то как тогда реализуется опрос modbus rtu устройств с помощью ПК?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 hours ago, sidy said:

Если  Виндоуз и Линукс не могут в realtime, то как тогда реализуется опрос modbus rtu устройств с помощью ПК?

А для чего _любому_ процессору или МК работать в рилтайме для реализации Модбас? Судя по постановке вопроса, свою реализацию Модбас ТС делал на некрофильских MCS-51 или AVR.

Изменено пользователем tonyk_av

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

21 час назад, sidy сказал:

...прекрасно знаю про паузу 2,5 байта при приеме и 3,5 байта при передаче. По факту сталкивался со сторонними устройствами с modbus rtu в которых эти интервалы отличались гораздо в большую сторону. Если  Виндоуз и Линукс не могут в realtime, то как тогда реализуется опрос modbus rtu устройств с помощью ПК?

На ПК опрос modbus rtu реализуется с помощью:

а) С использованием специально обученных переходников которые либо сами отрабатывают протокол либо хотя бы позволяют работать с паузами согласно спецификации rtu. Это редкость потому что жаба всегда против.

б) Покланием толстого болта на все разделы спецификации RTU относящиеся к паузам. Заодно кладется болт на устойчивость к сбоям и надежность доставки пакетов. Это мэйнстрим, так все и работают.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 минуты назад, _3m сказал:

На ПК опрос modbus rtu реализуется с помощью:

а) С использованием специально обученных переходников которые либо сами отрабатывают протокол либо хотя бы позволяют работать с паузами согласно спецификации rtu. Это редкость потому что жаба всегда против.

б) Покланием толстого болта на все разделы спецификации RTU относящиеся к паузам. Заодно кладется болт на устойчивость к сбоям и надежность доставки пакетов. Это мэйнстрим, так все и работают.

И мы уже знаем в какой группе находится наш Modbus-строитель:

В 05.06.2024 в 12:26, sidy сказал:

Если имеется ввиду преобразователь COM->USB то он есть.

:biggrin:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 05.06.2024 в 09:00, sidy сказал:

У меня вопрос: Писал на С ПМО для микроконтроллеров. С С++ не знаком. Требуется разработать GUI для ПК, которое опрашивает устройство по Modbus, выводит полученные значения и строит графики. Что лучше использовать для этих целей C++? С чего начать изучение для данной задачи? Какую среду разработки использовать?

а вы с какой целью спрашиваете?

Может, и не нужно ничего разрабатывать?

Для Modbus есть куча готовых тулзов, начиная с Modbus Poll.

Если все-таки нужно делать кастомное приложение, то наверно лучше сразу с# и библиотека NModbus.

А вообще, полез я как-то в гитхаб с запросом "Modbus server". Первый проект - на javascript, второй на typescript

а я искал на python ))

Нынче по-другому дела делаются ) 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, jcxz said:

И мы уже знаем в какой группе находится наш Modbus-строитель:

:biggrin:

Ответ неверный.

Just now, MrYuran said:

а вы с какой целью спрашиваете?

Может, и не нужно ничего разрабатывать?

Для Modbus есть куча готовых тулзов, начиная с Modbus Poll.

Если все-таки нужно делать кастомное приложение, то наверно лучше сразу с# и библиотека NModbus.

Modbus Poll - мало функционала. Требуется графическое представление данных желательно с ведением архива на несколько дней.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 07.06.2024 в 13:37, sidy сказал:

Ответ неверный.

Modbus Poll - мало функционала. Требуется графическое представление данных желательно с ведением архива на несколько дней.

Я практиковал связку Lectus ModbusOPC toolkit + MasterSCADA

Многим LabView нравится. Если нет трбований к лицензионной чистоте.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

7 hours ago, _3m said:

б) Покланием толстого болта на все разделы спецификации RTU относящиеся к паузам. Заодно кладется болт на устойчивость к сбоям и надежность доставки пакетов. Это мэйнстрим, так все и работают.

Есть третий вариант, который здесь не озвучен.

Его суть заключается в том, что входящий поток анализируется на предмет наличия в нём Модбас-фреймов. Модбас сделан довольно логично, кроме того, поля в нём так или иначе коррелируют друг с другом, поэтому эта задача оказывается не сложной. Последний раз делали такое, когда оборудование было подключено по Модбас, но через модемы ведомственной сотовой связи (да-да, есть у нас и такая). Чё-как там было настроено- ХЗ, но пакеты прилетали рваные, причём одна половина могла прийти утром, а вторая ближе к обеду. Всё было собрано не нами и не работало. Манагеры вписались в тему, пришлось решать задачу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 07.06.2024 в 19:29, tonyk_av сказал:

Есть третий вариант, который здесь не озвучен.

Его суть заключается в том, что входящий поток анализируется на предмет наличия в нём Модбас-фреймов. Модбас сделан довольно логично, кроме того, поля в нём так или иначе коррелируют друг с другом, поэтому эта задача оказывается не сложной. Последний раз делали такое, когда оборудование было подключено по Модбас, но через модемы ведомственной сотовой связи (да-да, есть у нас и такая). Чё-как там было настроено- ХЗ, но пакеты прилетали рваные, причём одна половина могла прийти утром, а вторая ближе к обеду. Всё было собрано не нами и не работало. Манагеры вписались в тему, пришлось решать задачу.

Озвучен: это как раз вариант б)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 07.06.2024 в 19:29, tonyk_av сказал:

Есть третий вариант, который здесь не озвучен.

Его суть заключается в том, что входящий поток анализируется на предмет наличия в нём Модбас-фреймов. Модбас сделан довольно логично, кроме того, поля в нём так или иначе коррелируют друг с другом, поэтому эта задача оказывается не сложной. Последний раз делали такое, когда оборудование было подключено по Модбас, но через модемы ведомственной сотовой связи (да-да, есть у нас и такая).

А если придёт такой кадр, содержимое внутри которого будет похоже на другой Modbus-кадр?

Этот вариант называется "кривой костыль".

В 07.06.2024 в 19:29, tonyk_av сказал:

Чё-как там было настроено- ХЗ, но пакеты прилетали рваные, причём одна половина могла прийти утром, а вторая ближе к обеду.

Видимо там поработали такие-же костыле-строители.  :biggrin:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 hours ago, jcxz said:

А если придёт такой кадр, содержимое внутри которого будет похоже на другой Modbus-кадр?

Если бы у бабушки были яйца, она была бы дедушкой.

Посмотрите на структуру ADU и PDU. Нужно ведь распознать границы фреймов, а не содержимое. Можете привести пример хоть одного девайса, который берёт Модбас-фрейм и помещает его внутрь другого фрейма? Кто, где и для чего такое может делать?

4 hours ago, jcxz said:

Этот вариант называется "кривой костыль".

Этот вариант называется "нестандартная реализация". Один проект уже 15 лет работает без нареканий, другой- 10 лет, так что за кривизной это вам в другое место обращаться.

Я не говорю, что так _нужно_ делать, нет. Но так можно делать, когда по другому просто не возможно. Если уж компьютеры научили с близкой к 100% вероятностью распознавать лица людей даже в масках, то уж за 45 лет эксплуатации, наверно, можно научить компьютер распознавать границы Модбас-фрейма в сплошном потоке данных?

4 hours ago, jcxz said:

Видимо там поработали такие-же костыле-строители.  :biggrin:

Для Эзернет сетей и сетей сотовой связи это нормальное явление.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

48 минут назад, tonyk_av сказал:

Посмотрите на структуру ADU и PDU. Нужно ведь распознать границы фреймов, а не содержимое. Можете привести пример хоть одного девайса, который берёт Модбас-фрейм и помещает его внутрь другого фрейма? Кто, где и для чего такое может делать?

Элементарно: Девайс ретранслирует траффик некоего канала связи (Modbus). Не разбирая его. В кадрах своего протокола обмена. Делали такие устройства (ретранслирующие прозрачно чужой траффик). Для вас это будет выглядеть как Modbus-кадры в обрамлении некоего "мусора". Или куски таких кадров.

48 минут назад, tonyk_av сказал:

Этот вариант называется "нестандартная реализация".

Нет, это называется "кривая реализация". Изначально Modbus-RTU - кодонезависимый протокол. Вы же сделали некое поделие, не обладающее кодонезависимостью. Т.е. - что-то сделали, но явно не Modbus-RTU.  :unknw:

48 минут назад, tonyk_av сказал:

Один проект уже 15 лет работает без нареканий, другой- 10 лет, так что за кривизной это вам в другое место обращаться.

Ну да. "Работает". До тех пор, пока не найдётся заинтересованного лица, заинтересованного доказать, что ваш девайс не работает (не соответствует спецификации). Далее - эта морда лицо приобретает ваш девайс, и строит элементарный тест. На котором ваш девайс неверно распознаёт кадры. И выкладывает результаты теста в общий доступ.

Это обычное дело когда существует конкуренция. Конкуренты так и делают. Если вы не сталкивались с такой практикой, это не значит, что её нет.

 

PS: Есть и другие сценарии, когда с такой костыльной "реализацией" запросто сядете в лужу. Просто подумайте немного... Вам просто повезло наступить мимо граблей. Но завтра может уже не повезти.  :vava:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...