Влияние версии Windows на исполнение кода

В этом форуме можно обсудить интерфейс программы, работу встроенных блоков, взаимодейсткие с Ардуино IDE и т.д.
Ответить
Ingwar
Полковник
Сообщения: 1929
Зарегистрирован: 28.10.2015{, 22:47}
Репутация: 223
Откуда: Ленобласть
Имя: Игорь

Влияние версии Windows на исполнение кода

#1

Сообщение Ingwar » 20.05.2021{, 17:30}

Всем привет. Сегодня столкнулся с "забавным" случаем и потерял пару часов пока не нашел причину.
Делаем у себя на работе очередную линию розлива своего продукта. Наладчик вчера попросил изменить временную задержку в узле укупорки - я сделал, тестируют механику дальше.
Сегодня он просит еще раз изменить тот же параметр - я меняю в программе, подключаю ноут к плате и ... система ребутается. Загружается и типа подождите бла бла бла, короче она решила обновится.
Меня пинать не надо, ноут не мой и у меня такие нежданчики отключены))). Ну ладно, винда обновилась, запустил программу, прошил, ушел.
Собрался уже домой, звонят - не работает розлив...
Кусок программы на розлив
СпойлерПоказать
Безымянный.png
Исходные данные:
в переменных "время ф1,ф2..." в мсек задаем время открытия форсунок, "пуск" это общая переменная на нормальный режим работы, "клапан каплеприемника" переменная для управления клапаном одноименного устройства (убираем каплеприемник, опускаем форсунки, поднимаем форсунки и возвращаем каплеприемник), "форсунки внизу" соответственный сигнал с датчика.
Алгоритм предполагается такой:
Каждый раз, при опускании форсунок, они открываются на заданное время. И пока не закроется последняя, переменная "залив финиш" равна "0". По окончанию работы всех одновибраторов она становится "1" и сбрасывается в "0" при возвращении каплеприемника в исходное состояние ("0").
Так вот, этот кусок кода работает (как я задумывал) на всех версиях (начиная с Flprog 5.х) на других, ранее сделанных линиях. И до сегодняшнего дня (7.3.5), пока не пришло обновление винды... После него алгоритм изменился на следующий - при достижении форсунками нижнего уровня они открываются на мгновение и в переменную "залив финиш" записывается "1", что собственно и заканчивает процесс розлива...При чем иногда, при первом включении, он разливает правильно...
Варианты про влияние таймаутов модбаса и других таймеров отпадают, поскольку вчера работало, сегодня нет. Изменилась только винда.
Проблема решилась после добавления задержки
СпойлерПоказать
Безымянный2.png
Возможно я не прав в составлении алгоритма и он имеет "тонкие" моменты...
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.

edyapd
Капитан
Сообщения: 768
Зарегистрирован: 20.09.2019{, 11:38}
Репутация: 65
Имя: Эдуард

Влияние версии Windows на исполнение кода

#2

Сообщение edyapd » 20.05.2021{, 17:57}

Понимаю, что на работающей линии не стоит экспериментировать, но всё же, что будет, если вернуть вот это
Ingwar писал(а):
20.05.2021{, 17:30}
Наладчик вчера попросил изменить временную задержку в узле укупорки - я сделал, тестируют механику дальше.
Сегодня он просит еще раз изменить тот же параметр - я меняю в программе
как было раньше.

Ingwar
Полковник
Сообщения: 1929
Зарегистрирован: 28.10.2015{, 22:47}
Репутация: 223
Откуда: Ленобласть
Имя: Игорь

Влияние версии Windows на исполнение кода

#3

Сообщение Ingwar » 20.05.2021{, 18:16}

edyapd писал(а):
20.05.2021{, 17:57}
как было раньше.
Я Вам больше скажу - пробовались даже 3 старых версии (я после каждого изменения присваиваю новый индекс). :no:
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.

edyapd
Капитан
Сообщения: 768
Зарегистрирован: 20.09.2019{, 11:38}
Репутация: 65
Имя: Эдуард

Влияние версии Windows на исполнение кода

#4

Сообщение edyapd » 20.05.2021{, 18:46}

