"Первые шаги"

Вопросы от новичков
Аватара пользователя
VirSpy
Рядовой
Сообщения: 62
Зарегистрирован: 03.12.2015{, 22:40}
Репутация: 3
Откуда: Минск, РБ

"Первые шаги"

#1

Сообщение VirSpy » 31.12.2015{, 01:41}

На сколько понимаю эта тема важная и начать ее некому. Поэтому позвольте мне. Буду приводить примеры на плате Uno (ATmega328), язык - FBD. (если нужны разъяснения по выбору(смене) платы, распиновке, прошивке и внешнего подключения - спрашивайте, объясню)
Урок 1.
Начнем с простого примера - мигание светодиодом (подключенным к D13). Собираем следующую "программу" - Led1.
Изображение
Здесь видим (слева-направо, сверху-вниз): генератор - выход D13 (встроенный led). На входе генератора - константа "1", заставляющая его постоянно работать. Сам генератор сконфигурирован как Симметричный мультивибратор ("1" и "0" одинаковой продолжительностью времени) на Константу в 500 миллисекунд (0,5 сек.).
Константу можно задать и с внешнего входа (прим. Led2).
Изображение
Изменяя ее можем получить мигание с разной частотой.
В случае Несиметричного мультивибратора будем иметь разные временные диапазоны как для "1", так и для "0" (прим. Led3).
Изображение
Ну а Одновибратор просто дает "1" на определенное время
Изображение
(15 сек. моргает светодиод с соотношением 5 к 1. (Перезапустить программу можно при нажатии кнопки Reset). прим.Led4).

На этом вроде все. Ждите второго урока (будем подрубать кнопку).
Вложения
Led4.flp
(46.56 КБ) 256 скачиваний
Led3.flp
(38.23 КБ) 180 скачиваний
Led2.flp
(35.59 КБ) 187 скачиваний
Led1.flp
(34.37 КБ) 237 скачиваний
Последний раз редактировалось VirSpy 03.01.2016{, 20:23}, всего редактировалось 1 раз.

Airis
Сержант
Сообщения: 175
Зарегистрирован: 24.09.2015{, 07:27}
Репутация: 0

"Первые шаги"

#2

Сообщение Airis » 31.12.2015{, 10:59}

VirSpy писал(а):На сколько понимаю эта тема важная и начать ее некому.
Тут есть целый раздел "Видео уроки" от автора программы, где очень наглядно разъяснено как работатьс самой программой, и как использовать ту или иную функцию.

Хотя, возможно для совсем новичков нужны объяснение самых азов работы сFBD и LAD. У меня уже был опыт работы с Siemens LOGO! (самостоятельно изучал LAD), и рисованию релейных и булевых схем.
Последний раз редактировалось Airis 31.12.2015{, 11:20}, всего редактировалось 1 раз.

DWD
Лейтенант
Сообщения: 353
Зарегистрирован: 18.10.2015{, 13:51}
Репутация: 5
Откуда: Кривой Рог

"Первые шаги"

#3

Сообщение DWD » 31.12.2015{, 11:23}

Но если тема не заглохнет а будет продолжаться с постепенно усложняющимися задачками, то получится не плохой хелр...

Дело в том, что с видеоурока трудно вытянуть один интересущий вопрос, в то время как в тексте достаточно задать поисковую фразу.

Для новичков самое то.
Изображение

Аватара пользователя
AlexRyzh
Сержант
Сообщения: 107
Зарегистрирован: 22.12.2015{, 11:06}
Репутация: 1
Откуда: Мелитополь
Контактная информация:

"Первые шаги"

#4

Сообщение AlexRyzh » 31.12.2015{, 13:08}

