|
Вопросы о программировании Вопросы, касающиеся программирования на FBD |
|
Опции темы | Поиск в этой теме |
21.12.2017, 11:27 | #1 |
Member
Регистрация: Nov 2015
Сообщения: 58
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Цикл внутри тика
Создаю график реального времени, с горизонтальной и вертикальной разметкой. Получилось много линий и текста.
Попробовал написать двумя способами: 1 Каждая линия - один блок Line, каждая метка - один блок Screen, всё это выполняется за один тик. Недостаток - очень много блоков, сложно масштабировать. 2 Один блок Line, один блок Screen выполняются в цикле, блоков значительно меньше, масштабировать легко. Недостаток - медленное выполнение, разметка рисуется на дисплее пару секунд. Есть желание это дело оптимизировать по времени и по количеству блоков. Существует ли способ заставить лоджик выполнить цикл в одном тике? |
21.12.2017, 12:01 | #2 |
Уволен из Сегнетикс
Регистрация: Nov 2015
Адрес: CПб/ВЛГ
Сообщения: 0
Благодарил(а): 0 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: Цикл внутри тика
Какой контроллер применяете?
__________________ В сегнетиксе не работаю с самого начала 2019 года. |
21.12.2017, 12:13 | #3 |
Member
Регистрация: Nov 2015
Сообщения: 58
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Цикл внутри тика
SMH4
|
21.12.2017, 12:26 | #4 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 115
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Цикл внутри тика
С каким временем цикла вы работаете и сколько блоков занимает ваш алгоритм?
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
21.12.2017, 12:37 | #5 |
Member
Регистрация: Nov 2015
Сообщения: 58
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Цикл внутри тика
Период тика 50 мс.
Непосредственно в цикле рисования линий и меток учавствует 18 блоков, 10 повторений. Это только по горизонтали, ещё добавится вертикальная разметка, её будет меньше. |
21.12.2017, 12:44 | #6 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 115
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Цикл внутри тика
Цитата:
О количестве блоков не волнуйтесь, это смехотворное количество для SMH4. Он в состоянии провернуть в указанное время до нескольких десятков тысяч блоков. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
21.12.2017, 13:19 | #7 |
Member
Регистрация: Nov 2015
Сообщения: 58
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Цикл внутри тика
За количество блоков не волнусь, на данном этапе реальный тик составляет 9 мс, запас есть.
Здесь http://forum.segnetics.com/showpost....5&postcount=43 сотрудник сегнекикса не рекомендует уменьшать тик менее 40. Эта рекомендация дана для ТРИМ, но на сколько я знаю SMH4 создан на базе ТРИМА. Всётаки хотелось чтобы картинка на дисплее появлялась сразу без игр с тиком и последующего изменения констант. Где то на форуме читал, что конструктор применяет циклы в тике, может понял не правильно, найти их не удалось. Поэтому спрошу ещё раз, прямо: Есть ли возможность реализовать цикл в тике? PS: Надеюсь на прямой ответ. |
21.12.2017, 13:25 | #8 |
Уволен из Сегнетикс
Регистрация: Nov 2015
Адрес: CПб/ВЛГ
Сообщения: 0
Благодарил(а): 0 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: Цикл внутри тика
У smh4 дисплей почти в 4 раза меньше (по количеству точек) и контроллер работает заметно быстрее трима. Ну и там в цветности разница есть, и в драйвере экрана тоже есть. Короче, своя специфика. Разработчики, наученные опытом трима, учли ошибки и сделали прибор более быстрым. Скажем так, даже если на smh4 прикрутить экран от трима - он всё равно будет быстрее на 10-20%.
__________________ В сегнетиксе не работаю с самого начала 2019 года. |
21.12.2017, 14:02 | #9 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 115
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Цикл внутри тика
Прямой ответ звучит так: возможность есть, но мы её не даём пользователям. Т.е. для вас такой возможности нет.
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
21.12.2017, 14:31 | #10 |
Member
Регистрация: Nov 2015
Сообщения: 58
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Цикл внутри тика
Очень жаль. В поряде исключения может договоримся? )))
Эта штука периодически бывает нужна и в других проектах. Например из 50 чисел найти максимальное и минимальное за 1 тик. Если делать последовательно, то много блоков и тяжело масштабировать, в цикле долго выполняется, 5 сек при тике 100(уменьшить нельзя ибо пиксель). |
21.12.2017, 15:02 | #11 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 115
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Цикл внутри тика
Цитата:
Поэтому нет. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
21.12.2017, 15:03 | #12 |
Member
Регистрация: Nov 2015
Сообщения: 58
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Цикл внутри тика
Спасибо всем за ответы.
|
21.12.2017, 15:08 | #13 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 115
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Цикл внутри тика
Уменьшите время цикла до 20. Так же можно дублировать вашу схему для параллельной отрисовки разных частей графика.
Это способ выполнения вашей задачи без циклов. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
21.12.2017, 15:18 | #14 |
Member
Регистрация: Nov 2015
Сообщения: 58
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Цикл внутри тика
Да, горизонт и вертикаль будут отрисовываться одновременно. Может такая анимация кому-то и понравится))
|