Segnetics

Вернуться   Segnetics > Форум Segnetics > Вопросы о программировании

Вопросы о программировании Вопросы, касающиеся программирования на 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
Gromov
Уволен из Сегнетикс
 
Регистрация: Nov 2015
Адрес: CПб/ВЛГ
Сообщения: 0
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Цикл внутри тика

Какой контроллер применяете?


__________________
В сегнетиксе не работаю с самого начала 2019 года.
Gromov вне форума   Ответить с цитированием
Старый 21.12.2017, 12:13   #3
АндрейЛ
Member
 
Регистрация: Nov 2015
Сообщения: 58
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Цикл внутри тика

SMH4
АндрейЛ вне форума   Ответить с цитированием
Старый 21.12.2017, 12:26   #4
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Цикл внутри тика

Цитата
Сообщение от АндрейЛ Посмотреть сообщение
SMH4
С каким временем цикла вы работаете и сколько блоков занимает ваш алгоритм?


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 21.12.2017, 12:37   #5
АндрейЛ
Member
 
Регистрация: Nov 2015
Сообщения: 58
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Цикл внутри тика

Период тика 50 мс.
Непосредственно в цикле рисования линий и меток учавствует 18 блоков, 10 повторений. Это только по горизонтали, ещё добавится вертикальная разметка, её будет меньше.
АндрейЛ вне форума   Ответить с цитированием
Старый 21.12.2017, 12:44   #6
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Цикл внутри тика

Цитата
Сообщение от АндрейЛ Посмотреть сообщение
Период тика 50 мс.
Непосредственно в цикле рисования линий и меток учавствует 18 блоков, 10 повторений. Это только по горизонтали, ещё добавится вертикальная разметка, её будет меньше.
Уменьшите время цикла до 20. Так же можно дублировать вашу схему для параллельной отрисовки разных частей графика.

О количестве блоков не волнуйтесь, это смехотворное количество для SMH4. Он в состоянии провернуть в указанное время до нескольких десятков тысяч блоков.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 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
Gromov
Уволен из Сегнетикс
 
Регистрация: Nov 2015
Адрес: CПб/ВЛГ
Сообщения: 0
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Цикл внутри тика

У smh4 дисплей почти в 4 раза меньше (по количеству точек) и контроллер работает заметно быстрее трима. Ну и там в цветности разница есть, и в драйвере экрана тоже есть. Короче, своя специфика. Разработчики, наученные опытом трима, учли ошибки и сделали прибор более быстрым. Скажем так, даже если на smh4 прикрутить экран от трима - он всё равно будет быстрее на 10-20%.


__________________
В сегнетиксе не работаю с самого начала 2019 года.
Gromov вне форума   Ответить с цитированием
Старый 21.12.2017, 14:02   #9
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Цикл внутри тика

Цитата
Сообщение от АндрейЛ Посмотреть сообщение
Поэтому спрошу ещё раз, прямо: Есть ли возможность реализовать цикл в тике?

PS: Надеюсь на прямой ответ.
Прямой ответ звучит так: возможность есть, но мы её не даём пользователям. Т.е. для вас такой возможности нет.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 21.12.2017, 14:31   #10
АндрейЛ
Member
 
Регистрация: Nov 2015
Сообщения: 58
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Цикл внутри тика

Очень жаль. В поряде исключения может договоримся? )))
Эта штука периодически бывает нужна и в других проектах. Например из 50 чисел найти максимальное и минимальное за 1 тик. Если делать последовательно, то много блоков и тяжело масштабировать, в цикле долго выполняется, 5 сек при тике 100(уменьшить нельзя ибо пиксель).
АндрейЛ вне форума   Ответить с цитированием
Старый 21.12.2017, 15:02   #11
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Цикл внутри тика

Цитата
Сообщение от АндрейЛ Посмотреть сообщение
Очень жаль. В поряде исключения может договоримся? )))
Эта штука периодически бывает нужна и в других проектах. Например из 50 чисел найти максимальное и минимальное за 1 тик. Если делать последовательно, то много блоков и тяжело масштабировать, в цикле долго выполняется, 5 сек при тике 100(уменьшить нельзя ибо пиксель).
Эта штука очень трудна в отладке. Даже не так. Она капец как нелогична в отладке и в состоянии убить рантайм контроллера.

Поэтому нет.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 21.12.2017, 15:03   #12
АндрейЛ
Member
 
Регистрация: Nov 2015
Сообщения: 58
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Цикл внутри тика

Спасибо всем за ответы.
АндрейЛ вне форума   Ответить с цитированием
Старый 21.12.2017, 15:08   #13
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Цикл внутри тика

Цитата
Сообщение от АндрейЛ Посмотреть сообщение
Спасибо всем за ответы.
Уменьшите время цикла до 20. Так же можно дублировать вашу схему для параллельной отрисовки разных частей графика.

Это способ выполнения вашей задачи без циклов.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 21.12.2017, 15:18   #14
АндрейЛ
Member
 
Регистрация: Nov 2015
Сообщения: 58
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Цикл внутри тика

Да, горизонт и вертикаль будут отрисовываться одновременно. Может такая анимация кому-то и понравится))
АндрейЛ вне форума   Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать свои сообщения

BB code is Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задание очень малого тика 3.28 на Trim5/SMH4 RomanIst SMLogix 3 17.02.2020 18:18
Проблема с передачей переменных внутри программы (решено) ladmin SMLogix 6 27.09.2016 22:19
Не изменяется цикл работы контроллера (решено: ошибка в программе) serg-el SMLogix 9 27.01.2016 11:27


Часовой пояс GMT +4, время: 20:52.


Версия vBulletin: 3.8.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Segnetics 2005 - 2023