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

Cirnas

Участник
  • Постов

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

  • Посещение

Репутация

0 Обычный

Посетители профиля

Блок последних пользователей отключён и не показывается другим пользователям.

  1. Я действительно не определился с МК - немного игрался с девбордами на ESP32, отсюда и склонность к ним. Изначально было две разные платы - одна больше с датчиками работает и находится непосредственно возле ПК, а у второй больше релюшек и находится на расстоянии 10-30м. Команды для обеих раздает ПК. После того как посмотрел на готовые модули для автоматизации свел обе платы к общему функционалу и описал максимально изалированно от предметной области - в итоге логика плат еще упростилась и вынеслась максимально на ПК, ну а там мне уже сильно проще писать.
  2. Взято из http://microsin.net/programming/arm/esp32-c3-usb-serial-and-jtag-controller-console.html : Насколько я понимаю, это именно то что нужно для общения с ПК с МК. USB подключается непосредственно к МК.
  3. В Modbus подкупает универсальность протокола: есть функции чтения и записи, есть регистры, с которыми можно взаимодействовать - удобно и единообразно описывается взаимодействие с устройством. Но он сложнее, он слишком функциональный для меня - согласился на него, понадеявшись на опыт исполнителя. У меня не универсальный модуль на DIN-рейку - ему не нужна интеграция с другими системами, работать будет только с моим ПК. В моем случае и секундная задержка не станет проблемой - вопрос эффективности не стоит. Сейчас собираюсь использовать текстовый протокол в стиле Modbus ASCII и вернуться на RS422 (у него же нет минусов относительно RS485 кроме лишней витой пары для работы?). Городить Ethernet не вижу смысла - красиво, но RS422/485 в данном случае достаточно и они сильно проще. Интересный нюанс. Это не моя ситуация, но учту на будущее 🥸 Неправда ваша. ТС не нужен спам, который был в начале топика. А теперь пошли полезные комментарии - читаю, отвечаю, спрашиваю. Правда тема из заказа перешла в обсуждение, но думаю это не страшно. Текущая конфигурация: Микроконтроллер = ESP32-C3FN4 или STM32F103C8T6 - оба умеют USB, первый шустрее и имеет больше памяти, второй JLCPCB распаивает как Basic Part, видимо буду делать оба варианта и смотреть под что удобнее писать прошивку. Коммуникации = встроенный USB для связи с ПК и RS-422 для связи между двумя модулями. Протокол = текстовый. Кстати о прошивках: я очень давно не писал на С/С++ и совсем не писал под МК. Реально использовать MicroPython или не стоит? Попробовал его на плате с ESP32-D0WD - вроде нормально работает.
  4. Мне надо соединить три устройсвта: ПК и два модуля. Просто соединить три UART нельзя - поэтому используем протокол, умеющий многоточечное соединение - 485. ПК <-> USB/UART <-> UART/485 <-> Общая шина CPU <-> UART/485 <-> Общая шина CPU <-> UART/485 <-> Общая шина Изначально я закладывал другой конфиг: с двумя соединениями 422 ПК <-> USB/UART <-> CPU + CPU <-> UART/422 <-> 422/UART <-> CPU Таким образом один модуль должен был получать команды от ПК по USB и пересылать их по витой паре с 422 другому модулю. Меня стали убеждать что этот вариант плохой и надо делать как нарисовано сейчас, а использование полнодуплексного 422 никакой пользы не принесет. Почитал ответы на топик и понял что проще самому сделать нужный мне модуль. Начал изучать ESP32 подробней и оказалось что в ESP32-C3 добавили USB - https://docs.espressif.com/projects/esp-idf/en/latest/esp32c3/api-guides/usb-serial-jtag-console.html Так что теперь схему можно сильно упростить. Стоит в очереди на изучение. Я хочу как лучше, но без переплат за бестолковые навороты. Изначальный вариант был: два 422 с передачей текстовых команд Spider нарассказывал что мой вариант плохой, надо делать на 485 шине как на картинке + Modbus, но в итоге ценник задрал выше бюджета. Теперь изучаю вопрос самостоятельно и склоняюсь к ESP32-C3 со встроенным USB + 485 или 422 по витой паре. Возможно будет вариант с ethernet - пока изучаю его.
  5. Ethernet на ПК заведен - вся логика на нем реализуется, от платы требуется только интерфейс для работы с железом. А вот это для меня новость. Если я захочу что-то добавить/исправить, то мне проще самому внести правку и перепрошить, чем объяснять что я хочу как и почему именно так. У меня основная проблема - железка, я схемотехнику давно изучал, вспоминаю по-тихоньку. Впрочем, вижу что проще все самому сделать чем исполнителя найти.
  6. Оплата изначально предлагалась 30к, но Spider предложил ориентироваться на 50к - я согласился рассмотреть такой ценник, неделю обсуждали его предложения, после чего был озвучен финальный ценник в 80к который и стал финалом общения. Очень уж часто стали звучать фразы "для москвы нормально" и "ну вам же срочно нужно" - очевидно что 80к было названо со всеми наценками. Arlleex, на ваш взгляд стоимость данной работы к какой цифре ближе?
  7. Можно, но желательно все же ESP32. Могу отозваться так же. 1. Не "имел мозг", а обсуждал предложенные вами же правки. 2. Не "пропал", а крайне удивился озвученной цене, которая внезапно оказалась почти вдвое выше вашей же первоначальной ориентировочной цены. Я сначала не понимал к чему кидались фразы "ну для москвы ценник будет нормальный, у меня ваш номер определился как московский", и "срок две недели - видимо горит?". 3. "Ваши картинки" я прикладываю для сравнения. Информативности в них нет, я их потом перерисовывал с нуля, а после - упростил до текущего вида: минимум контекста, максимум фактов. Изначально мое описание задания было в разы длиннее и подробнее - на что вы ответили "да куда нам такое описание, пока дочитаешь забудешь о чем было в начале - дайте картиночкой". Странный исполнитель - тяжело им читать. Кстати, под Spider прячется два человека: программист и схемотехник - я тут с кем разговариваю? Кто из вас удалил всю переписку через секунду после слов "спасибо, но это не то что мы ожидали - поищем другого исполнителя"? А потом сразу закрыл доступ к файлу со схемами, которые я же рисовал? Прежде чем советовать подумать и очернять меня - подумайте над собственными действиями. Надеюсь этот вопрос закрыт, если не согласны - пишите в личку.
  8. С ПК будет использоваться две одинаковые платы. ПК является Modbus-мастером - подключается к первой плате, а к ней по витой паре подключается вторая плата. Платам назначаются разные Modbus-адреса при прошивке. Обе платы прошиваются по USB. Питание платы: DC24V Микроконтроллер: ESP32 Коммуникации: Подключение к шине RS422/485 с Modbus через USB и/или по витой паре Индикация: питание + RS422/485 (USB) + RS422/485 (кабель) + выходы на реле (+ входы, по возможности) Вход датчика DHT22 - может подключаться непосредственно к плате или через кабель длинной до 500мм Вход Pulse (2шт) - каждый вход имеет свою пару настроек длительности сигнала и паузы между сигналами (в диапазоне 20-100мс) Вход Dry contact (6шт) - "сухой контакт" кнопка/геркон/... (DC24V, 10мА) Выход на реле(8шт) - катушки реле (DC24V, 2Вт) # Modbus RTU/ASCII Ведущее устройство - ПК Ведомые устройства: Адрес = 1 - подключается к ПК по USB Адрес = 2 - подключается к первому модулю по витой паре Регистр = 1 word = 2 bytes = 16 bits Битовые регистры не используются. Функции 3 (0x03) — чтение из нескольких регистров RW-word 4 (0x04) — чтение из нескольких регистров R-word 6 (0x06) — запись в один регистр RW-word 100 (0x64) — обнулить оба Pulse Counter RW-mode регистры: 40001-49999 = 16-битные, доступны для чтения и записи название длинна содержимое (1й байт, 2й байт,...) Pulse Config 1 = 1 word = сигнал, пауза - длительность в мс, по-умолчанию = 50, 50 Pulse Config 2 = 1 word = сигнал, пауза Sensor ESP32 Config = 1 word = TM_min, TM_max - допустимые пределы температуры МК, по-умолчанию = 0, 60 Sensor DHT22 Config = 1 word = TA_min, TA_max - допустимые пределы температуры воздуха, по-умолчанию = -20, +50 Sensor DHT22 Config = 1 word = RH_min, RH_max - допустимые пределы относительной влажности, по-умолчанию = 10, 80 Relays = 1 word = управление блоком реле Read-only регистры: 30001-39999 = 16-битные, доступны только для чтения название длинна содержимое (1й байт, 2й байт,...) Firmware Version = 1 word = pcb, build Device Status = 1 word = см. далее PCB Voltage = 1 word = милливольты Sensor ESP32 = 1 word = 0, температура - в градусах Sensor DHT22 = 1 word = влажность, температура - температура может быть отрицательной Pulse Counter 1 = 10 words = 10 счетчиков импульсов - от 0 до 65к каждый Pulse Counter 2 = 10 words = 10 счетчиков импульсов - от 0 до 65к каждый Device Status = 1 word (alarms, events) = 16 bits *alarms* - при нормальной работе все биты нулевые 1 - флаг загрузки МК (бит снимается после первого обращения ПК) 2 - флаг записи в память (нет обращений от ПК в течении секунды - сохраняемся и выставляем бит) 3 - флаг ошибки памяти (ошибка при чтении или записи) 4 - напряжение питания вне диапазона 20-24В 5 - температура микроконтроллера вне допустимого диапазона (см. Sensor ESP32 Config) 6 - температура или влажность вне допустимого диапазона (см. Sensor DHT22 Config) 7 8 *events* 1 - Pulse Counter Flag 1 (сигнал для ПК о необходимости чтения счетчика) 2 - Pulse Counter Flag 2 3 - Dry contact 1 (состояние контакта) 4 - Dry contact 2 5 - Dry contact 3 6 - Dry contact 4 7 - Dry contact 5 8 - Dry contact 6 Прошивка модуля: Модулю нужна функция сохранения всех регистров в энергонезависимую память. Сохранение производится при изменении настроек или если нет активности ПК (должен минимум раз в секунду опрашивать модуль). *alarms:* Модуль после загрузки считывает настройки и счетчики из памяти, выставляет в `Device Status` бит загрузки. Если ПК прислал любую команду - снимаем флаг загрузки и проверяем что бы ПК был активен хотя бы раз в секунду, если активность пропала - сохраняемся и ставим флаг записи в память. При проблемах с памятью - ставим флаг ошибки памяти - требуется тех.поддержка. Питание платы нужно измерять в пределах 15-30В, с точностью порядка 0,5В - этого достаточно для контроля. *events:* Pulse Counter Flag - индикатор изменения счетчиков - ПК прочитает все 10 соответствующих счетчиков Dry contact - индикатор состояния датчика Pulse Counter - считает входящие импульсы, их может быть от 1 до 10, инкрементирует соответствующий счетчик, сбрасываются командой от ПК. # Этапы работы и цены 1. Электрическая схема платы (используемый софт не важен) - 5к 2. Разводка печатной платы с подбором компонентов (нужны файлы для заказа сборки на JLCPCB или аналогах) - 10к 3. Написание прошивки - 15к Предполагаемая стоимость указана выше - обсуждается, оплата по этапам. Срок выполнения работ - ожидается около двух недель, не горит. ПО для ПК буду писать я, пользоваться результатом - тоже я. Вопросы и предложения приветствуются.
×
×
  • Создать...