И снова здравствуйте! Все никак не получается совладать с графиком из PolyLine...Код:
Отрисовывает график нормально, а когда приходит пора его сдвигать, начинает "отщипывать" точки от начала... Никак не найду где ошибся. Подскажете?
Вид для печати
И снова здравствуйте! Все никак не получается совладать с графиком из PolyLine...Код:
Отрисовывает график нормально, а когда приходит пора его сдвигать, начинает "отщипывать" точки от начала... Никак не найду где ошибся. Подскажете?
Возможно, вам вот это как-то поможет:
http://www.owen.ru/forum/showthread....l=1#post171024
Правда, это уже не по теме PolyLine.
Upd. - посмотрел ваш код. Как я понял, вы пытаетесь в ходе выполнения программы менять кол-во точек, отображаемых на графике. Но не понял, зачем.
Как я размыслил, если сразу задать кол-во точек = 720, то он будет их сразу отображать с координатами 0,0. То есть, если ФБ поставит точку на 50,300 например, то от нее я увижу линию в координату 0,0. И так будет до тех пор, пока ФБ не проставит все 720. Я не прав?
Так проинициализируйте массив: всем iY присвойте 450 (нулевая отметка графика), а iX - значения с каким-то шагом (0,1,2,3...). В первом цикле всем элементам присваивается текущее значение переменной, начиная со следующего они будут сдвигаться на 1 каждый цикл. Или я не уловил проблему?
Не совсем. Отрисовка в первом цикле работает отлично: появляются новые точки в нужных координатах. Сдвиг не работает адекватно. Я ещё пока не понял что именно происходит вместо сдвига, но это точно не то что хотелось бы видеть. Проще 1 раз увидеть... Сей час попробую взять структуру не из 720, а из 10 точек чтоб можно было посмотреть что там с ней приключается без подвешивания ПК ))
Вложение 22654
Спасибо за отзыв. Признаюсь, новичку весьма приятно услышать похвалу от профи ))) Открыл Ваш код, в котором было на ST написано: Ибо нефиг было перекладывать .X туда-сюда, (censored)! ))) Строчку удалил и все заработало. Ваш вариант тоже неплох, но мне кажется отсутствие зеленой полосы на оси времени в первом цикле выглядит эстетичнее. Она же там красоваться целых 12 часов будет. Ну а ещё у вашего варианта есть явное преимущество - он работает)) В общем, спасибо большое! Рад, что выбрал Овен и есть адекватная техподдержка.
Тогда, с вашего позволения.
Вложение 22669
Трассировка на базе элемента Ломаная. Автор проекта - firetester.
Проект сделан в 3.5 SP8.
Подразумевается отображение 12-часового графика, поэтому при необходимости соответствия дискретности срезов оси времени необходимо поменять значения переменных timelow и timehigh на 30 секунд.
а первая версия спецом написана для инопланетян?
Евгений подскажите как реализован в CS веб сервер, можно ли где-то прописать чтобы открывать веб визуализацию не так http://192.168.0.1:8080/webvisu.htm а просто http://192.168.0.1
Порт уже нашел где 80 поставить, сейчас http://192.168.0.1/index.htm А вот где прописать главную страницу index.htm по умолчанию как в Apache что-то не соображу
Евгений, подскажите еще по AlarmConfiguration. Можно вытащить оттуда флаг наличия активных аварий по всем группам, или кол-во активных аварий по всем группам для визуализации. Нашел пример CODESYS Examples\AlarmManager но там что-то слишком сложно и много лишнего, можно как-то без переобъявленя методов это сделать?
К сожалению эта переменная содержит число отображенных активных тревогах. Для того чтобы ее использовать, таблица тревог должна отображаться на экране. А мне надо просто знать есть ли у меня активные аварии, и если есть раскрасить кнопку Аварии на главной мнемосхеме в красный цвет. Раньше просто проверял в коде все аварии вручную, но теперь тревог все больше и больше и мне надоело задваивать код. Хочу вытащить из AlarmManager
Вариант, когда таблица тревог свернута до пикселя - неприемлем?
Если нет, тогда давайте сразу сформулируем как можно большее число переменных, которые мы хотим вытащить из AlarmManager - и я отправлю запрос в 3S. Правда, не могу гарантировать, что ответ полностью решит вашу проблему.
Предлагаю всем желающим высказаться, какие внутренние переменные из конфигурации тревог могли бы быть вам полезны при разработке программ.
Пока что названы следующие:
1. Флаг наличия активных тревог
2. Кол-во активных тревог каждой группы / общее кол-во тревог
Также добавил в 1-й пост спойлер с известными багами и вопросами по визуализации. Буду актуализировать по мере поступления информации.
Собственно, в примере работы с AlarmManager все есть. Не хватает только описания. Например до конца не понятно обязательно ли регистрировать нового клиента IAlarmManagerClient для получения только наличия тревог IAlarmHandler2.GetActiveAlarms. И до конца не понятна работа с фильтрами IAlarmFilterCriteria пока. Думаю потихоньку разберусь и выложу сюда результаты.
Вложение 23546
Интересный пример от компании 3S - реализация графического примитива Джойстик. Устанавливается в среду через Менеджер пакетов, после чего будет доступен соответствующий проект. Пример был проверен на SP6.
в этом проекте из оборудования использовалось:
•ОВЕН ПЛК160
•ОВЕН ПМ01
•ОВЕН СПК207
если вместо этого списка использовать один ПЛК323 и планшет для работы с web-визуализацией, подскажите, есть ли разница в производительности, скорости обработки и выводе граф. информации?
(пробовал по этому вопросу пообщаться с автором проекта - безуспешно, ничего не работает ни сайт ни почта ни телефон)
У СПК207 М02 600МГц, но производительность в первую очередь зависит от кода. Если не использовать растры и заливки то все может и ОК будет. Хотя мне ПЛК323 не нравится.
Добрый день.
Подскажите есть ли возможность графические примитивы поворачивать вокруг оси? Например я нарисовал полигоном какую-нибудь стрелку, хотелось бы ее размножить и повернуть на 180, 90 и т.д. градусов.
А также можно ли созданные пользователем сохранять в общую библиотеку для дальнейшего использования?
Я имел ввиду несколько другое. При отрисовке интерфейса бывает нужно размножить какие-то элементы (полигональные). Так вот чтобы они были одинаковыми не хватает графических функций - поворот, группировка. Переменные на перемещение нужны уже в процессе работы примитива в интерфейсе и взаимодействия их с программой через переменные.
Группировка обьектов есть, правда в старых версиях она иногда странно работала.
Что касается одинаковых обьектов то рекомендую рисовать их в отдельной визуализации с минимальными для этого обьекта размерами и помещать их в фрейм в основной визуализации. Поворачивать можно задав угол поворота через константу. Не очень удобно в разработке но в исполнении все отлично и вместо десятка независимых элементов имеем один клонированный. Бонусом можно очень быстро поменять цвет, размер и т.д сразу всех элементов. А если научитесь еще и значения переменной во фрейм передавать то вам вообще большое поле открывается для динамизации графики. Сразу расхотите просто копировать и поворачивать...
Не могли бы вы на примере показать вращение через переменную?
Ок, посмотрю.
Странная проблема появилась. При попытке задать пользовательский фон на некоторых визуализациях, например серый (240, 240, 240) он меняется либо на оранжевый, то есть первый в списке палитры цветов, либо на какой-нибудь другой, но не пользовательский. На других экранах визуализации все нормально. В чем дело может быть?
Если через переменную пытаетесь задать, то четвертый параметр - прозрачность забыли.
Ну да, речь о фоне экрана визуализации. Версия Codesys 3.5 SP6 Patch 4. Вот ссылка на архив проекта. Также прикладываю запись с экрана с демонстрацией проблемы.
Не, не другое. Это формат виндовый, mht.
А можно ли установить SP7 patch4 прямо поверх или это хитрая процедура? Вообще странно, кодесису сто лет в обед, а какие-то баги мелкие присутствуют. Мне казалось визуализация от версии к версии не сильно меняется, уж могли бы отшлифовать все...