Разработки ecoins

Библиотеки для разных контроллеров

ecoins
Полковник
Сообщения: 2932
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#441

Сообщение ecoins » 11.11.2019{, 11:30}

--
Содержание блока пин*4: код и пользовательские переменные.
Вложения
Пины_х4.JPG
Окно настройки пинов в пользовательском блоке.JPG
Последний раз редактировалось ecoins 11.11.2019{, 15:22}, всего редактировалось 3 раза.

ecoins
Полковник
Сообщения: 2932
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#442

Сообщение ecoins » 11.11.2019{, 11:37}

Ecomat писал(а):
11.11.2019{, 11:13}
Уважаемый Ecoins, подскажите пожалуйста, не работает штатный блок записи и чтения в EEPROM? При компилировании выдает ошибку :Mexit status 1
'class EEPROMClass' has no member named 'update'
В пустой, базовый, дописываю, записать в EEPROM. Не хочет компилироваться.

Спасибо за блок 18b20. Который без указания адреса. Я мудрил способ определения, какой рабочий. Платы одинаковые а сенсоры разные
По EEPROM - тема не совсем моя. Мог бы попробовать разобраться, но нужно уточнение - используемая версия FLProg и какой проект.
Рад, что понравился блок DS1820. С ним еще будет работать.
Успехов.

Ecomat
Рядовой
Сообщения: 35
Зарегистрирован: 02.07.2019{, 08:47}
Репутация: 0
Имя: Александр

Разработки ecoins

#443

Сообщение Ecomat » 11.11.2019{, 11:53}

Версия FlProg 5.3.0 Проект Ваш, Базовый. Т.е. первые 4 платы без изменений. Штатный блок EEPROM ставлю на 5 ю плату. Все компилирую для записи в ESP32. Библиотека 211я. Если в IDE выбираю плату MEGA 2560, то и компилируется и грузится. Проблемка при попытке писать в ESP32.

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Разработки ecoins

#444

Сообщение Dryundel » 11.11.2019{, 12:26}

ecoins, Вы даже в топике с ответом умудрились свалить все в одну кучу. У вас стиль жизни такой?
Не надо дописывать мою цитату. Эти вопросы не просто так. Во первых очень надеюсь что с их помощью кто то все-таки разберется. Во вторых силы ворошить эту "кучу" заканчиваются и возникло стойкое желание все упорядочить, раз Вы сами этого не можете сделать.
Требовать или даже просить Вас сделать это, чувствую абсолютно бесполезно. Вы художник, а художников понять сложно. Бардак в мастерской их кредо. Прекрасно понимая это обстоятельство, пытаюсь понять где мухи а где котлеты, дабы разложить по полкам.

