jcxz 187 23 мая, 2023 Опубликовано 23 мая, 2023 · Жалоба 1 час назад, mantech сказал: Дак е-мое, не садите на одну шину эти устройства))) Сейчас в компах по 8-10 портов Реально? А вы попробуйте как-нибудь воткнуть в один из этих портов что-то на USB-FS с активной изохронной точкой 1023 байта. А потом в другой порт - тоже с изохронной точкой хотя-бы байт на >=100 и попробуйте её активировать.... ...и с большой вероятностью получите отказ в активации от системы. Так как окажется, что эти 8-10 портов сидят на одном (ну или двух хабах), стоящих на материнке. Соответственно - втыкание в любой порт USB-FS-устройства переводит все порты этого хаба в режим USB-FS и скорость и полоса пропускания у них становятся общими. Да, может в каких-то дорогих пром-материнках каждый порт стоит на своём USB3.0-хабе, но что-то сомневаюсь что у ТС такая. 1 час назад, mantech сказал: Вы что-то про мои разработки знаете? Вы стеки усб с нуля писали, вот так, чтобы от регистров и до конечных устройств, а не адаптировав чьи-то исходники? А я писал Как-то сомнительно, при таких-то плаваниях в базовых понятиях... 41 минуту назад, mantech сказал: Вот и дело то в том, возьмите любой пром. комп и там даже несколько встроенных 485х, причем не усб переходников. Ага, ну вот уже оказывается, что для того, чтобы ТСу запустить что-то через Modbus-RTU, ему нужно поменять ещё и комп на наверняка недешёвый промышленный! Начали с того, что нужно выделить отдельный USB-хаб и дошли до пром-ПК... PS: Может всё-таки - ну его этот Modbus-RTU с такой кучей проблем? И взять любой протокол, который менее требователен к свойствам канала? Который не имеет временнЫх ограничений? И таких протоколов хватает. Зачем тогда упираться рогом в этот Modbus-RTU??? И когда ТС вдруг решит расширить свою систему, добавив каналы через TCP или через радио-линки или etc, то он сделает это легко и просто. А не будет всё переделывать с 0, как в случае с Modbus-RTU. Это если немного уметь прогнозировать будущие хотелки... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 187 23 мая, 2023 Опубликовано 23 мая, 2023 · Жалоба 46 минут назад, Arlleex сказал: Но даже пусть вскрыл чужой - вижу, как эти "псевдоаппаратные" RS-ы висят на мостах-преобразвоателях. В старых ПК - на PCI На моей прошлой работе, для программистов, работающих с COM-портами (множеством портов одновременно) мы покупали отдельные PCI-платы, на которой сидели COM-порты. Они кстати позволяли себя конфигурить в режим: или RS-232 или RS-485 или RS-422. И скорость обеспечивали вроде до 4 Мб/с даже для высоковольтного RS-232 (или даже 16 Мб/с?, не уверен...). Но это серьёзная, дорогая плата расширения. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 35 23 мая, 2023 Опубликовано 23 мая, 2023 · Жалоба 33 минуты назад, jcxz сказал: Ага, ну вот уже оказывается, что для того, чтобы ТСу запустить что-то через Modbus-RTU, ему нужно поменять ещё и комп на наверняка недешёвый промышленный! Специально написал, что для особо ответственных применений, для бытовых прекрасно работают переходники, по крайне мере у меня... 14 минут назад, jcxz сказал: Но это серьёзная, дорогая плата расширения. Вот и я об этом, если делаете что-то серьезное, то будьте добры соотв. оборудование, если делаете на г..не и ветках, то и не удивляйтесь, что будет подглючивать иногда... 36 минут назад, jcxz сказал: И когда ТС вдруг решит расширить свою систему, добавив каналы через TCP или через радио-линки или etc, то он сделает это легко и просто. А что помешает сделать легко и просто уже существующий модбас на 485м? Мне почему-то это никогда не мешало и мои контроллеры могут работать и так и так одновременно))) 37 минут назад, jcxz сказал: Как-то сомнительно, при таких-то плаваниях в базовых понятиях... Все знать невозможно, главное за буйки не заплывать... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_4afc_ 25 23 мая, 2023 Опубликовано 23 мая, 2023 · Жалоба 1 hour ago, Arlleex said: Но даже пусть вскрыл чужой - вижу, как эти "псевдоаппаратные" RS-ы висят на мостах-преобразвоателях. В старых ПК - на PCI, еще старее - на ISA, в поновее - на USB, и лишь в единицах - проводочки уходят куда-то под сам проц. А дальше - что там крутится на этом ПК? Как ОС обслуживает каналы передачи данных между приложением и драйвером? аппаратные RS-ы висят на портах x86 c конкретными номерами прибитыми гвоздями. Иногда эти номера можно поменять в BIOS или джампером. "псевдоаппаратные" RS-ы ISA висят на портах выставленных джамперами "псевдоаппаратные" RS-ы PCI висят на портах узнаваемых и иногда меняемых по PCI во всех трёх случаях способ общения одинаков, через RING0. Разное только номер первого порта RS. Адресное пространство памяти - не учавствует. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 35 23 мая, 2023 Опубликовано 23 мая, 2023 · Жалоба 38 минут назад, jcxz сказал: Реально? А вы попробуйте как-нибудь воткнуть в один из этих портов что-то на USB-FS с активной изохронной точкой 1023 байта. А потом в другой порт - тоже с изохронной точкой хотя-бы байт на >=100 и попробуйте её активировать.... И в каких задачах такие требования? Или опять из оперы сферического коня в вакууме? 5 минут назад, _4afc_ сказал: аппаратные RS-ы висят на портах x86 c конкретными номерами прибитыми гвоздями. Это было сто лет назад, современные PCI платы можно назначить на любые адреса и прерывания. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 187 23 мая, 2023 Опубликовано 23 мая, 2023 · Жалоба 7 минут назад, mantech сказал: И в каких задачах такие требования? Или опять из оперы сферического коня в вакууме? Вы о чём вообще? Я вам привёл условия реального тестирования работоспособности поделок с Modbus-RTU. Именно реального тестирования, а не имитации оного. Вы как тестируете работоспособность своих устройств? В самых лёгких условиях эксплуатации? Или всё-таки - в самых тяжёлых? Вот то что я привёл - это 2-е. Вы когда-нибудь так тестировали свои устройства? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 35 23 мая, 2023 Опубликовано 23 мая, 2023 · Жалоба Только что, jcxz сказал: Вы как тестируете работоспособность своих устройств? Тестирую тем софтом и в тех условиях, в которых им предстоит работать, легкие они или тяжелые зависит от конфигурации. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_4afc_ 25 23 мая, 2023 Опубликовано 23 мая, 2023 · Жалоба 7 minutes ago, mantech said: Это было сто лет назад, современные PCI платы можно назначить на любые адреса и прерывания. Вы внимательно прочли все 3 пункта? Я об этом и сказал, в варианте слотовых плат. Но после назначения - без разницы MB/ISA/PCI - пишем читаем порты, сидим на прерываниях. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 187 23 мая, 2023 Опубликовано 23 мая, 2023 · Жалоба 8 минут назад, mantech сказал: Тестирую тем софтом и в тех условиях, в которых им предстоит работать, легкие они или тяжелые зависит от конфигурации. Т.е. - не тестировали. Отсюда вывод: работоспособность ваших устройств - фиктивная. Она - до первого серьёзного проверяющего. Если ваш девайс, заявленный как работающий на 115200 бод на полной скорости, вдруг, после втыкания некоего мультимедиа-девайса в соседний USB-порт, еле-еле может прокачать 100 байт/сек, то очевидно что обещанная скорость - филькина грамота. Также как и реализация Modbus-RTU, которая работает только в идеальных условиях. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 35 23 мая, 2023 Опубликовано 23 мая, 2023 · Жалоба 1 минуту назад, jcxz сказал: Отсюда вывод: работоспособность ваших устройств - фиктивная. Мне на ваши выводы все-равно, ибо вы ни в одном моем процессе не участвовали... 3 минуты назад, jcxz сказал: Если ваш девайс, заявленный как работающий на 115200 бод на полной скорости, вдруг, после втыкания некоего мультимедиа-девайса в соседний USB-порт, еле-еле может прокачать 100 байт/сек, то очевидно что обещанная скорость - филькина грамота. Если вы используете офисные компы с софтом в проавтоматике, то я не удивлен, что ваша сеть повиснет, если у секретарши, работающей в ворде за этим же компом и слушая музыку, вдруг зависнет принтер, чего тут еще-то дискутировать... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SSerge 4 23 мая, 2023 Опубликовано 23 мая, 2023 · Жалоба 16 hours ago, _3m said: Для меня тоже загадка как в дровах ftdi пересылка 1 байта занимает от 15мс независимо от битрейта но оно есть. Это загадка только для тех кто аппноты от ftdi не читает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ericN 3 24 мая, 2023 Опубликовано 24 мая, 2023 · Жалоба В 22.05.2023 в 16:38, jcxz сказал: Это вот это "2 одинаковые платы"? ну я же говорю, что не читает. домотоал до следующей картинки, а текст не прочитал. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
razrab83 17 24 мая, 2023 Опубликовано 24 мая, 2023 (изменено) · Жалоба 19 часов назад, mantech сказал: Вот приведите пожалуйста пример - я сделал переходник усб-485, подключил к нему промышленное RTU устройство и оно, блин не работает!!! есть шкаф, в котором с десяток устройств объедены шиной RS-485. Для обмена используется протокол Modbus. Девайсы Промышленные девайсы в шкафу с "честным" Modbus. Контролируется 3.5 и 1.5. Все девайсы - это слейвы. Подрубили промышленную ЭВМ к этой шине как мастера. битрейт 921600. по этой шине идет непрерывный контроль со стороны мастера. Пакеты не очень длинные, но и не короткие. Обмен непрерывный. Периодически рвется связь. мастер теряет ответы от слейва и принимает решение, что слейв рипнулся и делает соответствующие действия. Если снизить битрейт до 9600 - то обмен стабильный, но время опроса всей системы сильно увеличивалось и не удовлетворяло требованиям. Стали разбираться..... мастер при запросе, в пакете часто делал дырки более 1.5 символов. А иногда и более 3.5 символов. Прогеров мастера носом ткнули в осциллограммы шины 485. Прогеры стали кумекать.... на эвм был linux. они что то там намудрили... что-то в область realtime... стало лучше... дырок в 3.5 нет, а вот в 2 символа появлялись. редко, но появлялись. Долго они с этим боролись - и сдались. Нешмагла я, нешмагла. В итоге разрабов слейвов заставили убрать контроль 1.5. Перешли на нечестный Modbus. Далее.... пожелали написать анализатор/снифер. Подрубился ноутом через usb-rs485 к шине - и в окошках весь обмен... кто, кому, когда, какие данные шлёт и по возможности визуализировать данные. Т.е. ПК выступал как слейв, который просто подслушивает. Так вот ПК не смог разделить пакеты. Делалось это через VCP. На ПК прога спрашивает "есть в порту непрочитанные данные?", далее "прочитать все данные". Вычитывает много байт... допустим 1500. Что это? где там пакеты? как их поделить? В массиве байт искались пакеты программно. В лог падали пакеты... несколько штук подряд у которых время приема было одинакового, т.е. время вызова функции read(); ps переходник usb-rs485 использовался MOXA, о котором недавно тут упоминали. Я это всё к тому, что тащить Modbus в ПК - это геморрой. Если Modbus тащится для того, чтобы "быть как все", т.е. что-бы в будущем было сопряжение с другими, то нужно его делать честным. Если он не честный, то могут быть проблемы с сопряжение др. устройств. Если др. устройства разрабатывает сосед по офису, то он может "вам пойти на встречу". А если это какая нить санкционочка - то ..... Modbus хорош для обмена между МК, но тащить его в ПК, даже в промышленный - это геммор. Даже на апаратном rs485 - это тоже гемор. В 22.05.2023 в 15:30, tonyk_av сказал: Для наладки использовал MOXA-1150. На объектах платы от Advantech с аппаратным UART. Проблем с Модбас ни там, ни там не было. Вполне вероятно. С большей вероятностью для наладки все будет работать. с маленьким битрейтом ваш ПК отправит запрос - минуту 10 мс будет ждать ответ, а не дождется то повторит запрос. Даже если в запросе/ответе были дырки и слейв не ответил. Ваш пк раз 50 повторит запрос, пользователь даже не заметит, что там что-то пошло не так. Прочитать и записать несколько регистров - почему бы нет. Я бы объединил две платы через UART. И объединил бы у uarta Rxd и TxD и соеденил бы одной линией (аля 1-Wire). Пк через USB. программный проброс команд с USB в 1-Wire. Протокол и на usb и на 1-Wire свой. Даже если подключаться к ПК через uart, то тоже все 3 девайса соединить одной 1-Wire. Какие проблемы? Ни каких колец не нужно Если всё же RS, то ни как не 422, а 485. Чем плох 485? Протокол - свой. Даже если за основу Modbus, то нечестный. Да и зачем вам модбас? Зачем вам какой-то готовый freeПротокол? Свой протокол пишется быстрее, чем я этот пост. 0-ой байт - адрес, 1-ый байт команда, 3....n байт данные, CRC, ВСЁ!!! Ну можно докинуть ещё один байт длинны. И чтоб было совсем приятно парсить массив с 10-ю пакетами, добавьте в начало пакета 2 байта синхрослова. Изменено 24 мая, 2023 пользователем razrab83 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 131 24 мая, 2023 Опубликовано 24 мая, 2023 · Жалоба 57 минут назад, razrab83 сказал: Контролируется 3.5 и 1.5... битрейт 921600... Справедливости ради стоит заметить, что на таких скоростях правило 3.5 и 1.5 не применяется, вместо этого берутся фиксированные таймауты 750 мкс и 1.75 мс. Цитата 0-ой байт - адрес, 1-ый байт команда, 3....n байт данные, CRC, ВСЁ!!! Ну можно докинуть ещё один байт длинны. И чтоб было совсем приятно парсить массив с 10-ю пакетами, добавьте в начало пакета 2 байта синхрослова. Все равно нужен кодонезависимый фрейминг, а Ваш таковым не является. У RTU он кривущий таймаутный, но хотя бы есть. SLIP/COBS и дело сделано. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tonyk_av 31 24 мая, 2023 Опубликовано 24 мая, 2023 · Жалоба 52 minutes ago, razrab83 said: С большей вероятностью для наладки все будет работать. с маленьким битрейтом ваш ПК отправит запрос - минуту 10 мс будет ждать ответ, а не дождется то повторит запрос. Обычно, битрейт был 115200. И мастер, и слэйв ведет учёт запросов, ответов на запросы, битых пакетов. Так вот, битых пакетов не было. Статистику обмена в устройствах делаю обязательно, ибо она помогает при наладке сети и ПО. 56 minutes ago, razrab83 said: 0-ой байт - адрес, 1-ый байт команда, 3....n байт данные, CRC, ВСЁ!!! Добавить поле длины блока данных размером в 1 байт, и получается Модбас, который документирован, поддерживается всем и вся, потому девайс с ним легко подключить к любой АСУ. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться