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

    

dm37

Участник
  • Публикаций

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

  • Посещение

Репутация

0 Обычный

Информация о dm37

  • Звание
    Участник
  1. Исходники программ и библиотек

    по С++ обновил описание https://ru.files.fm/u/a2sfccuf#/list/ файл uC_cpp.7z
  2. Почему не работает чтение из буфера 2?

    У вас всё работает так как вы и написали. Т.е. если не сбрасывать PacketIDX, то при выборке из второго массива будет считываться не элемент 0, а элемент 4 можно, как вариант сделать так: Код    unsigned char *PacketPntr = NULL;            //     static int PacketIDX = 0;                    //        static int packet_switch = 0;     int dataLen = 0;                            //          //printf("\nPacketType = %d:", PacketSwitch);//          printf("\nAsking NByte = %d:", ch);            //     if(packet_switch != PacketSwitch)     {         PacketIDX = 0;         packet_switch = PacketSwitch;     } ...
  3. Исходники программ и библиотек

    Мои наработки по использованию языка C++ для микроконтроллеров: -микроконтроллеры ATtiny2313, ATmega32 -компилятор IAR Embedded Workbench for Atmel AVR 6.80 -симулятор Proteus 7.10 Что получилось можно посмотреть здесь https://ru.files.fm/u/a2sfccuf#/list/ файл uC_cpp.7z Внутри: - пример с динамической индикацией (исходники + proteus) - пример с LCD на HD44780 (исходники + proteus) - небольшое описание
  4. Сложные программы

    ЦитатаА зачем тогда точка с запятой нужна? Я плохо ориентируюсь в таких моментах. Подразумевается, что доходишь до команды return и если условие выполняется, то дальше код можно не смотреть
  5. Сложные программы

    "Буратино", всё таки предложу ещё раз посмотреть книжку Андрей Александреску "Современное проектирование на C++" и всё что с ней связано (у людей уже есть наработки в этой области - приводил выше), Прочитайте стр.17 (предисловие) - написано прямо то что вы хотите. книга
  6. Сложные программы

    ЦитатаА насколько сложные программы вам удается писать под Овен и на каком языке? Там многофайловые проекты можно написать? Тоже есть опыт использования продукции Овен, есть работающие проекты на ПЛК63, ПЛК100 + СП270. Отношение конечно плохое. ПЛК у Овен получились не очень. Что не понравилось: - в ПЛК крепления верхней платы идёт (шло) на пластмассовых винтах, которые быстро ломались (после покупки сразу меняли на металлические). Элемент питания для RTC тоже сразу меняли (почти всегда были старые или не рабочие) - если программировать через RS232, то постоянно терялась связь со средой разработки. Использовать переходники UBS-COM тоже не получалось (ПЛК критичны к уровням RS232), даже ноутбук со встроенным RS232 глючил, пришлось в цех тащить плату c COM-портами и вставлять в обычный ПК. Где то на форуме Овен говорили, что ПЛК110 лучше держат связь со средой разработки при отладке. - панель оператора СП270. Конфигуратор (IDE) без предупреждений просто отказалась открывать проект, который создавался несколько дней. Как потом опытным путём выяснил - количество элементов отображения какого то типа (не помню уже какого) превысило 255. После этого проект умирал без предупреждений. Писал про этот глюк на форуме, но мне разработчики панели так ничего и не ответили. - Теперь ПЛК63: в спецификации указан доступный пользователю объём RAM. Создал массив элементов с учётом данного размера, загружаю в ПЛК, ПЛК виснет. Хорошо есть комбинация из трёх пальцев, позволяющая вернуть ПЛК к жизни. В итоге выяснилось, что доступный объём меньше чем указано. В общем ПЛК Овен работает, если у вас всё же хватит терпения довести проект до конца. У нас уже несколько лет работает и проблем вроде нет. Только СП270 всё же глючит при отображении (сейчас её вроде уже не выпускают). Среда разработки CodeSys 2.3, язык ST, многофайловые поддерживаются. Стандартное меню в ПЛК63 не использовал, сделал своё. После мучений с Овен по возможности несложные проекты стали делать на ПЛК Delta (дешёвые ПЛК, которые применяются на производстве), правда среда разработки не поддерживала язык ST (не знаю как сейчас).
  7. Сложные программы

    ЦитатаЕсли ПЛК не может работать в 24\7 - это плохой ПЛК, но чаще всего исполнитель не заботится о защите линий от бросков напряжения и т.п. если исполнитель должен заботиться о защите линий по входам 220V, то я скорее выберу свой вариант преобразования из 220V в 24V (с защитой) и возьму обычный модуль дискретного ввода, в противном случае получается необоснованный огород. В принципе мы так и делаем.
  8. Сложные программы

    С++ для микроконтроллеров. в первую очередь эта статья http://easyelectronics.ru/rabota-s-portami...erov-na-si.html и примеры к ней https://github.com/KonstantinChizhov/Mcucpp/tree/dev Многие будут отсылать к книге Андрея Александреску "Современное проектирование на С++", но как то пока сложновато. тоже в основном смотрю в этом направлении, пробую как раз для AVR (8 бит). Задача стоит иметь расход RAM (а потом и Flash) аналогичный применению с использованием Си. Для себя сделал вывод, что для uC необходимо (желательно) использовать шаблоны классов со статическими членами, тогда вроде всё получается...
  9. Сложные программы

    ЦитатаМожет что нибудь предложить? Какой ПЛК самый лучший? В своё время рассматривали Schneider Electric Modicon M340 (BMX XBP 1200 + BMXP342020 + ...)
  10. Сложные программы

    Занимался как раз задачами автоматизации птичника (более 10 лет). Расскажу с чем мы столкнулись. Как показала практика все системы должны быть распределёнными (как минимум допускать расширение), либо связаны по сети (диспетчеризация). Готовые системы не устраивают не зависимо от производителя, должен быть индивидуальный подход. Минусы использования ПЛК (тип не имеет значение): 1) ОЧЕНЬ дорого, особенно по нынешним ценам; 2) в качестве датчиков температуры использовали DS18B20 (DS18S20). Ни один нормальный ПЛК не поддерживает данный тип датчиков (городить что то по modbus не очень хороший вариант) 3) частично лицензионный софт 4) иногда быстродействие, как ни странно (например, при реализации фазоимпульсной модуляции) 5) модули для контроля входов 220V как правило с трудом выдерживают режим работы 24/7 (приходится опять городить что-то свое). При разработке основная проблема была с нехваткой портов ввода/вывода, а также памяти (как RAM так Flash), как говорили уже здесь быстродействия вполне хватало (в ОСРВ потребности не было). В итоге даже начинал рассматривать вариант разработки своего ПЛК (хотели переделать ПЛК Delta, они дешевле и используют STM32 (правда среда разработки плохая, нет ST) либо сделать что-то своё аналогичное, платы можно заказать в Китае). По поводу требований заказчиков - в итоге мы (заказчики) забрали разработку софта себе, а разработчик оборудования поставлял только железо. Вот так. Скрипты не нужны, иначе вас заставят отвечать за ошибки в оборудовании (как вы собираетесь доказывать, что виноват скрипт, а не основной софт). Лучше создать железо и базовый софт и продать это всё заказчику, если у них есть кому сопровождать, пускай сами делают всё под себя, можете даже провести обучение. Если нет, поддержка у вас и ни в коем случае не давать дополнительных возможностей в виде скриптов (сломают). Помню как мы по несколько раз в неделю бегали в цех для восстановления параметров блока, пока начальник цеха не наказал их рублём за шаловливые ручки. Речь в данной теме шла о софте: итог (моё мнение) - всё равно придётся плодить версии под каждого заказчика (заказчик всегда прав), единственно, что можно это попробовать решить за счёт конфигурации блока (недоступной заказчику). Правда я немного не понимаю почему у вас это сводится к изменению ПО, как правило оно тянет за собой и изменение аппаратной части.
  11. в своё время рассматривал в основном два метода кодирования сигнала манчестер и вроде 4b/5b, почитайте о них.
  12. Один из первых проектов был похож на ваш (RXQ1-433 + AT90S2313 + IAR, любительская разработка, использовали на своём предприятии для телеметрии). Правда нам пришлось ввести байтстаффинг для устойчивой синхронизации начала пакета и заточен на наш протокол. Т.е. пока устройство не примет весь пакет, не проверит crc, не передаёт его по rs485 (ну и так же обратно). Код, конечно, не идеальный (давно это было в 2003), но устройство рабочее и можно посмотреть как мы это реализовали тогда.
  13. Подскажите, где то описано (ГОСТ,...) , что необходимо проводить повторные испытания на климатику, ЭМС и т.д. для оборудования подвергшемуся модернизации (небольшие аппаратные изменения, в том числе изменение монтажа, установка дополнительных или удаление плат, блоков, реле...). p.s. оборудование используется в энергетике В тех. решении, по которому проводилась модернизация, нет упоминания о повторных испытаниях.
  14. сниффер ком порта

    to АНТОХА ЦитатаТам как раз сказано, что растяжки не обязательны. Вернее, что их надо ставить в том и только том случае, если устройства в сети декларируют их необходимость: дак никто же этого не отрицает Уверен, что почти каждый будет проверять работу RS485 без растяжек с True Fail-Safe. Правда, если это потребует переделку софта, то не везде это применишь (совместимости не будет). P.S. Просто, если человек спрашивает, то нужно объяснять (пусть даже 2+2=4), для этого и существует форум. В своё время был очень хороший форум на telesys.ru, правда потом он стал полем разборок "профессионалов". Начинающих просто "забивали". Не хотелось бы здесь увидеть подобную манеру общения.
  15. в архиве cport310 есть файл readme.txt всё (правда по английски) написано а если кратко, то так (на примере Delphi 7): - открываем в Delphi файл cport-3.10\sources\CPortLib7.dpk - в открывшемся окне "Package - CPortLib7.dpk" жмём кнопку "Compile" - закрываем окно "Package - CPortLib7.dpk", но запрос "Сохранить" жмём "Нет" - открываем в Delphi файл cport-3.10\sources\DsgnCPort7.dpk - в открывшемся окне "Package - DsgnCPort7.dpk" жмём кнопку "Compile", потом "Install" - закрываем окно "Package - DsgnCPort7.dpk", но запрос "Сохранить" жмём "Нет" - проверяем на вкладке компонентов наличие вкладки "CPortLib" - все файлы cport которые будет требовать компилятор копируем из cport-3.10\sources\ в C:\Program Files\Borland\Delphi7\Projects\Bpl\, как правило это *.dcu, *.dfm, *.pas, CPort.inc, CPortImg.res вроде всё