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

Детали разработки модуля Modbus

В 26.05.2023 в 12:51, quark сказал:

Тяжело тем, кто живет рядом с ними.

ещё тяжелее жить рядом с теми, кто тяп-ляп и в продашин. 

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


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

1 минуту назад, ericN сказал:

ещё тяжелее жить рядом с теми, кто тяп-ляп и в продашин. 

Так, не живите рядом. ))) Живите отдельно от "тяп-ляп". )))  А от "продакшин" - тем более... )))

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


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

Про производительность компьютера и винду.

Есть такой протокол EtherCAT. Реалтаймовое кольцо 100 Мбит Ethernet с UDP пакетом постоянной длины. Слейв передает пакет дальше, не дожидаясь конца приема, подменив/прочитав нужные ему биты в пакете на лету, ну и в обратную сторону так же. То есть задержка в кольце считается битами, а не пакетами.

И есть программа TwinCAT для Винды, которая его обслуживает. Что интересно- может работать и на стандартном одном LAN из PC, спецоборудование даже и не нужно в минимальной конфигурации (без дублирования). Но! Программа поддерживает не все чипсеты Ethernet. То есть на поддерживаемых чипсетах она подменяет виндовый драйвер своим и вполне справляется. Я гонял в сети до 5 пакетов в миллисекунду (бурст из 5 пакетов в начале каждой миллисекунды), все очень стабильно (в моем случае это был траффик на уровне 10% загрузки сети).

Там еще есть возможность просто откусить под свою задачу/задачи одно и более железяное ядро микропроцессора, и на нем уже свои программы обработки писать с выделенными таймслотами и приоритетами, чтобы и верхний уровень успевал этот поток данных взять и применить. 

Все это в винде, в единной программе, без твиков и хаков. И на десктопе, и для промконтроллеров. То есть стоит пром-ПК с виндой, на ней ТвинКэт, и все это управляет разными механизмами в реалтайме. И ничего, живет и справляется.

Так что и винда не плохая, нужно просто уметь ее готовить. По крайней мере, с Езернетом можно вполне себе реалтайм получить. :)

 

Про ошибки: Они, конечно, быть могут, и любая система должна быть готова к их возникновению. Для того же EtherCAT регламентируют 1e-12, что довольно много (это значит, что даже на простых системах с десятками слейвов запросто можно раз в пару часов статистически получать ошибку в сети).

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


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

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

"Дырка"- это 1.5 символа?

да, если ответ был с паузой в 3 символа меж байтами? Модбас строго регламентирует, что если межбайтовый интервал >1.5, то это NOK. Эти ваши PCIe через API Win32 как сообщат на прикладной уровень, что пакет принят с пометкой NOK?

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


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

4 часа назад, =AK= сказал:

Очевидно вы с USB знакомы понаслышке.

Очевидно это скорее про вас.

4 часа назад, =AK= сказал:

То, что вы называете "размер кадра" (data payload), практически ни на что не влияет. Об этом в спецификации USB сказано так: The division of the data stream into smaller chunks is not visible to the client

Кроме того - не читаете то, что уже было написано ранее в этом топике. Повторим:

В 22.05.2023 в 18:51, jcxz сказал:

Если на той же шине сидит USB-FS с активной изохронной точкой размером == 1023 байта, то на все остальные interrupt-, bulk- и control-передачи остаётся ~64 байта пропускной способности шины. А если учесть, что из interrupt-, bulk- и control-передач - bulk обладают наименьшим приоритетом, а другие устройства на шине решат в это время пообмениваться control- и interrupt-пакетами, то для bulk-а может вообще времени не остаться. И весь CDC просто ляжет на некоторое время. Если он конечно control-передачи не использует (тут не уверен; хотя наличие bulk в дескрипторе намекает на это).

Открывайте спецификацию USB-FS, читайте про типы передач, их приоритеты. И начинайте думать - что будет в таком случае?

Кроме штатной высокой загрузки шины, бывают ещё случаи помех на линии. Которые в случае с bulk, приводят к переповторам передач, а следовательно - ещё большему падению общей пропускной способности USB-CDC.

4 часа назад, =AK= сказал:

