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

=AK=

Свой
  • Постов

    3 234
  • Зарегистрирован

  • Посещение

  • Победитель дней

    5

Сообщения, опубликованные =AK=


  1. CAN приемопередатчики БОЛЕЕ совершенны, нежели 485 и во всяких хреновых условиях и работают лучше и кроме всего прочего и ЗАЩИЩЕНЫ лучше.

     

    Не говорите ерунды.

     

    Шинники CAN для домашней автоматизации вполне сгодятся. Однако CAN на порядок менее помехоустойчив, чем RS485+Modbus. Он не более помехоустойчив, чем RS485 с типичным малограмотным самопальным протоколом, в котором вся надежда на резисторы подтяжки. Просто за счет того, что CAN шинник - это модифицированный "открытый коллектор".

  2. ничего кривее, надеюсь, уже не придумают

    Я вживую имел дело с несколькими протоколами, сделанными на порядок хуже, чем Модбас РТУ. Не потому, что их сложнее было реализовать, наоборот, они были намного проще, самопал. Только работали криво, сбоили при помехах. А чего-либо более помехоустойчивого, чем Модбас, для RS485 - не, вживую не встречал. Растопыренных пальцев и голословия на форумах видел много, это да.

     

    Давайте уточним- почему звезда не подойдет?

    Отражения от концов. Лечится снижением скорости до 5..10 kbps и частичным согласованием в центре звезды. Бельгийский VelBus, сделанный на CAN-е, обещает, что кабель можно укладывать вообще как угодно ("свободная топология"), суммарная длина может превышать 1 км. Про скорость у них трудно что-то внятное найти, но наверняка ниже 20 kbps. Свободная топология с кабелями 1 км разрешена в шинах EIB/KNX (9600 бод) и C-bus (5000 бод).

  3. Сам по себе голый CAN особого смысла не имеет, равно как голый RS485. Если CAN, то надо какой-то протокол поверх него. Сразу напрашивается CANopen, фриверная реализация - CanFestival, вот тогда будет красиво и грамотно. А это, по-моему, намного сложнее в освоении, чем RS485 c Modbus RTU, что тоже красиво и грамотно, если достаточно иметь обмен мастер-слэйв и нет амбиций на обмен по принципу producer-consumer и распределенные объекты, как в CANopen. Особенно для человека, который вообще впервые обо всем этом слышит.

  4. в качестве +24В источника питания был использован блок питания нашего проверочного стенда, реализованного на понижающем трансформаторе, двухполупериодном выпрямителе и советских электролитических конденсаторах общей емкости до 4000мкФ. ... Общая длина проводов в сигнальной цепи и цепи питания не превышала 1м

     

    Очевидно, что при замыкании энергия выделялась и рассеивалась в основном на внутреннем сопротивлении электролитических конденсаторов и в проводах. Скажем, метр довольно толстого провода AWG20 (диаметр 0.812 мм) имеет сопротивление 33 миллиома, а сопротивление замкнутого выключателя - примерно столько же. Сопротивление у электролитов зависит от типа, но советские - значит, старые, можно ожидать сотни миллиом и даже более.

     

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

  5. У нас в одной схеме стоял керамический конденсатор на 1мкФ/50В прямо на входе, параллельно светодиодному индикатору с резистором на землю. Вход коммутировался на +24В микровыключателем на 0.1А,

    Пардон, не улавливаю схему включения. Имеет ли отношение к обсуждаемому вопросу "резистор на землю" или нет - неясно, а если он не имеет отношения, а просто так, сбоку припека, то почему этот "резистор на землю" упомянут - тем более неясно. Ну и про +24В неплохо было бы поподробнее, откуда эти +24В, где стоял ближайший конденсатор на +24В и какого он был типа. Одно дело конденсатор 0.1мкФ накоротко замыкать, а когда невесть что коммутировалось невесть как невесть куда - сразу непонятки начинаются. Может, не поленитесь и нарисуете, что и как было включено?

  6. так и подумал, что вы считаете сопротивление и индуктивность монтажных проводов нулевыми. Отсюда и опасения за контакты.

     

    Я упомянул внутреннее сопротивление конденсатора. Но вы, кажется, думаете, что учет сопротивления и индуктивности проводников сильно повлияют на рассуждения? А оценочным сравнением того и другого случая не побалуете? Чтобы было видно, что с учетом одного только внутреннего сопротивления конденсаторов надо опасаться за контакты, а если к этому добавить сопротивление и индуктивность проводников - то не надо беспокоиться.

     

    Ну и энергии конденсатора 0,1 мкф для сварки контактов тоже не хватит. Импульс тока слишком короткий.

     

    Это что-то из серии "быстро поднятое с пола упавшим не считается"? :)

     

    Я не про сварку говорил, а про ускоренную деградацию.

     

    Есть энергия, накопленная в конденсаторе. Часть этой энергии уйдет в эфир в виде электромагнитного излучения, остальное перейдет в тепло. И чем короче импульс, тем хуже, поскольку это тепло не успеет рассеяться.

     

    При 5В конденсатор 0.1 мкФ хранит 1.25 мкДж энергии. Положим, вы замыкаете его выключателем с позолоченными контактами. Удельная теплоемкость золота 1290 Дж/(кг*К). Температура плавления золота 1337 К, при комнатной температуре его надо нагреть на 1040 К. Для расплавления 1 г золота надо 1.34 кДж. А энергия 1.25 мкДж может расплавить примерно 1 нг золота. Удельная плотность золота 19.3 г/см3. Кубик золота размером 1х1х1 мкм весит всего 0.2 нг, а толщина золотого покрытия - единицы микрон. Так чтo не отмахивайтесь легкомысленно, конденсатор 0.1 мкФ параллельно контакту вполне способен его постепенно испортить.

  7. Учите законы коммутации, курс ТОЭ, первый год обучения в институте.

    А все таки, чем плохо? Я хоть и учил, но ничего криминального не вижу. Более того, входная емкость вроде как позволяет "прочищать" контакты концевиков или реле повышенным начальным импульсом тока и ест помехи.

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

     

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

     

    Кроме этого, конденсатор 0.1 мкФ, разряжаемый в короткозамкнутую цепь, является миниатюрным аппаратом для точечной сварки. Дла прочищения контактов нужен ток порядка единиц миллиампер. А ток в десятки и сотни ампер может расплавлять металл в точке контакта, в результате чего контакты выключателя сравнительно быстро деградирует.

     

    Ставить супрессор там, где можно обойтись зенером, - моветон.

    Почему? дорого?

    "Экономика должна быть экономной" (с), как говаривал Л.И.Брежнев.

  8. Техас предлагает интегральные линейные датчики с точностью 0,2 градуса без калибровок с вольтовым выходом, и стоят копейки.

    То есть, +/- 0.2C. А термисторы есть и на +/- 0.05С. Причем, в отличие от полупроводниковых датчиков с "вольтовым" выходом, для измерения термистора не нужно дорогого прецизионного источника опорного напряжения, достаточно поставить точный эталонный резистор. Так что измерительная схема с термистором будет и точнее, и дешевле обойдется.

  9. А не замучаюсь кривую аппроксимировать, до полградуса-то?

    А какие проблемы? Вбиваете табличку с шагом в 1 градус, потом делаете кусочно-линейную аппроксимацию. Так гораздо точнее чем полградуса получается. Аль памяти на табличку не хватает или производительности проца на КЛА?

  10. Я так понял, что два градуса - это без всяких калибровок вообще: припаял, привернул термопару - и всё.

    С обычным недорогим "взаимозаменяемым" термистором на 0.2C можно легко получить 0.5С безо всяких калибровок.

  11. а чего не хотите использовать например MAX31855? В ней датчик окружающей температуры встроенный, с точностью 1/16 градуса.

     

    В даташите сказано Internal Cold-Junction Temperature Error -2...+2 градуса (при TA = -20°C to +85°C ). Правда, на графике типичных характеристик картинка более заманчивая.

     

  12. все готовые преобразовалки работают на ft232.

    Вы в этом уверены, или так, наобум ляпнули?

     

    Существут целый пласт проблем, связанных с шлюзами USB-RS232. Одна из них - давний, закоренелый баг в микрософтовском драйвере CDC. Вернее, я знаю в нем два давних бага, и не верю, что их когда-либо исправят. Из-за одного из этих багов Микрософт отключает виртуальный COM порт при наличии помех. Вырубает его намертво, причем к жизни этот порт вернуть можно только физически передернув USB устройство. Программные сбросы не помогают.

     

    Лечится эта проблема закупкой правильного CDC драйвера фирмы Thesycon. Они его дают попробовать на небольшое время, так что можете убедиться, в драйвере проблема или нет.

     

    Чипы FTDI как раз таки не пользуются микрософтовским драйвером, у них свой CDC драйвер. И по наблюдениям, работают намного надежнее, чем те, кто пользуется микрософтовским. Но зато этот драйвер глючит с китайскими пиратскими копиями чипов FTDI, это сделано специально. Однако по ходу создается впечатление, что "все глючат".

     

    А микрософтовским пользуются многие. Например, Микрочип, СиЛабс, TI, и т.п. Чем пользуются китайцы - это надо разбираться. Скажем, Пролифик ставит свой драйвер, причем, как и FTDI, пытается отрубить пиратские копии своих чипов, сделанные в материковом Китае. Китайцы, кторые клонировали FTDI, недавно разродились "родным китайским" чипом. Который, как я понял, использует опять таки глючный микрософтовский CDC драйвер.

     

    Дешевые китайские шлюзы, купленные на АлиЭкспресс, будут или клонами FTDI, или клонами Пролифика, или "законными китайцами", использующими глюкавый микрософтовский драйвер.

     

    Чтобы не париться со всем этим зоопарком, можно использовать низкоуровневые драйверы WinUSB, в них пока багов не замечено. Соответственно, всесто готового шлюза придется использовать микроконтроллер со встроенным USB. Тогда, конечно, со стороны микроконтроллера придется использовать некую библиотеку и молиться, чтобы в ней было мало багов.

  13. и не мешает пониманию

    Мне - мешает. Выражение "пельть 4а" поначалу я воспринял просто как "Пельтье" с опечаткой. Мало ли, клавиатура у него залипла, бывает. И только гораздо позже я понял, что он пытался написать "Пельте 4А".

     

    а вот вы - не толерантны

    Угу. Зато вы толерантны. Чувствуется, уже напились в честь воскресенья.

  14. Подскажите микросхему драйвер управления элементом пельть 4а.

    Любой buck конвертер, скажем, на базе SimpleSwitcher и т.п. Например, у меня сдохла плата питания/управления для винного холодильника, который охлаждается 12-вольтовым 60-ваттным элементом Пельтье. Для замены я взял вот этот готовый китайский степ-даун, сделанный на XL4015.

     

    Пельтье - это фамилия, а фамилия пишется с большой буквы. Ампер - тоже фамилия, поэтому в обозначении "4 А" буква тоже должна быть заглавная.

  15. При подаче негативного импульса амплитудой ну хотя бы в 1000В LL4148 пробьется, так как у него пробивное напряжение всего 100В.

    Если вам надо защищаться от 1000В, поставьте вместо LL4148 выпрямительный диод на 1000 В. Хотя сама постановка задачи выглядит совершенно надуманной.

     

    НЕужели никто не знает ответа на мой вопрос?

    Ваш вопрос не по адресу. Задавайте его тексуппорту фирмы-разработчика того программного пакета, который вы используете для анализа. А то вы даже не удосужились сказать, что это за пакет. А телепатов, увы, нет.

  16. Вопрос - как в этой схеме осуществляется защита от микросекундных помех?

    Схема защищена от микросекундных помех входным диодом, резистором 4.3к и вторым зенером. Не суйте супрессоры где ни попадя.

  17. покритикуйте схемотехнику входа 24/220В

    - Конденсaтор 0.1 мкФ параллельно входу - очень плохо. Учите законы коммутации, курс ТОЭ, первый год обучения в институте.

    - "Висящий в воздухе" светодиод оптрона - плохо. Его надо зашунтировать конденсатором или резистором.

    - Однополупериодный выпрямитель для входа 220В ас - плохо. После оптрона будет сигнал 50 Гц, который потом придется париться, чтобы нормально обработать. Проще поставить мостик и сгладить кондером.

    - Ставить супрессор там, где можно обойтись зенером, - моветон.

  18. 150-200 м это вообще не расстояние. Все, с чем вы тут имеете дело, это сопротивление проводов. Не нужно никакой огород городить. 1К pull-up, 1К последовательно к входу проца. если очень хочется - поставьте еще параллельно на землю кондер и TVS. Все остальное это уже лишнее.

    Ну и будет сбоить пока не выгорит у него вход от ваших вредных советов.

  19. Одно не пойму - если автор не знает, чего он хочет, чем не устраивает интерпретатор бэйсика?

    А что такое Бэйсик или Форт против языков PLC или даже просто голой LUT? "Это как плотник супротив столяра" (с). Не надо его ни в чем убеждать, он и сам "таких советов может каждый день выдавать пачками". :laughing: Вот Изаграф ему бы наверное подошел, но только бесплатный.

  20. Кросс Форт на C: FVM factory

     

    Ну да. Жаль, автор давно забросил этот проект. :rolleyes: Был бы он в нормальной форме, то задача создания встроенного интерпретатора решалась бы за 5 минут. А так его полдня чистить и править надо, прежде чем заработает, скажем, под CodeBlocks.

     

  21. Из значений переменных собираем индекс:

    n = (param1 << 4) + (param2 << 3) + (input1 << 2) + (input 2 << 1) + (input3 << 0);

    Затем получаем результат:

    ((0xFEF0EE00) >> n) & 1

    Т.е. для вычисления (param1 && input1) || (param2 && (input2 || input3)) нам достаточно знать одно волшебное 32-битное число 0xFEF0EE00.

    А теперь немножко расширим подход. Запланируем "таблицу" в 256 значений, соответственно, "волшебное число" будет состоять не из 4-битных полей, а из 8-битных, т.е из байт. "Bолшебное число" не будем ограничивать размерами, а запишем в байтовый массив произвольной длины. А в самой таблице будем держать адреса функций, которые будут выполняться, когда в массиве встретится соответствующий байт. В результате мы получим заготовку для простейшей Форт-машины, а байтовый массив будет содержать то, что называется "программой из байт-кодов".

     

    Для того, чтобы окончательно оформить Форт-машину, сначала зададимся вопросом; а как функции, вызываемые по своим байт-кодам, будут обмениваться информацией друг с другом? И придем к выводу, что проще всего использовать стек, откуда функции будут брать исходные данные для вычислений, и куда они будут класть результаты. Затем задумаемся, а хорошо ли, что наши программы выполняются линейно, в порядке расположения байт-кодов в массиве? Нехорошо, надо бы предусмотреть возможность изменения порядка выполнения байт-кодов при помощи самих байт-кодов. Заведем байт-коды для условной и безусловной передачи управления в произвольное место программы, а также вызовы подпрограмм, состоящих из байт-кодов, и возврата из подпрограмм. Для хранения адресов возврата заведем еще один стек, назовем его "стек возвратов".

     

    Вот теперь мы получили вполне функциональную Форт-машину. Для того, чтобы она была полной по Тьюрингу, достаточно задать всего пару десятков байт-кодов. То есть, на такой машине можно выполнить любые вычисления, хоть искусственный интеллект создать.

     

    Окончательно эта Форт-машина превратится в настоящий Форт после того, как (при помощи программ, написанных в байт-кодах) будет добавлен ввод-вывод, написан транслятор из исходного текста (или клавиатурного ввода) в байт-код, добавлены средства для организации и вызова программ в виде словарей.

  22. перейти на High Speed. А заменой чипа это получится?

    Поищите, я давно не смотрел новые чипы. Микроконтроллеры уже давно есть, которые могут на High Speed работать. Я думаю, и бриджи должны уже быть в продаже. Попробуйте FTDI покопать. У них, кстати, драйверы виртуального COM порта свои, не такие глюкавые, как у Микрософта.

  23. Можно ли повлиять на эту константу?

    В Full Speed фреймы идут с периодом 1 мс, в High Speed - с периодом 125 мкс.

     

    Может ли хост обработать более одной транзакции за фрейм? Теоретически может, особенно для высокоприоритетных пайпов. Можно попробовать Control pipe, вдруг прокатит. Однако это зависит от того, как сделан хост, прежде всего - как сделан его программный стек.

     

    На практике вы наверняка не будете ковыряться с низкоуровневыми драйверами, вроде WinUSB, которые позволили бы работать через Control pipe. Возьмете стадартный виртуальный COM порт, т.е. драйвер класса CDC, а он гоняет данные через Bulk pipe. И получите одну транзакцию за 1-2 фрейма. Плюс к этому вместе со стандартным Микрософтовским CDC драйвером получите присущие ему уже много лет баги, а именно: баг в реализации кольцевого буфера 8 Кбайт и баг полной потери виртуального ком порта из-за помех и глюков Винды (случается нечасто, раз в несколько дней, зато ничем не лечится, только передергиванием USB кабеля).

  24. Если все команды к устройству имеют размер 1 байт, и ответы от устройства то же 1 байт, сколько команд/ответов можно прогнать за секунду?

    Зависит от многих привходящих факторов. Расчитывайте на то, что в лучшем случае одна транзакция займет 1-2 мс, или больше. Значит, команда 1-2 мс, ответ 1-2 мс. А если команды задаются из-под Виндовс, то может быть намного дольше, порядка 20-50 мс.

     

    Поэтому никто по одному байту по USB не гоняет. Заполнили буфер и переслали несколько сотен байт, типично это тоже улетит за 1-2 мс.

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