Огромное спасибо за энтузиазм. Возможно Ваши уроки будут вполне полезны, если Вы отнесетесь к ним как профессиональный преподаватель, учитывая, что ученик абсолютно не сведом в том, чему Вы будете учить.
Как принято в обучении на программировании в ИДЕ на Ардуино, первый урок это включить диод на пине 13, чтоб постоянно горел. Потом мигание и так далее.
Я бы хотел видеть урок немного иначе, т.к. очень важно понять почему в ФЛП используем именно гениратор (или еще что), с кратким (но понятным) описанием самой схемы подключения на плате. Да, не сложно повторить ваш урок1, соединить гениратор с диодом, откомпелировать. Подключить к Ардуино светодиод и он будет ... а дальше по уроку не понятно, светить или все же мигать. У Вас написано "На входе генератора - константа "1", заставляющая его постоянно работать. " и тут же написано... "Сам генератор сконфигурирован как Симметричный мультивибратор ("1" и "0" одинаковой продолжительностью времени) на Константу в 500 миллисекунд (0,5 сек.)." Так все таки будет гореть или мигать благодаря встроенному мультивибратору?
Т.к. подобный урок для абсолютных новичков в этой программе, поэтому нужно для понимания более детально описывать применяемые инструменты, целесообразность их применения в данной ситуации и как проходит реализация. 
Например: Урок №1 - зажигаем светодиод на пине 13
Задача
- зажечь светодиод на пине 13 чтоб он постоянно светил.
Пример реализации на языке Ардуино IDE:

