Страница 1 из 1
Пауза в исполнении кода
Добавлено: 22 май 2018, 09:56
Ingwar
Правильно ли я понимаю результат?
При получении по MODBUS единички в переменную "1", счет на плате "2" останавливается и на экране дисплея остаются значения предшествующие этому событию. После изменения значения тега "1" на "0", счет продолжится.
[spoiler]
тест_пауза.png
[/spoiler]
Пауза в исполнении кода
Добавлено: 22 май 2018, 10:21
Sancho
Ingwar писал(а): 22 май 2018, 09:56При получении по MODBUS единички в переменную "1", счет на плате "2" останавливается и на экране дисплея остаются значения предшествующие этому событию. После изменения значения тега "1" на "0", счет продолжится.
Может и не изменится, а продолжать выполнятся цикл, если это while.
Проект не приложен, не чего проверять.
Надоело писать
Пауза в исполнении кода
Добавлено: 22 май 2018, 10:36
Ingwar
Sancho писал(а): 22 май 2018, 10:21Проект не приложен, не чего проверять. Надоело писать
Я прошу прощения.
Не сообразил, что программистам проще будет посмотреть код в IDE...
test_pausa.flp
Пауза в исполнении кода
Добавлено: 22 май 2018, 14:27
Sancho
Как есть сейчас - при старте плата один уйдёт в цикл, плата два не выполнится ни разу, пока переменной 1 по модбасу не пришлют значение, отличное от 0.
После этого будет работать только плата 2, т.к. условие для работы платы один уже не наступит никогда - присвоение из модбаса происходит только в ней.
Дальше чешем репу, думаем над задачей и алгоритмом ( военная тайна, наверное

)
Пауза в исполнении кода
Добавлено: 22 май 2018, 16:11
Ingwar
Sancho писал(а): 22 май 2018, 14:27Как есть сейчас - при старте плата один уйдёт в цикл, плата два не выполнится ни разу, пока переменной 1 по модбасу не пришлют значение, отличное от 0.
Поправте если не правильно понимаю условие выполнения:
[spoiler]
тест_пауза_2.png
[/spoiler]
переменная "1" исходно равная 0 и при условии когда она будет равна "True (1)" т.е 1, плата будет выполнятся в цикле
И при старте будет выполнятся только вторая плата, а первая никогда не заработает..
Пауза в исполнении кода
Добавлено: 22 май 2018, 16:22
pan
Ingwar писал(а): 22 май 2018, 16:11при условии когда она будет равна "True (1)"
исходя из того, что изображено - ни когда.
как туда попадет 1 если эта плата не работает?
Пауза в исполнении кода
Добавлено: 22 май 2018, 16:40
Ingwar
pan писал(а): 22 май 2018, 16:22как туда попадет 1 если эта плата не работает?
Так я и говорю...
Ingwar писал(а): 22 май 2018, 16:11а первая никогда не заработает..
Я же согласился, что предложенный вариант не канает. Уточнял предположение
Sancho писал(а): 22 май 2018, 14:27Как есть сейчас - при старте плата один уйдёт в цикл, плата два не выполнится ни разу, пока переменной 1 по модбасу не пришлют значение, отличное от 0.
Отправлено спустя 1 минуту 7 секунд:
Короче сел за Proteus, буду искать решение)
Пауза в исполнении кода
Добавлено: 22 май 2018, 16:44
Sancho
Сори, без очков не увидел, что по условию равно true, false увидел . Написано там так, а это по умолчанию.
Значится:
Sancho писал(а): 22 май 2018, 14:27После этого будет работать только плата 2, т.к. условие для работы платы один уже не наступит никогда - присвоение из модбаса происходит только в ней.
Дальше чешем репу, думаем над задачей и алгоритмом ( военная тайна, наверное )
Пауза в исполнении кода
Добавлено: 22 май 2018, 16:45
pan
так елки палки, разместите и на 2ой плате этот modbus tag - 1 , что б он всегда читался
Пауза в исполнении кода
Добавлено: 22 май 2018, 18:19
Ingwar
pan писал(а): 22 май 2018, 16:45так елки палки, разместите и на 2ой плате этот modbus tag - 1 , что б он всегда читался
Если верить Proteus, не все так просто...)
Отправлено спустя 17 минут 9 секунд:
Новый тест
[spoiler]
test_p2.png
[/spoiler]
Схема в эмуляторе
[spoiler]
test_p1.png
[/spoiler]
Стартует нормально, счет идет. Нажимаем кнопку - останавливается, отпускаем - ... не продолжается
Сам проектик
test_pause.flp
Пауза в исполнении кода
Добавлено: 22 май 2018, 18:53
Sancho
[ref]Ingwar[/ref],
Это издержки компиляции FLProg, антидребезг это не функция, это часть цикла.
Убери атидребезг - почувствуй разницу
Пауза в исполнении кода
Добавлено: 22 май 2018, 19:08
Ingwar
Sancho писал(а): 22 май 2018, 18:53Это издержки компиляции FLProg, антидребезг это не функция, это часть цикла.
Как там... дьявол в деталях.
Засада блин.
Вот все толкает уже к изучению языка, но как же себя заставить?