USB СDC реализован поверх USB bulk. При размере "кадра" 64 байта, в одном фрейме FS (т.е. за 1 мс) передается до 19 "кадров" балк

.... и если имеется высокая загрузка шины и она работает в режиме USB-FS, то следующий bulk 64 байта может прйти только через несколько USB-SOF. Т.е. - через много мсек позже. Вот тут Modbus-RTU-мастер и садится в лужу допускает внезапный разрыв кадра.  :vava:

4 часа назад, =AK= сказал:

Случаи перегруженного USB можно не рассматривать в силу их экзотичности.

Таким макаром можно что угодно оправдать. Например: случаи помех в радио-канале или помех на RS-485 ... etc. Просто предполагаем, что эфир всегда идеально чист помех не существует и условия работы всегда идеальные - и всё! Как ведь сильно жизнь такого "разработчика" упрощается.  :biggrin:

 

PS: Вы, когда на дорогу выезжаете, тоже предполагаете, что условия всегда идеальные и других автомобилей на ней нету?

3 часа назад, Arlleex сказал:

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

:good:

Это вообще обязательное правило "для любых проводов, торчащих наружу". Всегда нужно предполагать, что на них может навестись любая помеха. И устройство должно быть готово к этому.

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

Видимо такие люди ничего серьёзнее домашних наколенных поделок не делали.  :unknw:

3 часа назад, Arlleex сказал:

Раком-боком с костылями, методами "ну вроде подключил и работает" - конечно можно.

:good::good::good:

3 часа назад, Arlleex сказал:

Ничуть не удивлен, что у половины "все работает, потому что у меня все работает", а у другой был и свой противоположный опыт.

:good::biggrin:

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


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

1 час назад, quark сказал:

Заблуждаетесь. Тяжело тем, кто живет рядом с ними. Но мы относимся к этому с пониманием... )))))

В "Фобос-в-грунт" случайно не вы участвовали? Ну если не вы, то точно - ваши единомышленники над ним работали.  :biggrin:

1 час назад, =AK= сказал:

Выдрано "Случаи перегруженного USB можно не рассматривать в силу их экзотичности".

Да - на дорогу можете тоже выезжать не рассматривая случаи её перегруженности. Зачем? Просто считайте, что она всегда пуста.  :vava: :biggrin:

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


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

1 минуту назад, jcxz сказал:

В "Фобос-в-грунт" случайно не вы участвовали? Ну если не вы, то точно - ваши единомышленники над ним работали.  :biggrin:

Вам уже отвечали. Вашими же словами:

24.05.2023 в 15:51, jcxz сказал:

Пи$%^ть - не мешки ворочать!  :biggrin:

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


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

В 24.05.2023 в 15:48, Arlleex сказал:

вы утверждаете что, линии RS485 не должны быть подтянуты к питанию, что всякие подтяжки - это костыли. Я не буду спрашивать "Почему?", спорит и утверждать обратное.... но... по вашей же ссылке в документе все картинки на подтяжках. Более того, см там же 3.4.6 Line Polarization.  
 

Цитата

 

To insure that its receiver stays in a constant state, when no data signal is present, some devices need to bias the
network. 

Each MODBUS device must be documented to say :

- if the device needs a line polarization,

- if the device implements, or can implement, such a line polarization.

 

Т.е. делаем честный модбас-мастера допустим на ПЛИС.... умеем мусорную линию... все тайменги, все интервалы выдерживаем... врубаем в сеть с 10-тю сторонними устройствами, и на одно из устройств в документации внезапно "The device needs a line polarization". Т.е. оно требует штаны на лямках подтяжки - это это не нарушает специфику Modbus. Но вы утверждете что растяжки - это костыли. 

далее.... там же

Цитата

The maximum number of devices authorized on such a MODBUS Serial Line is reduced by 4 from a MODBUS without polarization.

ну и ладно.... Теперь делаем на Win-ПК наш мастер-Modbus, штаны цепляем за лямки делаем подтяжку линии и ни какого шума. В документации на наш мастер пишем (согласно спецификации модбас): "Наш мастер работает на скоростях от 9600 до 115200, ТРЕБУЮТСЯ РАСТЯЖКИ!". Это же будет не в разрез с модбасом. И другие сторонние девайсы, которым не требуется поляризация - прекрасно будут работать на растянутой шине. 

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


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

