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

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

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

Может. Я же приводил ссылки на платы последовательных интерфейсов с FIFO в 256 байт. Специально сделано, чтобы передавать без разрывов.

Я же написал: "в общем случае". Т.е. - для COM-портов любого типа, образованных каким угодно оборудованием.

Ведь тут некоторые утверждают, что в любом случае, для любых COM-портов всё будет ок:

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

Итог: Любые внешние устройства, использующие протокол MODBUS, могут быть подключены, качестве ведомых устройств, к ПК как ведущему устройству. Все они будут корректно работать без каких-либо ограничений.

Вот так вот.  :unknw:

Понятно, что потом, когда петух жареный клюнет несчастный пользователь их кривых поделий здорово влетит в копеечку и предъявит им претензии, то они просто сольются. Здесь то за базар они ничем не рискуют....

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


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

Обратите внимание на картинку.

image.png.9ec2ec9af374fa51ca0d1031052c4165.png

Ясно ведь нарисовано, что допускается пауза не более полутора символов. Даже для 115200 это около 150мкс. По нынешним временам это уйма времени.

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


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

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

А если у вас например - ваш холодильник будет иногда вдруг самопроизвольно отключаться на несколько часов (потому как "умный дом", управление электропитанием, все дела :gamer4: ). Или свет в сортире иногда самопроизвольно выключаться в самые неподходящие моменты. По той же причине.

Как это соотносится с этим?

 

23 минуты назад, mantech сказал:

то ничего страшного не произойдет, если 1 из 100 пакетов придет с ошибкой, то же самое может случится на суперпупер надежном ПЛК, просто помеха в линии, так что, если программа на ПК написана максимально корректно

Или у вас при ошибке кадра по любой причине, повтор не делается принципиально? Или принятый пакет не проверяется на целостность, на корректность КС и сразу идет в работу? 

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

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


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

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

Ясно ведь нарисовано, что допускается пауза не более полутора символов. Даже для 115200 это около 150мкс. По нынешним временам это уйма времени.

Для USB-CDC на USB-FS это всего лишь 64/11520 = 5.5 мсек. Что совсем немного. И то - только для FTDI (с энд-поинтами 64 байта) и при условии, что кадр был заполнен полностью. А все ли USB-CDC имеют эндпоинты == 64 байта или есть меньше? А если рядом сидит изохронный эндпоинт? А если рядом сидят другие USB-CDC? ...

13 минут назад, mantech сказал:

Как это соотносится с этим?

Или у вас при ошибке кадра по любой причине, повтор не делается принципиально? Или принятый пакет не проверяется на целостность, на корректность КС и сразу идет в работу? 

Элементарно:

Ваш Modbus-RTU работает через USB-CDC-свисток. Вы воткнули рядом с ним колонку с музычкой. Которая качает через изохронную точку высококачественный звук. Связь и пропала. Вообще пропала. Потому как все кадры пошли теперь с разрывами. Так как не успевает пролезть длинный кадр через эндпоинт 64 байта посылаемый раз в несколько 1-мсек интервалов. Вы этого не заметили. Воткнули музычку и пошли в сортир. А мастер в это время всё повторял и повторял запросы. Которые никак не проходили теперь, так как кадры стали резаться. И через минуту, ваш контроллер (ведомый), выставил таймаут "отсутствия связи с центром". И по этой причине вырубил вам в сортире свет. :smile:

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


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

В 25.05.2023 в 14:32, jcxz сказал:

И по этой причине вырубил вам в сортире свет.

Пошел в сортир, ставь музычку на паузу. :mail1: 

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


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

46 минут назад, mantech сказал:

Эт где такие требования, что после одного опроса и сразу из списка? А если помеха, тогда что? Чет тут явно что-то мутное...

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

А теперь с ваших слов... 1 пакет из 100 теряем. Хорошо. кто силён в теории вероятности? если теряем 1 пакет из 100, то какова вероятность что потеряем 3 пакета подряд из 300? 

 

ps Когда строили АЭС в Чернобыле, то считалось что вероятность аварии очень мала. Авария на АЭС может произойти раз в 1 млн лет. Ученные не ошибались. Первый миллион прошел.

pps причем граница между первым млн и вторым проходит где-то между 1986 и 2011 годами. фукусима - это уже из 2-го млн.   

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


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

Только что, ericN сказал:

Пошел в сортир, ставь музычку на паузу.

Во развернули диспут, за две платы + ПК ...чтоб комп не ВЫКЛючали, вешаю дежурный транспарант . Кстати, за BITBUS еще не тёрли ? Сотня+ устройств в одной системе пашет 24/7 крайние 20-ть лет ... ничего стороннего подключить нельзя .

1404148407_.thumb.jpg.3b910efdab37c789641147c0596d039f.jpg

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


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

19 minutes ago, razrab83 said:

Мастер linux не гарантировал неразрывной передачи. это было редко, но было. и было от этого "не прияно".

Я вот понять не могу: в 16550 FIFO на 8 байт, плюс передача с использованием DMA- и есть пропуски?

Для той платы с FIFO на 256 байт, ссылку на которую я показывал, есть драйвер для Линукс. Под Виндой за полгода работы на объекте ни разу не пришёл битый пакет ни с той платой, ни с MOXA-1150. А скорость нормальная, 115200.

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


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

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

Обратите внимание на картинку.

Ясно ведь нарисовано, что допускается пауза не более полутора символов. Даже для 115200 это около 150мкс. По нынешним временам это уйма времени.