К делу:
1. Прошу разжевать сложносочиненное предложение из Вашего ответа:
ecoins писал(а):
11.11.2019{, 11:30}
Если нужно STM32F или ESP32, программу можно грузить и туда - будет работать (обмен по ModBus, LCD), но чтение и запись на пины выполняться не будет, пока не будут прописаны требуемые в проекте пины.
.
.
ecoins писал(а):
11.11.2019{, 11:30}
Почему только на 4 выхода? Есть пользовательский блок и на 8 пинов.
А зачем блоки на 4 и на 8 пинов? Почему нельзя обходиться только блоком на 4 пина?
.
.
ecoins писал(а):
11.11.2019{, 11:30}
Так в Slave на стенде Mega2560 установлен LCD с адресом 63, а на стенде на UNO стоит LCD с адресом 39. Без каких-либо переделок можно испытывать один и тот же проект с разными LCD и иными устройствами.
Да то что параметры в отдельной плате это понятно. Но для этого достаточно переменной.
Непонятен блок параметры*4. Он зачем здесь? (в этом проекте) В нем какой то сакральный смысл? Что он делает? Путает пользователей? Нагоняет таинственный ореол? Как ПИНЫ в параметрах пользователя завязаны с адресом LCD?
ecoins писал(а):
11.11.2019{, 11:30}
Блок "параметры*4. Функционально он сейчас полностью повторяет блок "пины*4"
Это как? Что значит повторяет? Где пины и где адрес! Зачем эта путаница?
ecoins писал(а):
11.11.2019{, 11:30}
В конкретной реализации он позволяет устанавливать адрес LCD на конкретном устройстве.
Почему с этой функцией не может справиться обычная переменная? Зачем нужен целый блок?
ecoins писал(а):
11.11.2019{, 11:30}
но в перспективы у него будут и иные свойства.
Ну так может не доставать пока цыпленка из под прилавка и не озвучивать что это будущий бройлер?
ecoins писал(а):
11.11.2019{, 11:30}
Сами блоки "пины*4" и "параметры*4" достаточно простые и используют одну компактную функцию, приведенную ниже:
Ха-ха-ха! Компактную функцию! Это Вы с кем сейчас? :smile171:
.
.
Ну и на последок:
ecoins писал(а):
11.11.2019{, 11:30}
Эта функция родилась не сразу, после поисков, проб и т.п. Её достоинство - используются строки для задания параметров, но при этом памяти строковые переменные не занимают. Только один массив int16[4].
На выводах описанных блоков с точки зрения пользователя находятся константы, которые могут быть записаны в созданные слева в тэгах переменные, но это лишнее и избыточно - выходы блоков уже регистры типа int, использовать клеммы на наш взгляд гораздо удобнее - спасибо разработчику за этот метод FLProg.
.
Вопрос в зал:
Народ, поднимите руку те, кто хоть что нибудь понял из этого заклинания! :)

ecoins
Полковник
Сообщения: 2932
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#445

Сообщение ecoins » 11.11.2019{, 13:12}