18 минут назад, quark сказал:

Вам уже отвечали. Вашими же словами:

Очевидно вы не понимаете смысла этой фразы. Потому как приводите её не к месту. Советую хотя-бы толковый словарь фразеологизмов почитать, раз уж с чтением документации на USB и на Modbus у вас никак не складывается.  :unknw:

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


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

On 5/26/2023 at 11:23 AM, Ruslan1 said:

Все это в винде, в единной программе, без твиков и хаков.

это просто вам так кажется - что там под капотом рантайма twincat ? подозреваю аналог RTAI или Xenomai, когда ядро можно откусить понятней - partitioning hypervisor по типу Jailhouse. В общем ни винда ни линукс сами по себе реалтайм обеспечить не могут, по крайрей мере на том уровне который вы описываете.

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


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

1 час назад, tonyk_av сказал:

Неужели даже мысль не мелькнула, почему так много оборудования с Модбас, но почему я не знаю о полноценной поддержки этого стандарта на ПК?

если честно, не встречал на ПК, тем более виндовомПК мастера модбас. Очень много оборудования с модбас... все они подключаются как каким-то модемам, УСД, АСКУЭ, ПЛК и т.п. Но чтобы напрямую рс485 где-то затащили в пк... наверно есть такое.

Затаскивали напрямую в пк модбас для конфигурирования/настройки, но не для "жизненой" системы.... 

ps Но периодически в голове витает мысль сделать свой не USB/RS485, а USB/Modbus. Чтоб с одной стороны usb со своими буклами со своим драйвером/протоколом, с другой полноценный модбас. Чтоб и мастер и слейв - не вопрос! Но я уже отошел от этой автоматики.... возможно когданить вернусь - сделаю. На алишке по 51 рублю продавать буду ))) Возможно уже такие есть.

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


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

10 минут назад, razrab83 сказал:

если честно, не встречал на ПК, тем более виндовомПК мастера модбас. Очень много оборудования с модбас... все они подключаются как каким-то модемам, УСД, АСКУЭ, ПЛК и т.п. Но чтобы напрямую рс485 где-то затащили в пк... наверно есть такое.

Таких карт - как грязи. Наберите в поиске: "PCI-RS485 card for PC".

Вот: 

https://www.networkhardwares.com/products/4-port-pci-express-pcie-serial-combo-card-2-x-rs232-2-x-rs422-rs485-pex4s232485

https://www.wut.de/e-13610-ww-daus-000.php

...

На прошлой работе у разработчиков в компах стояли аналогичные 4-х-портовки RS232/RS485.

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


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

29 минут назад, jcxz сказал:

Очевидно вы не понимаете смысла этой фразы. Потому как приводите её не к месту.

Главное - чтобы Вы сами понимали смысл этой фразы и приводили ее к месту.
Иначе, ваш собственный ответ всегда будет к месту - по отношению к Вам:

24.05.2023 в 15:51, jcxz сказал:

Пи$%^ть - не мешки ворочать!  :biggrin:

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


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

20 minutes ago, sasamy said:

это просто вам так кажется - что там под капотом рантайма twincat ? подозреваю аналог RITA или Xenomai, когда ядро можно откусить понятней - partitioning hypervisor по типу Jailhouse. В общем ни винда ни линукс сами по себе реалтайм обеспечить не могут, по крайрей мере на том уровне который вы описываете.

да пусть хоть черт с рогами там внутри. Для меня было открытием, что такую функциональность возможно засунуть в программу, которую я ставлю стандартными средствами в винду. И эта программа у меня работает одновременно со всем остальным, стандартным десктопным окружением. И не грузит систему (по крайне мере, старичок Ксеон с 8GB оперативки эту нагрузку на моем десктопном компе не замечает, хотя на десяток открытых хромов может ругнуться разгоном кулера).

(А что такое RITA? наверное, RTAI?)

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


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

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

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

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

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

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

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

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

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

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