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

Разработка модуля Modbus


С ПК будет использоваться две одинаковые платы.
ПК является 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к

Предполагаемая стоимость указана выше - обсуждается, оплата по этапам.
Срок выполнения работ - ожидается около двух недель, не горит.
ПО для ПК буду писать я, пользоваться результатом - тоже я.
Вопросы и предложения приветствуются.
 

Screenshot_1.png

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

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


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

Заказчик редкостный .....ак.

Имел мне мозг почти неделю, а потом пропал. И вот тебе на - мои картинки в поиске исполнителя.

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

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


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

  

8 hours ago, firstvald said:

STM?

Можно, но желательно все же ESP32.

  

3 minutes ago, Spider said:

Заказчик редкостный .....ак.

Имел мне мозг почти неделю, а потом пропал. И вот тебе на - мои картинки в поиске исполнителя.

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

Могу отозваться так же.

1. Не "имел мозг", а обсуждал предложенные вами же правки. 

2. Не "пропал", а крайне удивился озвученной цене, которая внезапно оказалась почти вдвое выше вашей же первоначальной ориентировочной цены. Я сначала не понимал к чему кидались фразы "ну для москвы ценник будет нормальный, у меня ваш номер определился как московский", и "срок две недели - видимо горит?". 

3. "Ваши картинки" я прикладываю для сравнения. Информативности в них нет, я их потом перерисовывал с нуля, а после - упростил до текущего вида: минимум контекста, максимум фактов. Изначально мое описание задания было в разы длиннее и подробнее - на что вы ответили "да куда нам такое описание, пока дочитаешь забудешь о чем было в начале - дайте картиночкой". Странный исполнитель - тяжело им читать.

 

Кстати, под Spider прячется два человека: программист и схемотехник - я тут с кем разговариваю?

Кто из вас удалил всю переписку через секунду после слов "спасибо, но это не то что мы ожидали - поищем другого исполнителя"?

А потом сразу закрыл доступ к файлу со схемами, которые я же рисовал?

 

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

Screenshot_2.png

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


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

Ну собственно вот... Опосайтесь. Человек за месяц не смог ничего сделать и снова оправдывается. А всё что выше написано, это результат моего объяснения как нужно проектировать системы.
Мои схемы были "процессом" прихода к единому знаменателю со скудного на тот момент понимания автором сути дела. Конечно дальше автор вошёл во вкус и разошёлся. Но меня тогда уже кинули.
А удалил, потому что за сапасибо только сыр. И так много всего было сказано.

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


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

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

Заказчик редкостный .....ак.

Вы, когда брались за оплату вдвое меньше ЗП кассира пятерочки, о чем думали?))

P.S. Просто совет, можете не пользоваться. Всегда берите предоплату за свое потраченное время.

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


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

13 minutes ago, Arlleex said:

Вы, когда брались за оплату вдвое меньше ЗП кассира пятерочки, о чем думали?))

Оплата изначально предлагалась 30к, но Spider предложил ориентироваться на 50к - я согласился рассмотреть такой ценник, неделю обсуждали его предложения, после чего был озвучен финальный ценник в 80к который и стал финалом общения. Очень уж часто стали звучать фразы "для москвы нормально" и "ну вам же срочно нужно" - очевидно что 80к было названо со всеми наценками.

Arlleex, на ваш взгляд стоимость данной работы к какой цифре ближе?

 

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


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

Стоимость проработки и согласования ТЗ (а этого этапа вовсе нет) уже была бы выше верхней цены Spider-а в несколько раз.

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


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

Вот и я о том. На входе мне рассказали о "фигне делов", на деле же оказалось нет ничего. Неделю мы за спасибо искали истину... Вот цена и росла, когла открывались новые горизонты.

 

Да знаю я что нало брать сразу, но тут оказалось вот так ...

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


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

12 hours ago, Cirnas said:

# Этапы работы и цены
1. Электрическая схема платы (используемый софт не важен) - 5к
2. Разводка печатной платы с подбором компонентов (нужны файлы для заказа сборки на JLCPCB или аналогах) - 10к
3. Написание прошивки - 15к

Я может чего неправильно понял, 5к 10к и 15к - это имеются в виду килобаксы или может еще какая неведомая валюта?

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


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

58 minutes ago, x893 said:

А разве в Бангалоре принимают рубли ?

сейчас курс рупии к рублю практически 1:1

поэтому какая разница? 🙂

рупии в России тоже не ходят, но и в Росии и в Индии сейчас пока не проблема конвертнуть и туда и обратно

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


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

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

на ваш взгляд стоимость данной работы к какой цифре ближе?

Денег нормально, ибо сиих контроллеров для вендинга - паркинга служена цельная дрезина ... с нуля суммы конечно совсем другие . Проц выбран правильный, но сомневаюсь что кто-то будет портировать на него свои существующие решения ... и да, почему 485/422 ? ... езернет-то, где ?

15 часов назад, Cirnas сказал:

ПО для ПК буду писать я, пользоваться результатом - тоже я.

Не видел исполнителя, чтоб за озвученную сумму передал исходники прошивки микроконтроллера ... обычно, покупается плата (по договорной цене) у исполнителя с прошитым загрузчиком и апдейте чрез USB софт на борту .

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


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

  

1 hour ago, destroit said:

Денег нормально, ибо сиих контроллеров для вендинга - паркинга служена цельная дрезина ... с нуля суммы конечно совсем другие . Проц выбран правильный, но сомневаюсь что кто-то будет портировать на него свои существующие решения ... и да, почему 485/422 ? ... езернет-то, где ?

Ethernet на ПК заведен - вся логика на нем реализуется, от платы требуется только интерфейс для работы с железом.  

 

1 hour ago, destroit said:

Не видел исполнителя, чтоб за озвученную сумму передал исходники прошивки микроконтроллера ... обычно, покупается плата (по договорной цене) у исполнителя с прошитым загрузчиком и апдейте чрез USB софт на борту .

А вот это для меня новость. Если я захочу что-то добавить/исправить, то мне проще самому внести правку и перепрошить, чем объяснять что я хочу как и почему именно так. У меня основная проблема - железка, я схемотехнику давно изучал, вспоминаю по-тихоньку. Впрочем, вижу что проще все самому сделать чем исполнителя найти. 

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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