Asu$Nick можно, но код внешне будет геморройнее...
Asu$Nick можно, но код внешне будет геморройнее...
Да вот я и заходил с разных сторон, все время нужно быть затейником , чтобы эти мелкие ограничения обойти.
В данном случае всего лишь надо разблокировать обычную возможность писать переменную многократно.
Остальное ST поможет.
Мне кажется ресурсов программы будет тратится намного меньше да и времени.
У меня ПР103 был куплен, на тот момент в нем не было ST , так я даже вот эти Плюс 2 Минус 2 к счетчику из примера не смог сделать. Встроенные счетчики прибавляют по +1, произвольное число уже не задашь.
Asu$Nickа делать умножение на свой шаг после штатного счетчика не пробовали?Встроенные счетчики прибавляют по +1, произвольное число уже не задашь.![]()
Функции же можно в условия добавлять. Если я правильно понимаю, это и есть ветвление...
Вот такой код прекрасно работает и по идее выполняется только одна ветвь???
ветвь.jpgКод:function fSel: udint; //имя функции и тип данных выхода var_input //объявление входных переменных IN1, IN2 : udint; //входная переменная с типом данных bool sel:bool; end_var var //объявление локальных переменных localVariable : real := 13.3; //локальная переменная с типом данных real и начальным значением 13.3 end_var if sel then fSel:= function1(IN1); else fSel:= function2(IN2); end_if end_function
А как это проверить то? Но как она может выполняться, если код в else, к примеру, не выполняется, если первое условие выполнилось? Это у же слишком сильные заморочки и подозрительность![]()