Страница 1 из 1

Не объявляются пины

Добавлено: 18.07.2017{, 11:36}
Goosr
Если в программе используются аналоговые и цифровые пины с одинаковыми номерами, то в скетче нет объявления выходных пинов.
Пример программыПоказать
6429860.jpg
6429860.jpg (9.16 КБ) 1181 просмотр

Получаемый скетчПоказать

Код: Выделить всё

bool _kPin3 = 0;
bool _kPin4 = 0;
bool _kPin6 = 0;
void setup()
{
pinMode(17, INPUT);
pinMode(18, INPUT);
pinMode(19, INPUT);
pinMode(6, OUTPUT);

}
void loop()
{

//Плата:1
digitalWrite (3, (digitalRead (17)));
digitalWrite (4, (digitalRead (18)));
digitalWrite (6, (digitalRead (19)));

}
Как видим из скетча, Pin3 и Pin4 не были объявлены выходами, как следствие при выполнении на них не появляется сигнал.

Проверялось в версии программы 2.5.1 для виндовс и линукс

Решил поднять, т.к. данная проблема присутствует в каждой версии, в том числе 5.3.0
Доставляет кучу неудобств.

Не объявляются пины

Добавлено: 18.07.2017{, 11:49}
pan
проверил. тоже самое

Не объявляются пины

Добавлено: 18.07.2017{, 11:54}
Goosr
Добавлю. Оказывается есть зависимость от последовательности добавления элементов. Если первыми внести контакты а потом катушки, то нет выходов. Если первыми внести катушки а потом контакты, то нет входов.

Не объявляются пины

Добавлено: 16.07.2019{, 07:43}
Goosr
Решил поднять, т.к. данная проблема присутствует в каждой версии, в том числе 5.3.0
Доставляет кучу неудобств.

Не объявляются пины

Добавлено: 16.07.2019{, 10:19}
ykamerton
Goosr писал(а):
18.07.2017{, 11:54}
внести контакты а потом катушки
Пора переходить на FBD все будет прописывать.

Не объявляются пины

Добавлено: 16.07.2019{, 22:14}
RedSky
А ещё замечал, что это зависит от расположения платы. Если вверху, тогда проблемы нет.

Не объявляются пины

Добавлено: 16.07.2019{, 22:37}
bsn
ykamerton писал(а):
16.07.2019{, 10:19}
Пора переходить на FBD все будет прописывать.
Полностью согласен.
Свой первый проект в FLProg также делал на релейной логике. И то же замечал косяки - нарисуешь чуть левей/правей контакт, и уже не так прописывает в IDE. Попробовал в FBD - совсем другое дело.
Чисто формально, конечно можно требовать от Автора устранения этих косяков. Но может пощадим его силы, и сократим наше время ожидания реальных ништяков в FBD?
Ей Богу, ну её эту релейку. FBD всё перекрывает.
Может вообще предложить Автору далее не тратить его время на релейку? Кажется он сам уже где-то интересовался - а точно релейка актуальна? Рискну предположить, что он уже сам ей тяготится.
Глядишь без неё, чуть быстрее STM-ки, или чего другое классное, материализуется.

Не объявляются пины

Добавлено: 17.07.2019{, 08:20}
RedSky
Согласен с bsn. LAD в таком виде как есть и неудобен, и не перекрывает возможности FBD. Это вводит новичков в заблуждение, схема получается плохо читаемой и громоздкой, привыкаешь, потом с него слезть трудно.
Короче нужна серьёзная доработка.
А ещё предлагаю отказаться от инсталлятора, ведь портативная версия есть ровно то же самое.

Не объявляются пины

Добавлено: 18.07.2019{, 08:37}
Goosr
ykamerton писал(а):
16.07.2019{, 10:19}
Пора переходить на FBD все будет прописывать.
А я вот не согласен, LAD такой-же промышленный стандарт языков и бросать его разработку не правильно. У меня в производстве такие Десептиконы трансформируются и всё на LAD написано. К тому-же с электриками, разговаривая и обсуждая схемы станков, проще оперировать контактами а не логическими элементами. Да и я собственно, начиная изучать программируемые реле и ПЛК, проще понимал контакты, так и пошло дальше.
RedSky писал(а):
17.07.2019{, 08:20}
Это вводит новичков в заблуждение
Я когда с этим моментом столкнулся, причем во втором проекте, в первом проблемы не было т.к. было задействовано мало пинов, вообще был в панике. Не понимал, что происходит. Станок собран, шкаф управления собран, над душой стоит начальник и вопрошает, а что сказать не знаешь и не понимаешь.

Тут еще наблюдение по этому эффекту использования цифровых и аналоговых пинов. :smile427:
Первыми поставил аналогвые вторыми цифровые, не объявляются цифровые. И на оборот соответственно.

Не объявляются пины

Добавлено: 18.07.2019{, 08:54}
Naladchik
bsn писал(а):
16.07.2019{, 22:37}
Ей Богу, ну её эту релейку. FBD всё перекрывает.
Может вообще предложить Автору далее не тратить его время на релейку? Кажется он сам уже где-то интересовался - а точно релейка актуальна?
Однозначно согласен!

Не объявляются пины

Добавлено: 19.07.2019{, 11:14}
bsn
Goosr писал(а):
18.07.2019{, 08:37}
LAD такой-же промышленный стандарт языков и бросать его разработку не правильно. У меня в производстве такие...
Да, у Сименс, например, LAD весьма распространен. А есть и другие солидные фирмы, и отечественные и импортные, в которых свои какие-то ньюансы и ништяки. А высший пилотаж - видимо прописать всё на C+.
Многое есть ещё такое, что не делает FLProg. Не рисует печатные платы, не имитирует работу электронных схем и т.д и т.п.
Ну и фиг с ним. Сделаем, что нужно в Proteus.
Зато FLProg даёт возможность оперативно освоить цифровое управление на контроллерах.
Быстро и эффективно, потрогать руками, реально ощутить, что ты управляешь процессом. Сам! По своему алгоритму!
У человека вырастают крылья, часто возникает желание далее совершенствоваться в цифровом мире. Кто-то усиленно начнёт применять это в окружающей технике, и даже, как Sancho, освоит дебри C+.
FLProg - даёт людям крылья. По мне так это и есть в нём самое главное.
То что не все сферы будут охвачены - второстепенно. Думаю, что лучше не перегружать программу излишествами, и время Автора не перегружать.
Как сказано в афоризмах Козьмы Пруткова: "Никто не обнимет необъятного".

Не объявляются пины

Добавлено: 30.10.2019{, 21:46}
Goosr
Уряяяя :smile236:
в версии 6.1.1 ушла эта трабла, теперь код выглядит вот так, все пины объявлены.
СпойлерПоказать

Код: Выделить всё



void setup()
{

pinMode(17, INPUT); 
pinMode(3, OUTPUT); 
digitalWrite(3, 0); 
pinMode(18, INPUT); 
pinMode(4, OUTPUT); 
digitalWrite(4, 0); 
pinMode(19, INPUT); 
pinMode(6, OUTPUT); 
digitalWrite(6, 0); 


}
void loop()
{






//Плата:1
digitalWrite (3, (digitalRead (17)));
digitalWrite (4, (digitalRead (18)));
digitalWrite (6, (digitalRead (19)));






}