void setup() {                 // Инициализируем цифровой вход/выход в режиме выхода.  // Выход 13 на большинстве плат Arduino подключен к светодиоду на плате.  pinMode(13, OUTPUT);   } void loop() {  digitalWrite(13, HIGH);   // зажигаем светодиод}
Результат работы кода - светодиод постоянно горит.
Пример реализации на FLP: led1.flp (пример для скачивания)

Добавлено (31.12.2015, 13:04)
---------------------------------------------
Пояснения к примеру: 
1. Создаем светодиод:

     Т.к. светодиод это управляемый элемент, он будет реагировать на ВЫХОДНОЙ сигнал Ардуины, поэтому его назначаем во вкладке "Выходы"
    Во вкладке Tags в группе "Выходы"  создаем выход с названием "светодиод", перетаскиваем на плату.
    Далее, светодиод нужно зажечь. Для этого нужен входной сигнал, создаем во вкладке "Входы" входной сигнал на пине 1. Чтобы установить на пине 1 единицу (+5В), нужно поставить галочку "Включить подтягивающий резистор". Как установить состояние в ноль - я не знаю. Если не включать подтягивающий резистор, то происходит только назначение пина как цифрового без указания его состояния (0 или 1). Каким будет состояние пина в случае без подтягивающего резистора? Почему оно будет таким и всегда ли оно будет таким?
Созданный вход перетаскиваем на плату и соединяем со светодиодом. Компилируем. Получаем код.

Полученный код с подтягивающим резистором: (в коде добавлю пояснения, т.к. программа коментарии не добавляет)

void setup()
{
pinMode(1, INPUT); //назначение пина 1 вход
digitalWrite(1, HIGH); // устанавливаем пин 1 в единицу (+5В)
pinMode(13, OUTPUT); //пин 13 назначаем на выход (куда будет подключен диод)

}
void loop()
{

digitalWrite(13,  (digitalRead (1))); // состояние пина 13 зависит от состояния пина 1. Т.к. пин 1 установлен в единицу, то на 13 пине так же будет единица и диод будет светиться.

}

В таком духе продолжить и объяснения с мигающим светодиодом. Кроме того по мигающему светодиоду можно сделать несколько вариантов (хотя бы 2), т.к. светодиод может мигать с помощью задержки программы (delay(500);) и как- привязать к зависимости от времени в цикле программы (если возможно).
Возможно в программе это можно реализовать еще проще. Не думаю, что зажечь светодиод программа вынуждает занять 2 пина. Наверняка есть какой-то другой подход. Но я не знаю как это сделать проще, используя только пин 13.
Еще раз повторюсь, Вы не должны забывать, что данный пост могут читать только абсолютные новички, своего рода первоклашки в работе с программой FLP, поясняя каждый элемент, почему используется именно этот элемент или какой еще можно использовать для решения поставленной задачи. Поэтому излишнее разжевывать пойдет только в пользу знаниям. (Если Вы действительно хотите помочь создателю программы и дать какие-то знания страждущим).
Кроме этого хочу сказать, что избавления от большой писанины, такие уроки лучше делать видео. Писать придется намного меньше, да и наглядность действий  воспринимается в разы эффективнее.
Извините, что возможно покажусь занудой, но уверен, что таких новичков как я много и все хотят не просто повторить Ваши действия, а ПОНЯТЬ! суть происходящего.

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

Вот мигание светодиода написанное для ИДЕ: Реализовано ожиданием программы.
/*  Зажигаем светодиод на одну секунду, затем выключаем его на    одну  секунду в цикле. */ void setup() {                 // Инициализируем цифровой вход/выход в режиме выхода.  // Выход 13 на большинстве плат Arduino подключен к светодиоду на плате.  pinMode(13, OUTPUT);   } void loop() {  digitalWrite(13, HIGH);   // зажигаем светодиод  delay(1000);              // ждем секунду  digitalWrite(13, LOW);    // выключаем светодиод  delay(1000);              // ждем секунду}
Вот мигание из урока 2. Видимо реализовано по времени. Хотелось бы хотя бы на таких простейших примерах видеть комментарии к полученному коду.
bool _gen1I = 0;
bool _gen1O = 0;
unsigned long _gen1P = 0UL;
void setup()
{
pinMode(13, OUTPUT);

}
void loop()
{

if (1) { if (! _gen1I) { _gen1I = 1;
_gen1O = 1;
_gen1P = millis(); 
} } else { _gen1I = 0 ; _gen1O= 0;
}
 if (_gen1I) {  if ( _isTimer ( _gen1P , 500 )) { _gen1P = millis();
_gen1O = ! _gen1O;
}}
digitalWrite(13, _gen1O);

}
bool _isTimer(unsigned long startTime, unsigned long period )
  {
  unsigned long currentTime;
currentTime = millis();
if (currentTime>= startTime) {return (currentTime>=(startTime + period));
} else {return (currentTime >=(4294967295-startTime+period));
}
  }

Добавлено (31.12.2015, 13:08)
---------------------------------------------
VirSpy писал(а):Тут есть целый раздел "Видео уроки" от автора программы, где очень наглядно разъяснено как работатьс самой программой, и как использовать ту или иную функцию.
Да, видеоуроки хороши, но более-менее продвинутых. Нет начального понимания программы - нет понимания уроков от автора Изображение

Аватара пользователя
Олег
Полковник
Сообщения: 1532
Зарегистрирован: 13.10.2015{, 16:47}
Репутация: 63
Контактная информация:

"Первые шаги"

#5

Сообщение Олег » 31.12.2015{, 15:43}

AlexRyzh писал(а):Так все таки будет гореть или мигать благодаря встроенному мультивибратору?
А вам диаграммы работы генератора из хелпа совсем не понятны?
Если так, то тогда для совсем начинающих нужно более разжеванное описание работы каждого элемента, а когда с элементами знаком, тогда и так придет понятие что использовать в данном случае - генератор, таймер или еще что нибудь.

Аватара пользователя
VirSpy
Рядовой
Сообщения: 62
Зарегистрирован: 03.12.2015{, 22:40}
Репутация: 3
Откуда: Минск, РБ

"Первые шаги"

#6

Сообщение VirSpy » 01.01.2016{, 03:34}

To AlexRyzh
Тяжело ответить сразу на такое количество вопросов. По порядку:
    На чем писать.
FlProg создовалась как раз для того, что бы не вникая в код можно было писать программы. Это как : сижу в баре, заказал пиво.один бармен принес мне свежеваренное, другой - бутилированное. Результат почти одинаковый, а производство разное. Так и здесь. Мы "рисуем" программу, далее, по законам автора, она преобразуется в конечный код, который и прошивается. И не стоит путать с кодом, написанным на Си.

Аватара пользователя
VirSpy
Рядовой
Сообщения: 62
Зарегистрирован: 03.12.2015{, 22:40}
Репутация: 3
Откуда: Минск, РБ

"Первые шаги"

#7

Сообщение VirSpy » 01.01.2016{, 04:04}

    Создание "макета"
Для создании любого устройства, нужны не только знании программирования, основную роль играет проектирование схемы (а тем паче электрической принципиальной), а так же пригодиться навык пояния.
Дополнение к Уроку1
Вопрос-
""Задача - зажечь светодиод на пине 13 чтоб он постоянно светил.
Пример реализации на языке Ардуино IDE:

void setup() {                 // Инициализируем цифровой вход/выход в режиме выхода.
// Выход 13 на большинстве плат Arduino подключен к светодиоду на плате.
pinMode(13, OUTPUT);
} void loop() {
digitalWrite(13, HIGH);   // зажигаем светодиод}""

проще простого - на входе выхода задаем еденицу.
Изображение
(с условием, что диод подключен на "землю") прим. Led5
Вложения
Led5.flp
(27.75 КБ) 185 скачиваний
Последний раз редактировалось VirSpy 03.01.2016{, 20:24}, всего редактировалось 1 раз.

Аватара пользователя
kipiaxxx
Рядовой
Сообщения: 76
Зарегистрирован: 06.09.2015{, 14:15}
Репутация: 16
Откуда: Омск
Имя: Сергей

"Первые шаги"

#8

Сообщение kipiaxxx » 01.01.2016{, 12:08}

Спасибо, VirSpy, за инициативу в подготовке уроков!
У многих не всегда есть возможность оперативно посмотреть учебные файлы Led1.flp, Led2.flp..... 
Просьба, скриншоты "схем" разместить непосредственно в тексте урока, так будет нагляднее.

Аватара пользователя
AlexRyzh
Сержант
Сообщения: 107
Зарегистрирован: 22.12.2015{, 11:06}
Репутация: 1
Откуда: Мелитополь
Контактная информация:

"Первые шаги"

#9

Сообщение AlexRyzh » 01.01.2016{, 12:55}

Олег писал(а):FlProg создовалась как раз для того, что бы не вникая в код можно было писать программы.
Думаю это не совсем так, иначе компиляция была бы реализована по другому. Но в ФЛП после сборки плат вызывается ИДЕ компилятор, где полученный код можно посмотреть, оценить, поправить, добавить...  и только потом компилировать в ХЕКС
Олег писал(а):И не стоит путать с кодом, написанным на Си.
Согласен, путать не стоит, но он особо не отличается, и зная (понимая) Си и ИДЕ можно что-то в коде добавить (изменить).... и спользуя один из языков. Что очень удобно. Это может пригодиться при отладке своей сборки. Например допустили ошибку при сборке в ФЛП и какое-то из устройств не так ведет себя в определенных условиях. И вот сопоставляя с кодом, иногда можно быстрее обнаружить ошибку параметра.
VirSpy писал(а):Для создании любого устройства, нужны не только знании программирования, основную роль играет проектирование схемы (а тем паче электрической принципиальной), а так же пригодиться навык пояния.
Ну это однозначно, и требования эти не только к программе ФЛП, а вообще к конструирования на Ардуино. 
VirSpy писал(а):проще простого - на входе выхода задаем еденицу. (с условием, что диод подключен на "землю") прим. Led5
А вот это как раз то что нужно!!! Это пример дает понятие применения простейших действий, без которых дальше никак. И без этого понятия уроки 2, 3,... становятся не понятными.
Еще раз спасибо за инициативу по созданию уроков

Добавлено (01.01.2016, 12:55)
---------------------------------------------
И вопрос по возможностям программы: 
В программе можно реализовать любую задачу, которую можно реализовать в ИДЕ компиляторе? 
Реализовано как-то применение готовых библиотек для датчиков, часов и др. модулей?
Развернутый ответ не нужен, т.к. это рано туда заглядывать. Просто да или нет.

Аватара пользователя
kipiaxxx
Рядовой
Сообщения: 76
Зарегистрирован: 06.09.2015{, 14:15}
Репутация: 16
Откуда: Омск
Имя: Сергей

"Первые шаги"

#10

Сообщение kipiaxxx » 01.01.2016{, 13:11}

AlexRyzh писал(а):И вопрос по возможностям программы: В программе можно реализовать любую задачу, которую можно реализовать в ИДЕ компиляторе?
 НЕТ.
В планах Автора - разработка пользовательских блоков с возможностью вставок на языке Си. Тогда возможности FLProg резко возрастут.
AlexRyzh писал(а):Реализовано как-то применение готовых библиотек для датчиков, часов и др. модулей?
ДА.
Не всех, конечно, но достаточно многих. Для начинающих хватит "за глаза".

Аватара пользователя
AlexRyzh
Сержант
Сообщения: 107
Зарегистрирован: 22.12.2015{, 11:06}
Репутация: 1
Откуда: Мелитополь
Контактная информация:

"Первые шаги"

#11

Сообщение AlexRyzh » 01.01.2016{, 13:33}

Лишь после урока5 в голове все стало на свои места. Пересмотрел уроки 1,2,3,... теперь все понятно стало как, что и для чего реализуется...
Жду следующий урок, как обещали, "Подрубаем кнопку".
Спс.

Аватара пользователя
VirSpy
Рядовой
Сообщения: 62
Зарегистрирован: 03.12.2015{, 22:40}
Репутация: 3
Откуда: Минск, РБ

"Первые шаги"

#12

Сообщение VirSpy » 03.01.2016{, 14:47}

Для второго урока мне пригодилась платка управления от какого-то старого принтера на которой есть три кнопки и три светодиода.
СпойлерПоказать
Изображение
Входы (кнопки) и Выходы (светодиоды) для разнообразия подключил как и к цифровым, так и к аналоговым портам.
СпойлерПоказать
Изображение
Схемотехнически все кнопки  "замыкают на землю", однако на кнопке3 дополнительно припаян подтягивающий резистор, светодиоды - через токоограничительные резисторы на "землю".
И так: Урок 2.
Простой индикатор нажатия кнопки.
СпойлерПоказать
Изображение
А так как кнопка у нас - Активный "0", инвертируем ее:
Изображение
прим.Key1.( при нажатии кнопки - загорается встроенный светодиод). Усложним, добавив второй (он же будет первым внешним):
СпойлерПоказать
Изображение
Для красоты проинвертируем его:
Изображение
Теперь добавим триггер ТТ
Изображение
прим.Key2. (при первом нажатии кнопки загорается Led1, при втором - тушится. Светодиод на плате показывает когда нажата кнопка).
Заставим второй светодиод зажигаться на определенное время.
СпойлерПоказать
Для этого выделим импульс нажатия кнопки:
Изображение
теперь светодиод будет зажигаться на очень короткое время, независимо от продолжительности нажатия. Добовляем таймер с задержкой на отключение, допустим, 5 секунд.
Изображение
Так же это можно сделать через переменную:
Изображение
Изображение
Здесь есть свое "но" - пока горит Led2, каждое нажатие на кнопку вызовет перезапуск генератора. Для устранения этого эффекта добавим элемент "И" и еще одну переменную, в которую запишем состояние Led2.
Изображение
Теперь пока горит Led2 (Out Led2 - "1") элемент "И" недаст перезапустить генератор от Imp1, т.к. на втором входе будет удерживаться "0" (проинвертирован).
Ну и для красоты разобьем третий пример (Key3) на платы.
Вложения
Key3.flp
(89.34 КБ) 215 скачиваний
Key2.flp
(42.84 КБ) 173 скачивания
Key1.flp
(34.96 КБ) 169 скачиваний
Последний раз редактировалось VirSpy 03.01.2016{, 20:25}, всего редактировалось 1 раз.

Аватара пользователя
stvor
Рядовой
Сообщения: 1
Зарегистрирован: 06.01.2016{, 00:50}
Репутация: 0

"Первые шаги"

#13

Сообщение stvor » 09.01.2016{, 05:38}

Всем добрый день!
Почему бы не создать новый раздел "Уроки" по данной теме ?
Возможно даже продублировать раздел "Видео уроки".
Таким образом, не придется утомительно разглядывать что там изображено в диалоговом окне примера и работать кнопками в старт-стопном режиме.

Аватара пользователя
kipiaxxx
Рядовой
Сообщения: 76
Зарегистрирован: 06.09.2015{, 14:15}
Репутация: 16
Откуда: Омск
Имя: Сергей

"Первые шаги"

#14

Сообщение kipiaxxx » 09.01.2016{, 17:35}

Программируемые логические контроллеры: практическое руководство для начинающего инженера
И.Г. Минаев, В.В. Самойленко. - Ставрополь: АГРУС, 2009. - 100 с.

Изложены общие сведения по применению программируемых логических контроллеров (ПЛК) в системах управления технологическими процессами, описываемых с позиций событийно-управляемой логики. Все примеры рассмотрены в комплексе CoDeSys на языке LD).

Скачать здесь:
http://publ.lib.ru/ARCHIVE....tml#001

Содержание:
СпойлерПоказать
Вместо введения, или с чего все начиналось
Применение алгебры Буля для описания логических элементов и систем
Логическое умножение
Логическое сложение
Логическое отрицание
Инверсия конъюнкции
Инверсия дизъюнкции
Аксиомы и законы булевой алгебры
Применение законов и аксиом при анализе и синтезе СЛУ
Пример проектирования комбинационной СЛУ
Синтез последовательностной СЛУ на контактных элементах
Краткие сведения о ПЛККраткие сведения о комплексе CoDeSys
Выбор комплекса и языка
Редакторы
Инсталляция среды CoDeSys
Компоненты организации программ (POU)
Запуск CoDeSys
Разделитель экрана
Окно сообщений
Статусная строка
Контекстное менюПроектирование СЛУ на языке LD
Контакты, катушки
Построение СЛУ в LD
Подключение ПЛК
Дополнительные приемы при построении LD-диаграмм
Катушки реле
Исследование СЛУ в режиме эмуляции
Триггеры
Таймеры
Счетчики
Пример проектирования СЛУ
Постановка задачи
Нормальный режим работы
Вопросы безопасности
Перенос программы в ПЛК
Визуализация
Заключение
Сокращения и термины
Список используемой литературы
Последний раз редактировалось kipiaxxx 09.01.2016{, 17:36}, всего редактировалось 1 раз.

Аватара пользователя
VirSpy
Рядовой
Сообщения: 62
Зарегистрирован: 03.12.2015{, 22:40}
Репутация: 3
Откуда: Минск, РБ

"Первые шаги"

#15

Сообщение VirSpy » 24.02.2016{, 19:48}

Урок N. Подключение аналог.джойстика.
СпойлерПоказать
Изображение
Изображение
Изображение
Для данной схемы входа А6 и А7. Выхода: переменные X+,X-,Y+,Y-. Можно добавить элементов для деления зон на несколько групп, например - на два: выходы X+ и X++ = 0-150 и 150-400 для, например, увеличении скорости прибавления.
Аналог. клавиатура
СпойлерПоказать
Изображение.Изображение
Изображение
<a class="link" href="http://u.to/Rh8ZDg" title="http://www.sxemotehnika.ru/delitel-napryazheniya.html" rel="nofollow" target="_blank">Делитель напряжения
Изображение</a>
Последний раз редактировалось VirSpy 28.02.2016{, 20:55}, всего редактировалось 1 раз.

Аватара пользователя
VirSpy
Рядовой
Сообщения: 62
Зарегистрирован: 03.12.2015{, 22:40}
Репутация: 3
Откуда: Минск, РБ

"Первые шаги"

#16

Сообщение VirSpy » 28.02.2016{, 16:05}

Макетная для макета :). В планах - через дно разводка питания, и побольше стоек (отверстий) для более гибкого монтажа.
Вложения
5699236.jpg
Последний раз редактировалось VirSpy 28.02.2016{, 16:07}, всего редактировалось 1 раз.

boss220v
Рядовой
Сообщения: 35
Зарегистрирован: 18.12.2016{, 13:05}
Репутация: 0
Откуда: Москва

"Первые шаги"

#17

Сообщение boss220v » 22.01.2017{, 16:37}

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

MAN8007
Рядовой
Сообщения: 17
Зарегистрирован: 18.02.2016{, 12:44}
Репутация: 0

"Первые шаги"

#18

Сообщение MAN8007 » 26.01.2017{, 16:02}

Закон Ома
Вложения
2147574.jpg

Churkin
Рядовой
Сообщения: 10
Зарегистрирован: 26.10.2016{, 06:23}
Репутация: 0

"Первые шаги"

#19

Сообщение Churkin » 22.03.2017{, 09:22}

Добрый день.
Я видимо где-то пропустил информацию об этом: Плата 1, плата 2 - что это такое? Как это понимать и этим пользоваться?

Аватара пользователя
Олег
Полковник
Сообщения: 1532
Зарегистрирован: 13.10.2015{, 16:47}
Репутация: 63
Контактная информация:

"Первые шаги"

#20

Сообщение Олег » 22.03.2017{, 09:45}

Чтобы не рисовать огромную простыню, разбиваете проект на отдельные платы как вам угодно. Например, на одной плате клавиатура, на второй датчики, на третьей исполнительные устройства и т.д.
 Необходимые данные с платы на плату переносятся с помощью переменных.
 Задавая имя и описание платы вы потом без проблем увидите что к чему относится.
 Кроме того платы можно включать по условию, например, вы хотите чтобы этот кусок кода использовался только один раз в программе, тогда в настройках платы пишете необходимое условие и этот код после отработки больше не учавствует в процессе.

Ответить

Вернуться в «Начинающим»