Но есть ещё один способ проверить.
Этот же самый проект зиливаете в плату дома.
Хотя можно и без прошивки. Достаточно просто сравнить получившиеся бинарные файлы.
Просто мне с трудом верится, что обновление Виндовс могло так повлиять. У нас у всех разные Виндовс, а у некоторых даже Линукс. Но я не разу не видел, чтобы один и тот же проект у одного работал, а у другого нет (при одинаковых контроллерах)
Чисто моё мнение.

Отправлено спустя 15 минут 40 секунд:
Понимаю, что это только кусочек кода. Но попытался его проанализировать и вижу только одну причину. Возможен дребезг либо на сигнале "форсунки внизу", либо на сигнале "пуск".
Что получается приходит сигнал после "AND" и взводит RS-триггер. После этого пропадает(возможно на несколько миллисекунд) один из сигналов "пуск" или "форсунки внизу" и это формирует сигнал "залив финиш". Поставив задержку после триггера вы убираете влияние дребезга. Генераторы перезапускаются и дальше всё штатно.

Аватара пользователя
nalnik
Подполковник
Сообщения: 1324
Зарегистрирован: 14.05.2016{, 17:12}
Репутация: 100
Откуда: Кисловодск
Имя: Александр

Влияние версии Windows на исполнение кода

#5

Сообщение nalnik » 20.05.2021{, 22:04}

У меня новый ЛЕНОВО - обновился за неделю два раза - проблем с ESP32 и 8266 при пере прошивки не было.
Я хочу быть добрее, но люди сами нарываются.

Ingwar
Полковник
Сообщения: 1929
Зарегистрирован: 28.10.2015{, 22:47}
Репутация: 223
Откуда: Ленобласть
Имя: Игорь

Влияние версии Windows на исполнение кода

#6

Сообщение Ingwar » 21.05.2021{, 01:56}

edyapd писал(а):
20.05.2021{, 19:02}
Возможен дребезг либо на сигнале "форсунки внизу", либо на сигнале "пуск".
Что получается приходит сигнал после "AND" и взводит RS-триггер. После этого пропадает(возможно на несколько миллисекунд) один из сигналов "пуск" или "форсунки внизу" и это формирует сигнал "залив финиш". Поставив задержку после триггера вы убираете влияние дребезга. Генераторы перезапускаются и дальше всё штатно.
Да, наверное такой вариант может быть... Если наладчики индуктивный датчик на предельную дистанцию выставили... Хотя визуально (есть индикация) промаргивания нет. Дал задание - завтра уменьшат дистанцию.
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.

com
Капитан
Сообщения: 831
Зарегистрирован: 31.05.2018{, 22:12}
Репутация: 83
Откуда: Санкт-Петербург
Имя: Ринат

Влияние версии Windows на исполнение кода

#7

Сообщение com » 21.05.2021{, 06:27}

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

edyapd
Капитан
Сообщения: 768
Зарегистрирован: 20.09.2019{, 11:38}
Репутация: 65
Имя: Эдуард

Влияние версии Windows на исполнение кода

#8

Сообщение edyapd » 21.05.2021{, 08:14}

com писал(а):
21.05.2021{, 06:27}
перестал работать блок триггер со сбросом
А что это за блок?
И возможно это связано не с Виндовс, а с версией самого FLProg.

com
Капитан
Сообщения: 831
Зарегистрирован: 31.05.2018{, 22:12}
Репутация: 83
Откуда: Санкт-Петербург
Имя: Ринат

Влияние версии Windows на исполнение кода

#9

Сообщение com » 21.05.2021{, 09:08}

edyapd, вот этот: viewtopic.php?f=81&t=2976.

edyapd
Капитан
Сообщения: 768
Зарегистрирован: 20.09.2019{, 11:38}
Репутация: 65
Имя: Эдуард

Влияние версии Windows на исполнение кода

#10

Сообщение edyapd » 21.05.2021{, 09:38}

com, по хорошему, этот блок надо бы обсуждать в той ветке. Можете там выложить проект, в котором этот блок не работает (желательно с пояснением, что конкретно не работает)? Там кода три строчки, даже не знаю, что там может не работать.

Ответить

Вернуться в «Обсуждение программы FLProg (Не багтрекер, и не хотелки. Делимся опытом!!)»