Реакция 150мкс чисто программно непосильная задача не только для ОС Win и Lin но даже если вы программируете Bare metal многоядерный проц с гигерцовоой тактовой. Во первых тяжелое переключение контекста. Во вторых сложная иерархия кэшей и шинных коммутаторов. Из кэша - гигагерцы а махать ногами - медленно и печально. Нужно железо которое аппаратно поддерживает RTU а его в доступных компах нет.

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

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

...

Межфреймовая пауза между окончанием запроса и началом ответа обеспечивается ведомым устройством, которое работает по стандарту. Эта пауза принципиально не контролируется ведущим, за ненадобностью. Уже объяснял почему. Контроль нужен только на максимальную паузу, чтобы решить, что устройство уже не ответит.

Неверный вывод. Все стандартные ведомые устройства будут работать. Для них все будет строго по стандарту. А как все устроено в ПК - их не касается.

Защитное смещение (растяжка) это сопротивление 500 Ом или более. Выходное сопротивление передатчика RS485 менее 50 Ом. Разница на порядок. Кроме того растяжка вообще не обязательно для надежной работы при скрупулезном следовании стандарту RTU, она нужна только чтобы кое-как работало негодное оборудование а именно стандартные порты в ПК.

Паузы 3.5T обрамляющие кадр с обеих сторон как раз и предназначены чтобы передатчик железобетонно удерживал в линии состояние Idle по которому разделяются кадры как ведомыми так и ведущим потому что в 485 линии они все одинаковые.

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

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


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

13 minutes ago, _3m said:

Реакция 150мкс чисто программно непосильная задача не только для ОС Win и Lin но даже если вы программируете Bare metal многоядерный проц с гигерцовоой тактовой.

Странно, но МК даже на 48 МГц это делает не напрягаясь.

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


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

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

Странно, но МК даже на 48 МГц это делает не напрягаясь.

МК это делает аппартно. 

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


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

15 minutes ago, _3m said:

Разница на порядок. Кроме того растяжка вообще не обязательно для надежной работы при скрупулезном следовании стандарту RTU

Растяжка идёт не из каких-то требований RTU, которых там и не было никогда, а из рекомендаций по разводке сетей стандарта EIA-485.

 

16 minutes ago, _3m said:

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

Так стандартные порты в ПК- это EIA-232 с его плюс-минус 12В, а не EIA-485 с его 3.3В или 5В.

Just now, razrab83 said:

МК это делает аппартно. 

Если есть RTO. Мы так-то говорим, по-сути, о времени переключении контекста процессора. Я с удивлением узнал, что гигагерцовый процессор не успевает переключить контекст даже за 150мкс, а МК на 48МГц- может. Поржал, если честно.

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


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

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

Защитное смещение (растяжка) это сопротивление 500 Ом или более. Выходное сопротивление передатчика RS485 менее 50 Ом. Разница на порядок. Кроме того растяжка вообще не обязательно для надежной работы при скрупулезном следовании стандарту RTU, она нужна только чтобы кое-как работало негодное оборудование а именно стандартные порты в ПК.

Паузы 3.5T обрамляющие кадр с обеих сторон как раз и предназначены чтобы передатчик железобетонно удерживал в линии состояние Idle по которому разделяются кадры как ведомыми так и ведущим потому что в 485 линии они все одинаковые.

Понятно. Еще один фанат "мусорных линий" объявился, в компанию к  Arlleex.
Нравиться героически преодолевать трудности? Особенно те, которые создали себе сами? Ну-ну..
В этом случае ПК, в качестве мастера, Вам конечно не подойдет. Забудьте.
Но, я думаю, эту трудность Вы тоже преодолеете. И без помощи подтяжек, которые для Вас - "табу".

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


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

7 часов назад, jcxz сказал:

Ваш Modbus-RTU работает через USB-CDC-свисток. Вы воткнули рядом с ним колонку с музычкой.

Как вы себе представляете подобное в промавтоматике? Или у вас в порядке вещей взять и воткнуть непойми что в ПК занятый ответственной работой, установить на нем какую-то "левую" прогу? А если он при этом зависнет вообще? Помню в бытность работы в охране, на пульте стояли 2 ПК на которых работала прога управления снятием\постановкой на охрану, так вот там были требования, отсутствие дисководов, "лишних" портов усб, и опломбированный корпус. А если начальник техслужбы увидит что-то незаконно установленное, то обслуживающий инженер может получить неполное служебное соответствие, вот так должно быть в ответственных устройствах, а то, что у вас по описанию - это бардак, уж извините...

7 часов назад, razrab83 сказал:

А теперь с ваших слов... 1 пакет из 100 теряем. Хорошо. кто силён в теории вероятности? если теряем 1 пакет из 100, то какова вероятность что потеряем 3 пакета подряд из 300? 

Только учтите, потеря 3 пакетов ДРУГ ЗА ДРУГОМ, а это уже совсем другая вероятность, чувствуете)))

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


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

10 часов назад, mantech сказал:

Только учтите, потеря 3 пакетов ДРУГ ЗА ДРУГОМ, а это уже совсем другая вероятность, чувствуете)))

нет, не чувствую. я спросил "то какова вероятность что потеряем 3 пакета ПОДРЯД из 300?" Посчитали? Запомнили. Та вот "3 пакета подряд" это и есть "3 пакета друг за другом".

"вероятность 3-х пакетов др. за др" не будет совершенно другой вероятностью, будет такая же, как "вероятность 3 пакета подряд", в силу того что наречие "подряд" и "др. за др." это одно и тоже.

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

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


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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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