Страница 29 из 120 ПерваяПервая ... 1927282930313979 ... ПоследняяПоследняя
Показано с 281 по 290 из 1192

Тема: CODESYS V3.5. Визуализация

  1. #281

    По умолчанию

    И снова здравствуйте! Все никак не получается совладать с графиком из PolyLine...
    Код:
    start_rs(set:=start, reset1:=stop);
    takt(enable:=start_rs.Q1, timelow:=T#50MS, timehigh:=T#50MS);
    takt_trig(clk:=takt.OUT);
    //чтоб не выходил за границы
    If temp_input<0 then
    temp_input:=0;
    ELSIF temp_input>160 THEN
    temp_input:=160;
    END_IF

    //отрисовка
    IF takt_trig.Q=TRUE AND PointsNum<=720 THEN
    arrOfPoints[pointsNum].iX:= PointsNum+50;
    arrOfPoints[pointsNum].iY:= REAL_TO_INT(450-(temp_input/0.4));
    pointsNum:=pointsNum+1;
    END_IF

    //сдвиг
    IF takt_trig.Q=TRUE AND PointsNum=721 THEN
    FOR i:=0 TO 719 BY 1 DO
    arrOfPoints[i].iX:=arrOfPoints[i+1].iX;
    arrOfPoints[i].iY:=arrOfPoints[i+1].iY;
    END_FOR
    arrOfPoints[720].iX:= PointsNum+50;
    arrOfPoints[720].iY:= REAL_TO_INT(450-(temp_input/0.4));

    END_IF

    Отрисовывает график нормально, а когда приходит пора его сдвигать, начинает "отщипывать" точки от начала... Никак не найду где ошибся. Подскажете?
    Последний раз редактировалось firetester; 15.02.2016 в 14:08.

  2. #282
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    6,421

    По умолчанию

    Цитата Сообщение от firetester Посмотреть сообщение
    И снова здравствуйте! Все никак не получается совладать с графиком из PolyLine...
    Возможно, вам вот это как-то поможет:
    http://www.owen.ru/forum/showthread....l=1#post171024

    Правда, это уже не по теме PolyLine.

    Upd. - посмотрел ваш код. Как я понял, вы пытаетесь в ходе выполнения программы менять кол-во точек, отображаемых на графике. Но не понял, зачем.

  3. #283

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Возможно, вам вот это как-то поможет:
    http://www.owen.ru/forum/showthread....l=1#post171024

    Правда, это уже не по теме PolyLine.

    Upd. - посмотрел ваш код. Как я понял, вы пытаетесь в ходе выполнения программы менять кол-во точек, отображаемых на графике. Но не понял, зачем.
    Как я размыслил, если сразу задать кол-во точек = 720, то он будет их сразу отображать с координатами 0,0. То есть, если ФБ поставит точку на 50,300 например, то от нее я увижу линию в координату 0,0. И так будет до тех пор, пока ФБ не проставит все 720. Я не прав?

  4. #284
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    6,421

    По умолчанию

    Цитата Сообщение от firetester Посмотреть сообщение
    Как я размыслил, если сразу задать кол-во точек = 720, то он будет их сразу отображать с координатами 0,0. То есть, если ФБ поставит точку на 50,300 например, то от нее я увижу линию в координату 0,0. И так будет до тех пор, пока ФБ не проставит все 720. Я не прав?
    Так проинициализируйте массив: всем iY присвойте 450 (нулевая отметка графика), а iX - значения с каким-то шагом (0,1,2,3...). В первом цикле всем элементам присваивается текущее значение переменной, начиная со следующего они будут сдвигаться на 1 каждый цикл. Или я не уловил проблему?

  5. #285

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Так проинициализируйте массив: всем iY присвойте 450 (нулевая отметка графика), а iX - значения с каким-то шагом (0,1,2,3...). В первом цикле всем элементам присваивается текущее значение переменной, начиная со следующего они будут сдвигаться на 1 каждый цикл. Или я не уловил проблему?
    Не совсем. Отрисовка в первом цикле работает отлично: появляются новые точки в нужных координатах. Сдвиг не работает адекватно. Я ещё пока не понял что именно происходит вместо сдвига, но это точно не то что хотелось бы видеть. Проще 1 раз увидеть... Сей час попробую взять структуру не из 720, а из 10 точек чтоб можно было посмотреть что там с ней приключается без подвешивания ПК ))
    owen09-276-16SP8.projectarchive
    Последний раз редактировалось firetester; 16.02.2016 в 08:29.

  6. #286
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    6,421

    По умолчанию

    Цитата Сообщение от firetester Посмотреть сообщение
    Не совсем. Отрисовка в первом цикле работает отлично: появляются новые точки в нужных координатах. Сдвиг не работает адекватно. Я ещё пока не понял что именно происходит вместо сдвига, но это точно не то что хотелось бы видеть. Проще 1 раз увидеть... Сей час попробую взять структуру не из 720, а из 10 точек чтоб можно было посмотреть что там с ней приключается без подвешивания ПК ))
    owen09-276-16SP8.projectarchive
    Да, действительно, это стоило увидеть - выглядело круто. Мне, кстати, очень понравилась визуализация - по-моему, здорово сделано.
    Вот моя версия:
    Вложения Вложения

  7. #287

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Да, действительно, это стоило увидеть - выглядело круто. Мне, кстати, очень понравилась визуализация - по-моему, здорово сделано.
    Вот моя версия:
    Спасибо за отзыв. Признаюсь, новичку весьма приятно услышать похвалу от профи ))) Открыл Ваш код, в котором было на ST написано: Ибо нефиг было перекладывать .X туда-сюда, (censored)! ))) Строчку удалил и все заработало. Ваш вариант тоже неплох, но мне кажется отсутствие зеленой полосы на оси времени в первом цикле выглядит эстетичнее. Она же там красоваться целых 12 часов будет. Ну а ещё у вашего варианта есть явное преимущество - он работает)) В общем, спасибо большое! Рад, что выбрал Овен и есть адекватная техподдержка.
    Последний раз редактировалось firetester; 16.02.2016 в 09:13.

  8. #288
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    6,421

    По умолчанию

    Цитата Сообщение от firetester Посмотреть сообщение
    Спасибо за отзыв. Признаюсь, новичку весьма приятно услышать похвалу от профи ))) Открыл Ваш код, в котором было на ST написано: Ибо нефиг было перекладывать .X туда-сюда, <censored>! ))) Строчку удалил и все заработало. Ваш вариант тоже неплох, но мне кажется отсутствие зеленой полосы на оси времени в первом цикле выглядит эстетичнее. Она же там красоваться целых 12 часов будет. Ну а ещё у вашего варианта есть явное преимущество - он работает))
    Вы не против, если я в первом посте поставлю ссылку на этот пример?
    И можно уточнить, какую именно строчку вы удалили?

  9. #289

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Вы не против, если я в первом посте поставлю ссылку на этот пример?
    И можно уточнить, какую именно строчку вы удалили?
    Нет, не против, конечно. Он ожил в основном благодаря Вам. Из своего кода удалил arrOfPoints[i].iX:=arrOfPoints[i+1].iX;
    Рабочий код:
    start_rs(set:=start, reset1:=stop);
    takt(enable:=start_rs.Q1, timelow:=T#50MS, timehigh:=T#50MS);
    takt_trig(clk:=takt.OUT);
    IF temp_input<0 THEN
    temp_input:=0;
    ELSIF temp_input>160 THEN
    temp_input:=160;
    END_IF

    IF takt_trig.Q=TRUE AND PointsNum<=719 THEN
    pointsNum:=pointsNum+1;
    arrOfPoints[pointsNum-1].iX:= PointsNum+50;
    arrOfPoints[pointsNum-1].iY:= REAL_TO_INT(450-(temp_input/0.4));

    END_IF

    IF takt_trig.Q=TRUE AND PointsNum=720 THEN

    FOR i:=0 TO 718 BY 1 DO
    arrOfPoints[i].iY:=arrOfPoints[i+1].iY;
    END_FOR

    arrOfPoints[719].iX:= PointsNum+50;
    arrOfPoints[719].iY:= REAL_TO_INT(450-(temp_input/0.4));

    END_IF

    Нужно только после отладки поменять время timelow и timehigh на 30 секунд для соответствия оси времени.
    Последний раз редактировалось firetester; 16.02.2016 в 09:44.

  10. #290
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    6,421

    По умолчанию

    Тогда, с вашего позволения.

    16-02-2016 13-14-24.png

    Трассировка на базе элемента Ломаная. Автор проекта - firetester.

    Проект сделан в 3.5 SP8.

    Подразумевается отображение 12-часового графика, поэтому при необходимости соответствия дискретности срезов оси времени необходимо поменять значения переменных timelow и timehigh на 30 секунд.
    Вложения Вложения

Страница 29 из 120 ПерваяПервая ... 1927282930313979 ... ПоследняяПоследняя

Похожие темы

  1. Визуализация CoDeSys
    от Newcomer в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 24.04.2018, 15:26
  2. Визуализация в CoDeSys
    от Newcomer в разделе ПЛК1хх
    Ответов: 15
    Последнее сообщение: 10.05.2017, 21:11
  3. Визуализация CodeSys
    от DanJer в разделе ПЛК1хх
    Ответов: 2
    Последнее сообщение: 30.08.2012, 04:53
  4. Визуализация Codesys
    от Slipknot в разделе ПЛК1хх
    Ответов: 9
    Последнее сообщение: 31.10.2008, 11:36
  5. Визуализация в CoDeSys 2.3
    от Slawa в разделе ПЛК1хх
    Ответов: 10
    Последнее сообщение: 29.08.2008, 18:30

Ваши права

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