Dryundel писал(а):
11.11.2019{, 09:30}
Флаг permit ? Это что? Это где? Надо догадаться? Про что вообще идет речь?
Этот флаг, также как и reset не выведены на выход ПБ "ДИСПЕТЧЕР".
Но они есть в ПБ "ДИСПЕТЧЕР+".
Как это работает.
При "холодном" пуске (подано питание на контроллер), вырабатывается кратковременный сигнал - флаг reset. Он может быть использован как выходной сигнал ПБ "ДИСПЕТЧЕР+", или пользователями в своих блоках через доступ RT_HW_Task.reset. Эта возможность в описание отсутствует, но она следует из открытого кода библиотеки "RT_HW_MAIN.h" и может быть полезна для продвинутых пользователей.
К этому флагу могут быть привязаны, например блоки инициализации или т.п.
Диспетчер при необходимости может быть перезапущен через сброс параметра "RT_HW_Task.begin" - таким образом может быть осуществлён "горячий" перезапуск проекта.
Сигнал -флаг "permit" взводится после окончания сигнала "reset" и перед сигналами-флагами задач fast,slow и т.п.
И "reset", и "permit" предусмотрены для создания проектов промышленной автоматизации, где они могут быть востребованы.
Использовать их в проектах не обязательно - это дополнительная возможность.
Как мы выкладывали фото с логического анализатора, где показано последовательность описанных сигналов - если полезно, можем выложить дополнительное фото.
Dryundel писал(а):
11.11.2019{, 09:30}
Флаги, события... Все перемешали.
А нельзя попроще то? Типа событие это поднятие флага. Поднятие флага - наличие высокого уровня (единицы) на выходе.
Проще можно, если только помолчать... :smile37:
ecoins всё больше сознаёт, что темы "реальное время", "многопоточное проектирование" для многих пользователей и не известны, и не обычны, и порой вызывают отторжение. Для погружение в эти темы - а они важны, если хочется преодолеть "тормоза" проектов и упростить проектирование - необходимы восприятия предлагаемых терминов: ЗАДАЧА, СОБЫТИЕ, УСЛОВИЯ. Они несколько выше в этой были подробно раскрыты.
Вы правы - СОБЫТИЕ и флаг имеют много общее, но СОБЫТИЕ:
1. обычно производно от момента времени и его значение держится в течении одного цикла loop() (или цикла проекта FLProg, который начинается с 1-ой платы.
2. оно может иметь значение не только bool, как флаг, но и int (например номер задачи), но и другие типы (на практике это не используется).
--------
По поводу новых и не понятных терминов. Полагаю, что их не стоит избегать и бояться - важно воспринять смыслы которые которые вложены в термины в заданном контексте ("реальное время").
А термины - Вас ведь не смущают не русские слова в левой панели FLProg - тэг, пин, Master (а можно было назвать "Ведущий"), Slave ("Подчиненный") и т.п.
============================
О ДИСПЕТЧЕРЕ в целом, если будут или остались вопросы, отвечу позже и отдельно.
Возможны смысловые аналогии ДИСПЕТЧЕРА - это ведь был такой давнишний перевод с западных операционных систем - СУПЕРВИЗОР (Supervisor) . Его можно перевести как РУКОВОДИТЕЛЬ, РАСПОРЯДИТЕЛЬ и т.п.
Основное назначение ДИСПЕТЧЕРА вызвать нужную задачу в нужное время. При этом вызываемые задачи ВСЕГДА должны возвращать управление ДИСПЕТЧЕРУ.

ecoins
Полковник
Сообщения: 2932
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#446

Сообщение ecoins » 11.11.2019{, 13:25}

Dryundel писал(а):
11.11.2019{, 12:26}
ecoins, Вы даже в топике с ответом умудрились свалить все в одну кучу. У вас стиль жизни такой?
Не надо дописывать мою цитату. Эти вопросы не просто так. Во первых очень надеюсь что с их помощью кто то все-таки разберется. Во вторых силы ворошить эту "кучу" заканчиваются и возникло стойкое желание все упорядочить, раз Вы сами этого не можете сделать.
Требовать или даже просить Вас сделать это, чувствую абсолютно бесполезно. Вы художник, а художников понять сложно. Бардак в мастерской их кредо. Прекрасно понимая это обстоятельство, пытаюсь понять где мухи а где котлеты, дабы разложить по полкам.
ecoins не художник, а ремесленник. Наукой тоже занимаемся, там много творчества.
На вопросы пытаемся отвечать.

ecoins
Полковник
Сообщения: 2932
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#447

Сообщение ecoins » 11.11.2019{, 13:26}

Dryundel писал(а):
11.11.2019{, 12:26}
1. Прошу разжевать сложносочиненное предложение из Вашего ответа:
ecoins писал(а): ↑Сегодня{, 08:30}
Если нужно STM32F или ESP32, программу можно грузить и туда - будет работать (обмен по ModBus, LCD), но чтение и запись на пины выполняться не будет, пока не будут прописаны требуемые в проекте пины.
.
.
Если нужно STM32F или ESP32, программу можно грузить и туда - будет работать (обмен по ModBus, LCD), но чтение и запись на пины выполняться не будет, пока не будут прописаны требуемые в проекте пины.
Это означает, что при переходе из FLProg в Arduino IDE можно выбрать и подключить любой из указанных контроллеров, загрузить в него проект и он будет успешно выполняться.
Возможность подобной реализации проекта может вызвать сомнение, но в основном это есть в действительности...
Последний раз редактировалось ecoins 11.11.2019{, 15:26}, всего редактировалось 1 раз.

ecoins
Полковник
Сообщения: 2932
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#448

Сообщение ecoins » 11.11.2019{, 13:28}

Dryundel писал(а):
11.11.2019{, 12:26}
ecoins писал(а): ↑Сегодня{, 08:30}
Блок "параметры*4. Функционально он сейчас полностью повторяет блок "пины*4"
Это как? Что значит повторяет? Где пины и где адрес! Зачем эта путаница?
Это как раз и сделано, чтобы подчеркнуть функциональное различие между пинами и адресами. Различие в этих блоках будут появляться по мере развития системы - но об этом и долго, и в не в этом посте.
В конкретной реализации можно обойтись одним блоком "пины*4".
Последний раз редактировалось ecoins 11.11.2019{, 13:32}, всего редактировалось 1 раз.

ecoins
Полковник
Сообщения: 2932
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#449

Сообщение ecoins » 11.11.2019{, 13:29}

Dryundel писал(а):
11.11.2019{, 12:26}
ecoins писал(а): ↑Сегодня{, 08:30}
Почему только на 4 выхода? Есть пользовательский блок и на 8 пинов.
А зачем блоки на 4 и на 8 пинов? Почему нельзя обходиться только блоком на 4 пина?
Можно. Сделано для удобства проектирования - это дополнительная возможность и дело вкуса проектировщика.

Отправлено спустя 8 минут 47 секунд:
Dryundel писал(а):
11.11.2019{, 12:26}
ecoins писал(а): ↑Сегодня{, 08:30}
В конкретной реализации он позволяет устанавливать адрес LCD на конкретном устройстве.
Почему с этой функцией не может справиться обычная переменная? Зачем нужен целый блок?
Может. Но выбранный метод проектирования предполагает, что все переменные описываются в 1-ой плате и им всем прикрепляются клеммы с вменяемым названием на родном языке.
Также нужно поступать и с переменными, объявляемых в структурах - а их мнемоника, должна отвечать требованиям C++.
Когда переменных много, это пожалуй более правильный подход.
И вопрос к Вам: а как просто присоединить клемму к переменной - это ведь не очевидно :smile453:

Отправлено спустя 2 минуты 35 секунд:
Dryundel писал(а):
11.11.2019{, 12:26}
ecoins писал(а): ↑Сегодня{, 08:30}
Сами блоки "пины*4" и "параметры*4" достаточно простые и используют одну компактную функцию, приведенную ниже:
Ха-ха-ха! Компактную функцию! Это Вы с кем сейчас?
Она действительно компактная. За счет использования макросов будет сгенерирован только код, имеющий отношение только к выбранному контроллеру.
Если Вы можете предложить что-то лучшее - буду признателен.

ecoins
Полковник
Сообщения: 2932
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#450

Сообщение ecoins » 11.11.2019{, 13:46}

Dryundel писал(а):
11.11.2019{, 12:26}
Ну и на последок:
ecoins писал(а): ↑Сегодня{, 08:30}
Эта функция родилась не сразу, после поисков, проб и т.п. Её достоинство - используются строки для задания параметров, но при этом памяти строковые переменные не занимают. Только один массив int16[4].
На выводах описанных блоков с точки зрения пользователя находятся константы, которые могут быть записаны в созданные слева в тэгах переменные, но это лишнее и избыточно - выходы блоков уже регистры типа int, использовать клеммы на наш взгляд гораздо удобнее - спасибо разработчику за этот метод FLProg.
.
Вопрос в зал:
Народ, поднимите руку те, кто хоть что нибудь понял из этого заклинания!
Обращу внимание, что задание параметров проекта в FLProg в формате строковой переменной почти уникально (встречал давно и только один раз).
Реализация этой функции в "лоб" отнимает и вычислительные ресурсы (значительно) и оперативную память (для UNO,Nano очень чувствительно). В предложенном блоке эти проблемы разрешены, можете убедиться по размеру генерируемого кода в Arduino IDE.

ecoins
Полковник
Сообщения: 2932
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#451

Сообщение ecoins » 11.11.2019{, 13:47}

==============================================
Почти все вопросы получили ответы :D
=============================================

Аватара пользователя
Hijin
Лейтенант
Сообщения: 325
Зарегистрирован: 22.08.2017{, 11:08}
Репутация: 13
Откуда: Винница
Имя: Юрий

Разработки ecoins

#452

Сообщение Hijin » 11.11.2019{, 13:58}

ecoins писал(а):
11.11.2019{, 11:30}
Почему только на 4 выхода? Есть пользовательский блок и на 8 пинов. Блоки могут использоваться в нужном кол-ве. Разработчик FLProg обладает инструментом для работы с графическими возможностями при создании блоков - ecoins не обладает такими возможностями и потому проектируемые блоки имеют фиксированное кол-во входов/выходов.
Рекомендую вам в таком случае делать блоки на 1, 2, 4, 8 пина в таком случае можно набрать нужное количество пинов до 7

ecoins
Полковник
Сообщения: 2932
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#453

Сообщение ecoins » 11.11.2019{, 14:00}

Ecomat писал(а):
11.11.2019{, 11:53}
Версия FlProg 5.3.0 Проект Ваш, Базовый. Т.е. первые 4 платы без изменений. Штатный блок EEPROM ставлю на 5 ю плату. Все компилирую для записи в ESP32. Библиотека 211я. Если в IDE выбираю плату MEGA 2560, то и компилируется и грузится. Проблемка при попытке писать в ESP32
Вы уже сами нашли ответ - штатный блок EEPROM не работает с ESP32. В ESP32 нет отдельной EEPROM. Реализуют программно, но для этого нужно создавать отдельный блок. Не очевидно, что для ESP32 это требуется - если только для совместимости с более простыми контроллерами.
Большая память на ESP32 позволяет использовать и файловую систему.
Возможно мы и будем делать свой блок EEPROM, но иной по смыслу, чем стандартный - к нему у нас есть вопросы, которые возникли из его практического применения. В итоге написала свой, но он пока не поддерживает ESP8266 и ESP32.

ecoins
Полковник
Сообщения: 2932
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#454

Сообщение ecoins » 11.11.2019{, 14:03}

Hijin писал(а):
11.11.2019{, 13:58}
ecoins писал(а):
11.11.2019{, 11:30}
Почему только на 4 выхода? Есть пользовательский блок и на 8 пинов. Блоки могут использоваться в нужном кол-ве. Разработчик FLProg обладает инструментом для работы с графическими возможностями при создании блоков - ecoins не обладает такими возможностями и потому проектируемые блоки имеют фиксированное кол-во входов/выходов.
Рекомендую вам в таком случае делать блоки на 1, 2, 4, 8 пина в таком случае можно набрать нужное количество пинов до 7
Иронию принимаю, ценю.
Предложенным методом наверное не воспользуемся. Если будут иные предложения по реализации - будем признательны.

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Разработки ecoins

#455

Сообщение Dryundel » 11.11.2019{, 15:36}

ecoins писал(а):
11.11.2019{, 13:40}
И вопрос к Вам: а как просто присоединить клемму к переменной - это ведь не очевидно
Куда уж очевидней.
2019-11-11_153552.jpg
2019-11-11_153552.jpg (5.02 КБ) 615 просмотров
Отправлено спустя 21 минуту 22 секунды:
С другой стороны - если есть переменная, клемма не сильно то и нужна.
Да и недолюбливаю я эти клеммы. Отваливаются они бывает при редактировании проекта. А потом ищи, вспоминай к какой клемме блок был подключен. Если на плате есть переменная подключенная к блоку, то при замене этого блока на другой, переменная так и останется на месте, а вот клеммы и след простынет. А если к блоку штук 5 клем подключено? Вот тут то и .... Подумаешь десять раз использовать клеммы или как.

Ecomat
Рядовой
Сообщения: 35
Зарегистрирован: 02.07.2019{, 08:47}
Репутация: 0
Имя: Александр

Разработки ecoins

#456

Сообщение Ecomat » 11.11.2019{, 19:54}

Ecoins, спасибо за ответ. "В ESP32 нет отдельной EEPROM." Подскажите рядовому. Как тогда хранить переменную после выключения ? Если нет EEPROM, можно было бы SD карту, но штатный блок для нее может изменять только PIN CS. Остальные не меняются т.к. проект в FlProg на Mega а компилируется для ESP32. Как при этом SD подключить к ESP32? Если у кого то получилось с EEPROM или SD картой для ESP32 из FlProg, поделитесь информацией.

texbez
Лейтенант
Сообщения: 355
Зарегистрирован: 20.11.2016{, 19:57}
Репутация: 9
Откуда: Ростов на дону

Разработки ecoins

#457

Сообщение texbez » 11.11.2019{, 20:18}

Ecomat писал(а):
11.11.2019{, 19:54}
Ecoins, спасибо за ответ. "В ESP32 нет отдельной EEPROM." Подскажите рядовому. Как тогда хранить переменную после выключения ? Если нет EEPROM, можно было бы SD карту, но штатный блок для нее может изменять только PIN CS. Остальные не меняются т.к. проект в FlProg на Mega а компилируется для ESP32. Как при этом SD подключить к ESP32? Если у кого то получилось с EEPROM или SD картой для ESP32 из FlProg, поделитесь информацией.
А если внешнею eeprom подключить?

vovka1973
Майор
Сообщения: 1060
Зарегистрирован: 14.02.2016{, 14:16}
Репутация: 42
Откуда: kazahstan

Разработки ecoins

#458

Сообщение vovka1973 » 11.11.2019{, 20:29}

Ecomat писал(а):
11.11.2019{, 19:54}
Ecoins, спасибо за ответ. "В ESP32 нет отдельной EEPROM." Подскажите рядовому. Как тогда хранить переменную после выключения ? Если нет EEPROM, можно было бы SD карту, но штатный блок для нее может изменять только PIN CS. Остальные не меняются т.к. проект в FlProg на Mega а компилируется для ESP32. Как при этом SD подключить к ESP32? Если у кого то получилось с EEPROM или SD картой для ESP32 из FlProg, поделитесь информацией.
не это ищите тут
Изображение

ecoins
Полковник
Сообщения: 2932
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#459

Сообщение ecoins » 11.11.2019{, 20:54}

Dryundel писал(а):
11.11.2019{, 15:58}
ecoins писал(а):
11.11.2019{, 13:40}
И вопрос к Вам: а как просто присоединить клемму к переменной - это ведь не очевидно
Куда уж очевидней.
2019-11-11_153552.jpg

Отправлено спустя 21 минуту 22 секунды:
С другой стороны - если есть переменная, клемма не сильно то и нужна.
Да и недолюбливаю я эти клеммы. Отваливаются они бывает при редактировании проекта. А потом ищи, вспоминай к какой клемме блок был подключен. Если на плате есть переменная подключенная к блоку, то при замене этого блока на другой, переменная так и останется на месте, а вот клеммы и след простынет. А если к блоку штук 5 клем подключено? Вот тут то и .... Подумаешь десять раз использовать клеммы или как.
У меня как у Вас не получилось - плата подкрашивается красным. Это особенность FLProg - "ругается" на неиспользуемые переменные.
----
Клеммы, которые разработчик FLProg недавно, используем активно.
Они удобны что их перечень отображается при подключении входа блока, причем только соответствующего типа - т.е. не весь список переменных.

ecoins
Полковник
Сообщения: 2932
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#460

Сообщение ecoins » 11.11.2019{, 21:01}

bsn писал(а):
11.11.2019{, 03:26}
ecoins писал(а): ↑Вчера{, 19:52}
Не моделировали (и не планируем) проект на Proteus - этим не занимаемся.
ecoins писал(а): ↑Вчера{, 19:52}
не проверил через физические адаптеры RS-485 - контроллеры соединил напрямую
Что ж... Нет, так нет.
Печально. А так верилось...
-------
Проверили испытания - Master и Slave соединены через модули RS-485 - как у Вас на рисунке.
Обратите внимание - управляющие пины в ModBus выбраны с номером 3 - у Вас в проекте 2, только сейчас обратил внимание. На работу не влияет, при необходимости самостоятельно можете изменить.
-------
Proteus использовать не будем, Ваш проект испытан на реальном "железе".
------
Вопрос: А чем вызвана Ваша печаль? :smile37:

Закрыто

Вернуться в «Команда ecoins»