PDA

Просмотр полной версии : CODESYS V3.5. Визуализация



Страницы : 1 [2] 3 4 5 6

Евгений Кислов
21.01.2016, 20:48
В примере 11.2.2 все переключения происходят по нажатию кнопок, а мне надо, чтобы экраны переключались как по нажатию кнопок, так и с помощью переменной по окончании какого либо процесса в программе

Да, извините. Для начала предложил бы попробовать совместить использование параметра Переключение переменной фрейма и CURRENTCLIENTID (см. 11.4.4, пп. 2). Т.е. привязять к фрейму что-то типа arrFrameIndex[CURRENTCLIENTID] и уже с ним работать в коде кнопок и самой программы.

Завтра утром постараюсь сделать для вас какой-нибудь мини-пример.

Я правильно понимаю, что говоря о многопользовательском доступе, вы имеете в виду несколько клиентов веб-визуализации? Их можно как-то идентифицировать в программе? (по логину/паролю, например)

gecha
21.01.2016, 21:21
Честно говоря проект работает уже на предприятии, но как всегда хочется его со временем усовершенствовать, т. е. это называется "с жиру бесится". Многопользовательский доступ пока не осуществлён, пользователь один - оператор. В дальнейшем намечается возможность подключения других пользователей, буду убеждать руководство, чтобы эти пользователи не могли бы своими шаловливыми ручками вносить изменения в ход программы, но посмотреть как идёт процесс они имеют право, соответственно они должны иметь возможность переключать экраны, не знаю, может будут конфликты между оператором и пользователем, скажем так: оператор включил один экран, а удалённый пользователь захотел посмотреть другой.
На экранах фреймов у меня находятся кнопки "ПУСК" и "СТОП", допустим оператор включил в работу экран №2, а на экране №0 процесс закончился, оператор должен переключится на экран №0 путём нажатия соответствующей кнопки и затем нажать "СТОП", но дело в том что если он забыл переключится, то "СТОП" будет нажат на экране №2, поэтому я хотел бы сделать так, чтобы по окончании процесса на экране №0 включился именно он и оператор не задумываясь нажал кнопку "СТОП". Я конечно же сделал предупреждение, что при нажатии кнопки "СТОП" при не завершённом процессе выскакивает подсказка, что процесс не окончен и если Вы хотите его закончить, то надо удерживать кнопку нажатой более 5 сек, но это как то немного раздражает.

Евгений Кислов
21.01.2016, 21:32
Честно говоря проект работает уже на предприятии, но как всегда хочется его со временем усовершенствовать, т. е. это называется "с жиру бесится". Многопользовательский доступ пока не осуществлён, пользователь один - оператор. В дальнейшем намечается возможность подключения других пользователей, буду убеждать руководство, чтобы эти пользователи не могли бы своими шаловливыми ручками вносить изменения в ход программы, но посмотреть как идёт процесс они имеют право, соответственно они должны иметь возможность переключать экраны, не знаю, может будут конфликты между оператором и пользователем, скажем так: оператор включил один экран, а удалённый пользователь захотел посмотреть другой.
На экранах фреймов у меня находятся кнопки "ПУСК" и "СТОП", допустим оператор включил в работу экран №2, а на экране №0 процесс закончился, оператор должен переключится на экран №0 путём нажатия соответствующей кнопки и затем нажать "СТОП", но дело в том что если он забыл переключится, то "СТОП" будет нажат на экране №2, поэтому я хотел бы сделать так, чтобы по окончании процесса на экране №0 включился именно он и оператор не задумываясь нажал кнопку "СТОП". Я конечно же сделал предупреждение, что при нажатии кнопки "СТОП" при не завершённом процессе выскакивает подсказка, что процесс не окончен и если Вы хотите его закончить, то надо удерживать кнопку нажатой более 5 сек, но это как то немного раздражает.

Задачу понял, завтра подумаю, что можно сделать в такой ситуации.

Евгений Кислов
22.01.2016, 09:13
gecha, как и обещал, выкладываю простейший пример (запускать в SP6 или выше).

В проекте два фрейма. Пользователи независимо переключают их кнопками Экран 0 и Экран 1, расположенными под фреймом. По переднему фронту триггера из программы (для его запуска нажмите на кнопку, расположенную в фрейме или имитируйте сигнал в отладчике) для всех пользователей открывается соответствующий триггеру фрейм.

Вопрос в том, для всех ли пользователей должен открываться фрейм завершившегося процесса. Для оператора это логично, но кто-то может зайти по вебу с целью посмотреть информацию о каком-нибудь протекающем процессе - вполне возможно, что им такая смена фреймов не понравится. Но тогда надо как-то идентифицировать пользователей - например, по логину/паролю - ну и дальнейшее, думаю, понятно: IF bSwitchFrame0 AND CurrentUserName... и т.д.

gecha
22.01.2016, 21:44
Добрый вечер, Евгений.
К своему стыду хочу сказать, что в ST я не силён ни как, поэтому, если конечно можно, то в CFC.
И ещё, если в каждом фрейме разместить, ну например лампочку и кнопку, кнопка будет включать таймер ТР и когда он срабатывает, то загорается лампочка и эта же команда переключает на соответствующий экран фрейма, допустим был включён экран 0, а таймер сработал на экране 1 и как только он сработал, то произошло переключение на экран 1

Евгений Кислов
22.01.2016, 22:16
Добрый вечер, Евгений.
К своему стыду хочу сказать, что в ST я не силён ни как, поэтому, если конечно можно, то в CFC.
И ещё, если в каждом фрейме разместить, ну например лампочку и кнопку, кнопка будет включать таймер ТР и когда он срабатывает, то загорается лампочка и эта же команда переключает на соответствующий экран фрейма, допустим был включён экран 0, а таймер сработал на экране 1 и как только он сработал, то произошло переключение на экран 1

Я постараюсь в понедельник адаптировать пример под ваши пожелания. В то же время, если есть возможность, сформулируйте, что вам показалось непонятным в примере в данный момент.

gecha
22.01.2016, 22:46
Мне не понятно "По переднему фронту триггера из программы (для его запуска нажмите на кнопку, расположенную в фрейме или имитируйте сигнал в отладчике) для всех пользователей открывается соответствующий триггеру фрейм", в ST я не вижу триггера, точно так же Вы мне приводили пример таймера в ST, честно говоря я ему долго искал аналог на CFC, но когда нашёл, то был удивлён как всё просто, ну и т. д.

Евгений Кислов
22.01.2016, 23:13
Мне не понятно "По переднему фронту триггера из программы (для его запуска нажмите на кнопку, расположенную в фрейме или имитируйте сигнал в отладчике) для всех пользователей открывается соответствующий триггеру фрейм", в ST я не вижу триггера, точно так же Вы мне приводили пример таймера в ST, честно говоря я ему долго искал аналог на CFC, но когда нашёл, то был удивлён как всё просто, ну и т. д.

А, так триггером в данном контексте я называю переменные bSwitchFrame. По переднему фронту такой переменной происходит переключение фрейма. Когда вы нажимаете на кнопку, переменная bSwitchFrame переключается в TRUE, программа это отлавливает и переключает фрейм, после чего сбрасывает переменную обратно в FALSE. Кнопки - для наглядности, вы можете переключать эту переменную из программы по своим условиям (т.е. по факту окончания процесса).

gecha
22.01.2016, 23:29
Хорошо, вот я запускаю таймер, он отработал, передний фронт этого таймера подаю на R TRIG и его короткий импульс должен открыть соответствующий экран? Так?

Евгений Кислов
22.01.2016, 23:41
Хорошо, вот я запускаю таймер, он отработал, передний фронт этого таймера подаю на R TRIG и его короткий импульс должен открыть соответствующий экран? Так?

Мне кажется, лучше логический выход таймера цеплять на вход EN блока MOVE, производить присваивание, выход ENO цеплять на еще один MOVE, который сбросит триггер. Основной проблемой, как мне видится, может быть компактная реализация на CFC цикла FOR. Самым разумным решением было бы написать на ST функциональный блок из нескольких строк кода, который бы принимал на вход номер экрана, который надо открыть в фрейме. В общем, в понедельник сделаю версию примера на CFC.

gecha
22.01.2016, 23:44
Спасибо, Евгений, буду ждать

Евгений Кислов
25.01.2016, 08:51
Спасибо, Евгений, буду ждать

Вот вариация примера на CFC. Принцип работы: оператор (в примере под этим подразумевается пользователь сервисной визуализации - которая открыта при отладке в редакторе CODESYS) нажимает на кнопку Старт, запуская таймер TON с задержкой 10 секунд. Спустя это время загорается лампа и логический выход таймера поступает на вход экземпляра ФБ SwitchFrame, который открывает для оператора (и только для него) в фрейме данный экран. После этого оператор лишается возможности переключать экраны фрейма кнопками, пока не квитирует таймер нажатием кнопки Сброс. Если были запущены два таймера, то после квитирования таймера, сработавшего последним, в фрейме автоматически откроется экран с предыдущим сработавшим таймером. При этом клиенты веб-визуализации могут свободно переключать экраны кнопками - даже при сработавших таймерах.

На что стоит обратить внимание:
1. Пример сделан для SP6.
2. В ФБ есть константа SwitchClient. Она влияет на кол-во клиентов, для которых ФБ переключает фреймы. При этом индекс 0 должен соответствовать сервисной визуализации, 1 - таргет-визуализации, и начиная с 2 идут веб-клиенты. Если что-то будет происходить не так, то при отладке на СПК смотрите значение переменной CURRENTCLIENTID и меняйте соответствующим образом значение константы.
3. Поскольку экраны фрейма однотипны, то при наличии их в значительном количестве рекомендуется использовать один экран с интерфейсом (см. п. 11.3.3).


https://www.youtube.com/watch?v=2NTzfCk4mk0&

gecha
26.01.2016, 22:23
Евгений, спасибо огромное за помощь

Hoblin
27.01.2016, 14:54
Здравствуйте,
У меня у фрэйма добавилась переменная - на главном экране новая переменная не появилась. Если заново добавить фрэймы - исчезнет привязка старых переменных.
Подскажите пожалуйста как обновить фрэйм без потери привязок старых переменных?

Евгений Кислов
27.01.2016, 15:33
Здравствуйте,
У меня у фрэйма добавилась переменная - на главном экране новая переменная не появилась. Если заново добавить фрэймы - исчезнет привязка старых переменных.
Подскажите пожалуйста как обновить фрэйм без потери привязок старых переменных?

Честно говоря, не уловил проблему - когда вы добавляете в интерфейс экрана фрейма новые переменные, а потом переходите на экран, где расположен фрейм, то появляется окно обновления фрейма. После нажатия на кнопку ОК, в фрейм добавляется новая переменная, привязка старых сохраняется.

22079

vniko
29.01.2016, 15:35
С изменением шрифта в элементе таблица выявилась следующая проблема:
Если в столбце таблицы использовать шаблон и следующий за ним столбец исключить из отображения (убрать галочку напротив цифры столбца в свойствах), то в этом столбце (с использованием шаблона) невозможно изменить величину шрифта (остается и не изменяется величина шрифта Font-Standart).
Создал пример: в столбце 0 и 2 используется шаблон для ввода значений. Все шрифты Font-Heading:
22118
Исключил столбец 1 из отображения:
22119
Вернул столбец 1 и исключил столбец 3 из отображения:
22122
Это возможно как-то победить? Мелкие шрифты ну уж ОЧЕНЬ не устраивают.

Евгений Кислов
29.01.2016, 15:47
С изменением шрифта в элементе таблица выявилась следующая проблема:
Если в столбце таблицы использовать шаблон и следующий за ним столбец исключить из отображения (убрать галочку напротив цифры столбца в свойствах), то в этом столбце (с использованием шаблона) невозможно изменить величину шрифта (остается и не изменяется величина шрифта Font-Standart).
Создал пример: в столбце 0 и 2 используется шаблон для ввода значений. Все шрифты Font-Heading:
22118
Исключил столбец 1 из отображения:
22119
Вернул столбец 1 и исключил столбец 3 из отображения:
22122
Это возможно как-то победить? Мелкие шрифты ну уж ОЧЕНЬ не устраивают.

Спасибо, я воспроизвел у себя проблему, она даже несколько шире - не применяется не только размер шрифта, но и цвет и т.д.
В данный момент победить, видимо, нельзя - но постараюсь в ближайшие дни уведомить о баге разработчиков среды.

Alexey0027
03.02.2016, 20:36
Добрый день. Подскажите , как сделать разграничение доступа к меню, нужно сделать ввод уставок через пароль в визуализации.

Евгений Кислов
03.02.2016, 20:38
Добрый день. Подскажите , как сделать разграничение доступа к меню, нужно сделать ввод уставок через пароль в визуализации.

Пример 11.3.7 должен вам в этом помочь.

firetester
05.02.2016, 14:16
Доброго времени! Вопрос такой: реально ли сделать трассировку хотябы на 12 часов? Пусть хоть 1 семпл раз в 2 мин. Это не так важно - температура на объекте с длительным техпроцессом.

Евгений Кислов
05.02.2016, 14:20
Доброго времени! Вопрос такой: реально ли сделать трассировку хотябы на 12 часов? Пусть хоть 1 семпл раз в 2 мин. Это не так важно - температура на объекте с длительным техпроцессом.

Я бы крайне не советовал делать трассировку более чем за час. По моим наблюдениям, в независимости от частоты срезов, до двух часов не доживает практически ни одна трассировка. Лучше всего вообще ограничиться диапазоном 15-20 минут.

firetester
05.02.2016, 14:25
Я бы крайне не советовал делать трассировку более чем за час. По моим наблюдениям, в независимости от частоты срезов, до двух часов не доживает практически ни одна трассировка. Лучше всего вообще ограничиться диапазоном 15-20 минут.

То есть, на данный момент такая "хотелка" не имеет программных решений для СПК? Я бы вот каким-то чудесным образом увеличил бы частоту замера до 1 раза на 10 000 циклов или больше, но мне такого варианта выпадающая менюшка не дает...

Евгений Кислов
05.02.2016, 14:41
То есть, на данный момент такая "хотелка" не имеет программных решений для СПК? Я бы вот каким-то чудесным образом увеличил бы частоту замера до 1 раза на 10 000 циклов или больше, но мне такого варианта выпадающая менюшка не дает...

С помощью элемента Трассировка такую хотелку, на мой взгляд, реализовать невозможно. Можно использовать, например, элемент Ломаная со своей программной обвязкой - сохранять в массиве значения и отображать их.

serg_s
09.02.2016, 13:52
Подскажите, web-визуализацию в спк110 лицензировать как-то нужно?

22518

Евгений Кислов
09.02.2016, 13:54
Подскажите, web-визуализацию в спк110 лицензировать как-то нужно?

22518

В СПК1xx web-визуализация отсутствует. Лицензировать никак нельзя.

serg_s
09.02.2016, 14:05
В СПК1xx web-визуализация отсутствует. Лицензировать никак нельзя.

очень жаль...

firetester
15.02.2016, 09:25
С помощью элемента Трассировка такую хотелку, на мой взгляд, реализовать невозможно. Можно использовать, например, элемент Ломаная со своей программной обвязкой - сохранять в массиве значения и отображать их.

Я попробовал. Не знает codesys структуры VisuStructPoint. Библиотеки какой-то нет?

А, все, разобрался. В библиотеке CmpVisuHandler такая структура есть ))

Евгений Кислов
15.02.2016, 09:36
Я попробовал. Не знает codesys структуры VisuStructPoint. Библиотеки какой-то нет?

Все описано в примере 11.4.2. Нужна библиотека CmpVisuHandler.

firetester
15.02.2016, 09:54
Все описано в примере 11.4.2. Нужна библиотека CmpVisuHandler.

Да. Это я был невнимателен. Пролистал дальше чем нужно было.

Если можно, еще один вопрос: Как сильно будет грузить СПК такое действие:
....
ELSIF PointsNum=720 then
FOR i:=1 TO 719 DO
arrOfPoints[i].iX:=arrOfPoints[(i+1)].iX;
arrOfPoints[i].iY:=arrOfPoints[(i+1)].iY;

END_FOR

Чтобы обеспечить "сдвиг" графика влево. по принципу FIFO. ?

Евгений Кислов
15.02.2016, 10:20
Да. Это я был невнимателен. Пролистал дальше чем нужно было.

Если можно, еще один вопрос: Как сильно будет грузить СПК такое действие:
....
ELSIF PointsNum=720 then
FOR i:=1 TO 719 DO
arrOfPoints[i].iX:=arrOfPoints[(i+1)].iX;
arrOfPoints[i].iY:=arrOfPoints[(i+1)].iY;

END_FOR

Чтобы обеспечить "сдвиг" графика влево. по принципу FIFO. ?

Надо проверять, но в принципе, вполне посильная для СПК2xx задача.

firetester
15.02.2016, 14:04
И снова здравствуйте! Все никак не получается совладать с графиком из 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
Отрисовывает график нормально, а когда приходит пора его сдвигать, начинает "отщипывать" точки от начала... Никак не найду где ошибся. Подскажете?

Евгений Кислов
15.02.2016, 14:06
И снова здравствуйте! Все никак не получается совладать с графиком из PolyLine...

Возможно, вам вот это как-то поможет:
http://www.owen.ru/forum/showthread.php?t=18838&p=171024&viewfull=1#post171024

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

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

firetester
15.02.2016, 15:54
Возможно, вам вот это как-то поможет:
http://www.owen.ru/forum/showthread.php?t=18838&p=171024&viewfull=1#post171024

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

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

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

Так проинициализируйте массив: всем iY присвойте 450 (нулевая отметка графика), а iX - значения с каким-то шагом (0,1,2,3...). В первом цикле всем элементам присваивается текущее значение переменной, начиная со следующего они будут сдвигаться на 1 каждый цикл. Или я не уловил проблему?

firetester
16.02.2016, 08:22
Так проинициализируйте массив: всем iY присвойте 450 (нулевая отметка графика), а iX - значения с каким-то шагом (0,1,2,3...). В первом цикле всем элементам присваивается текущее значение переменной, начиная со следующего они будут сдвигаться на 1 каждый цикл. Или я не уловил проблему?

Не совсем. Отрисовка в первом цикле работает отлично: появляются новые точки в нужных координатах. Сдвиг не работает адекватно. Я ещё пока не понял что именно происходит вместо сдвига, но это точно не то что хотелось бы видеть. Проще 1 раз увидеть... Сей час попробую взять структуру не из 720, а из 10 точек чтоб можно было посмотреть что там с ней приключается без подвешивания ПК ))
22654

Евгений Кислов
16.02.2016, 08:32
Не совсем. Отрисовка в первом цикле работает отлично: появляются новые точки в нужных координатах. Сдвиг не работает адекватно. Я ещё пока не понял что именно происходит вместо сдвига, но это точно не то что хотелось бы видеть. Проще 1 раз увидеть... Сей час попробую взять структуру не из 720, а из 10 точек чтоб можно было посмотреть что там с ней приключается без подвешивания ПК ))
22654

Да, действительно, это стоило увидеть - выглядело круто. Мне, кстати, очень понравилась визуализация - по-моему, здорово сделано.
Вот моя версия:

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

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

Вы не против, если я в первом посте поставлю ссылку на этот пример?
И можно уточнить, какую именно строчку вы удалили?

firetester
16.02.2016, 09:21
Вы не против, если я в первом посте поставлю ссылку на этот пример?
И можно уточнить, какую именно строчку вы удалили?

Нет, не против, конечно. Он ожил в основном благодаря Вам. Из своего кода удалил 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 секунд для соответствия оси времени.

Евгений Кислов
16.02.2016, 13:22
Тогда, с вашего позволения.

22669

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

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

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

k-rts
03.03.2016, 21:00
а первая версия спецом написана для инопланетян?

Евгений Кислов
03.03.2016, 21:22
а первая версия спецом написана для инопланетян?

Не очень понятно, что вы имеете в виду.

RV9WFJ
04.03.2016, 08:20
а первая версия спецом написана для инопланетян?
Зря вы так. По сравнению с паспортом на ТРМ132 эта инструкция просто образец совершенства :-)

RV9WFJ
04.03.2016, 14:19
Евгений подскажите как реализован в 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 что-то не соображу

Евгений Кислов
04.03.2016, 15:04
Евгений подскажите как реализован в 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 что-то не соображу

Добрый день. К сожалению, сходу не могу ответить на ваш вопрос - постараюсь заняться им на следующей неделе.

Евгений Кислов
11.03.2016, 17:54
Евгений подскажите как реализован в 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 что-то не соображу

По информации от компании 3S, в текущий момент так сделать нельзя. Появление данного функционала возможно в одном из следующих сервис-паков.

RV9WFJ
14.03.2016, 17:21
Евгений, подскажите еще по AlarmConfiguration. Можно вытащить оттуда флаг наличия активных аварий по всем группам, или кол-во активных аварий по всем группам для визуализации. Нашел пример CODESYS Examples\AlarmManager но там что-то слишком сложно и много лишнего, можно как-то без переобъявленя методов это сделать?

Евгений Кислов
14.03.2016, 17:51
Евгений, подскажите еще по AlarmConfiguration. Можно вытащить оттуда флаг наличия активных аварий по всем группам, или кол-во активных аварий по всем группам для визуализации. Нашел пример CODESYS Examples\AlarmManager но там что-то слишком сложно и много лишнего, можно как-то без переобъявленя методов это сделать?

В SP8 у таблицы тревог добавилась переменная CountAlarms, если не ошибаюсь, то она содержит как раз число активных тревог.

RV9WFJ
15.03.2016, 09:02
В SP8 у таблицы тревог добавилась переменная CountAlarms, если не ошибаюсь, то она содержит как раз число активных тревог.К сожалению эта переменная содержит число отображенных активных тревогах. Для того чтобы ее использовать, таблица тревог должна отображаться на экране. А мне надо просто знать есть ли у меня активные аварии, и если есть раскрасить кнопку Аварии на главной мнемосхеме в красный цвет. Раньше просто проверял в коде все аварии вручную, но теперь тревог все больше и больше и мне надоело задваивать код. Хочу вытащить из AlarmManager

Евгений Кислов
15.03.2016, 09:09
К сожалению эта переменная содержит число отображенных активных тревогах. Для того чтобы ее использовать, таблица тревог должна отображаться на экране. А мне надо просто знать есть ли у меня активные аварии, и если есть раскрасить кнопку Аварии на главной мнемосхеме в красный цвет. Раньше просто проверял в коде все аварии вручную, но теперь тревог все больше и больше и мне надоело задваивать код. Хочу вытащить из AlarmManager

Вариант, когда таблица тревог свернута до пикселя - неприемлем?

Если нет, тогда давайте сразу сформулируем как можно большее число переменных, которые мы хотим вытащить из AlarmManager - и я отправлю запрос в 3S. Правда, не могу гарантировать, что ответ полностью решит вашу проблему.

Предлагаю всем желающим высказаться, какие внутренние переменные из конфигурации тревог могли бы быть вам полезны при разработке программ.

Пока что названы следующие:

1. Флаг наличия активных тревог
2. Кол-во активных тревог каждой группы / общее кол-во тревог


Также добавил в 1-й пост спойлер с известными багами и вопросами по визуализации. Буду актуализировать по мере поступления информации.

RV9WFJ
16.03.2016, 05:19
Собственно, в примере работы с AlarmManager все есть. Не хватает только описания. Например до конца не понятно обязательно ли регистрировать нового клиента IAlarmManagerClient для получения только наличия тревог IAlarmHandler2.GetActiveAlarms. И до конца не понятна работа с фильтрами IAlarmFilterCriteria пока. Думаю потихоньку разберусь и выложу сюда результаты.

Евгений Кислов
01.04.2016, 15:38
23546

Интересный пример от компании 3S - реализация графического примитива Джойстик. Устанавливается в среду через Менеджер пакетов, после чего будет доступен соответствующий проект. Пример был проверен на SP6.

login-l
05.04.2016, 10:51
Ну, например:
http://www.owen.ru/projects/39217550/about

в этом проекте из оборудования использовалось:
•ОВЕН ПЛК160
•ОВЕН ПМ01
•ОВЕН СПК207

если вместо этого списка использовать один ПЛК323 и планшет для работы с web-визуализацией, подскажите, есть ли разница в производительности, скорости обработки и выводе граф. информации?
(пробовал по этому вопросу пообщаться с автором проекта - безуспешно, ничего не работает ни сайт ни почта ни телефон)

Евгений Кислов
05.04.2016, 11:00
в этом проекте из оборудования использовалось:
•ОВЕН ПЛК160
•ОВЕН ПМ01
•ОВЕН СПК207

если вместо этого списка использовать один ПЛК323 и планшет для работы с web-визуализацией, подскажите, есть ли разница в производительности, скорости обработки и выводе граф. информации?
(пробовал по этому вопросу пообщаться с автором проекта - безуспешно, ничего не работает ни сайт ни почта ни телефон)

Разница будет - по той причине, что у СПК207 M02 процессор 600 МГц, а у ПЛК323 - 180. Зависимость, конечно, нелинейная, но в целом производительность веб-визуализации на ПЛК323 будет хуже.

RV9WFJ
06.04.2016, 06:54
У СПК207 М02 600МГц, но производительность в первую очередь зависит от кода. Если не использовать растры и заливки то все может и ОК будет. Хотя мне ПЛК323 не нравится.

dkapotov
07.04.2016, 16:19
Добрый день.
Подскажите есть ли возможность графические примитивы поворачивать вокруг оси? Например я нарисовал полигоном какую-нибудь стрелку, хотелось бы ее размножить и повернуть на 180, 90 и т.д. градусов.

А также можно ли созданные пользователем сохранять в общую библиотеку для дальнейшего использования?

Евгений Кислов
07.04.2016, 17:38
Добрый день.
Подскажите есть ли возможность графические примитивы поворачивать вокруг оси? Например я нарисовал полигоном какую-нибудь стрелку, хотелось бы ее размножить и повернуть на 180, 90 и т.д. градусов.

А также можно ли созданные пользователем сохранять в общую библиотеку для дальнейшего использования?

Вращать можно, см. вкладку параметров Абсолютное перемещение. Ее переменные описаны в табл. 2, а в п. 11.2.1 есть пример их использования.

Сохранять в общую библиотеку (чтобы они отображались на панели элементов) - нельзя.

dkapotov
08.04.2016, 13:30
Я имел ввиду несколько другое. При отрисовке интерфейса бывает нужно размножить какие-то элементы (полигональные). Так вот чтобы они были одинаковыми не хватает графических функций - поворот, группировка. Переменные на перемещение нужны уже в процессе работы примитива в интерфейсе и взаимодействия их с программой через переменные.

Евгений Кислов
08.04.2016, 13:42
Я имел ввиду несколько другое. При отрисовке интерфейса бывает нужно размножить какие-то элементы (полигональные). Так вот чтобы они были одинаковыми не хватает графических функций - поворот, группировка. Переменные на перемещение нужны уже в процессе работы примитива в интерфейсе и взаимодействия их с программой через переменные.

Вращать элементы в редакторе визуализации нельзя, насколько мне известно.

RV9WFJ
09.04.2016, 04:23
Я имел ввиду несколько другое. При отрисовке интерфейса бывает нужно размножить какие-то элементы (полигональные). Так вот чтобы они были одинаковыми не хватает графических функций - поворот, группировка. Переменные на перемещение нужны уже в процессе работы примитива в интерфейсе и взаимодействия их с программой через переменные.Группировка обьектов есть, правда в старых версиях она иногда странно работала.
Что касается одинаковых обьектов то рекомендую рисовать их в отдельной визуализации с минимальными для этого обьекта размерами и помещать их в фрейм в основной визуализации. Поворачивать можно задав угол поворота через константу. Не очень удобно в разработке но в исполнении все отлично и вместо десятка независимых элементов имеем один клонированный. Бонусом можно очень быстро поменять цвет, размер и т.д сразу всех элементов. А если научитесь еще и значения переменной во фрейм передавать то вам вообще большое поле открывается для динамизации графики. Сразу расхотите просто копировать и поворачивать...

dkapotov
10.04.2016, 07:31
Не могли бы вы на примере показать вращение через переменную?

Евгений Кислов
10.04.2016, 10:07
Не могли бы вы на примере показать вращение через переменную?

Посмотрите пример 11.2.1. Ссылка есть в первом посте и в соответствующем пункте документа.

dkapotov
10.04.2016, 22:46
Ок, посмотрю.

Странная проблема появилась. При попытке задать пользовательский фон на некоторых визуализациях, например серый (240, 240, 240) он меняется либо на оранжевый, то есть первый в списке палитры цветов, либо на какой-нибудь другой, но не пользовательский. На других экранах визуализации все нормально. В чем дело может быть?

RV9WFJ
11.04.2016, 06:17
Если через переменную пытаетесь задать, то четвертый параметр - прозрачность забыли.

Евгений Кислов
11.04.2016, 07:29
Ок, посмотрю.

Странная проблема появилась. При попытке задать пользовательский фон на некоторых визуализациях, например серый (240, 240, 240) он меняется либо на оранжевый, то есть первый в списке палитры цветов, либо на какой-нибудь другой, но не пользовательский. На других экранах визуализации все нормально. В чем дело может быть?

Речь о фоне экрана визуализации, как я понял? Не смог воспроизвести проблему. Если она у вас стабильно повторяется, то выложите архив проекта, пожалуйста, с указанием, в какой версии CODESYS он сделан.

dkapotov
11.04.2016, 11:02
Ну да, речь о фоне экрана визуализации. Версия Codesys 3.5 SP6 Patch 4. Вот ссылка (https://yadi.sk/d/T_AMtN7nqtdiq) на архив проекта. Также прикладываю запись с экрана с демонстрацией проблемы.

Евгений Кислов
11.04.2016, 11:07
Ну да, речь о фоне экрана визуализации. Версия Codesys 3.5 SP6 Patch 4. Вот ссылка (https://yadi.sk/d/T_AMtN7nqtdiq) на архив проекта. Также прикладываю запись с экрана с демонстрацией проблемы.

По-моему вы вместо записи с экрана что-то другое выложили.

dkapotov
11.04.2016, 11:10
Не, не другое. Это формат виндовый, mht.

Евгений Кислов
11.04.2016, 11:19
Не, не другое. Это формат виндовый, mht.

В вашем архиве проекта я наблюдаю описанную вами проблему.

Проблема, очевидно, относится к конкретному патчу. Рекомендую использовать либо более новую версию CODESYS (например, SP7 Patch4), либо вместо фона использовать соответствующую картинку.

dkapotov
11.04.2016, 11:23
А можно ли установить SP7 patch4 прямо поверх или это хитрая процедура? Вообще странно, кодесису сто лет в обед, а какие-то баги мелкие присутствуют. Мне казалось визуализация от версии к версии не сильно меняется, уж могли бы отшлифовать все...

Евгений Кислов
11.04.2016, 11:25
А можно ли установить SP7 patch4 прямо поверх или это хитрая процедура? Вообще странно, кодесису сто лет в обед, а какие-то баги мелкие присутствуют. Мне казалось визуализация от версии к версии не сильно меняется, уж могли бы отшлифовать все...

Версии CODESYS устанавливаются независимо друг от друга. Я предпочитаю ставить их в разные папки - просто для удобства. Баги зачастую присутствуют не только мелкие, среда находится в постоянном развитии.

Hoblin
11.04.2016, 12:06
Здравствуйте,
в Codesys 3.5 в визуализации можно как то привязать точку линии к движущемуся объекту?
Или как можно получить текущие координаты объекта?

Евгений Кислов
11.04.2016, 12:10
Здравствуйте,
в Codesys 3.5 в визуализации можно как то привязать точку линии к движущемуся объекту?
Или как можно получить текущие координаты объекта?

Cм. пункт 11.4.2 (если я правильно понял вопрос).

Текущие координаты объекта можно получить, зная его начальные координаты и значения переменных Перемещение X/Перемещение Y (вкладка параметров Абсолютное перемещение).

gecha
11.04.2016, 21:36
Евгений, а вот такая ситуация: имеется прямоугольник, которому мы задаём в свойствах элемента абсолютное перемещение "Внутреннее вращение", имеется прямая линия у которой одна точка зафиксирована, а вторая привязана к одному из углов прямоугольника, возможно ли сделать так, что вращая прямоугольник точка линии (привязанная к угловой точке прямоугольника) двигалась бы вместе с этой точкой, а вторая точка линии оставалась неподвижной. Можно задать вопрос иначе: на экране "лежит" прямоугольник с центром в левом нижнем углу, а "верёвка" привязана к правому верхнему, наверху стоит блок откуда спускается эта верёвка, дальше понятно, мы вращаем блок, верёвка укорачивается и поднимает это "бревно"

Евгений Кислов
12.04.2016, 08:09
Евгений, а вот такая ситуация: имеется прямоугольник, которому мы задаём в свойствах элемента абсолютное перемещение "Внутреннее вращение", имеется прямая линия у которой одна точка зафиксирована, а вторая привязана к одному из углов прямоугольника, возможно ли сделать так, что вращая прямоугольник точка линии (привязанная к угловой точке прямоугольника) двигалась бы вместе с этой точкой, а вторая точка линии оставалась неподвижной. Можно задать вопрос иначе: на экране "лежит" прямоугольник с центром в левом нижнем углу, а "верёвка" привязана к правому верхнему, наверху стоит блок откуда спускается эта верёвка, дальше понятно, мы вращаем блок, верёвка укорачивается и поднимает это "бревно"

Я так понимаю, вопрос в том, как это реализовать? Но вы же по сути сами на него ответили.

1. Управляем переменной Внутреннее вращение бревна.
2. Управляем переменной Перемещение/Y бревна.
3. Управляем переменной Относительное перемещение/Точка 0/Y веревки.

Все остальное сводится к школьному курсу кинематики. В то время, которое у меня было до начала рабочего дня, набросал на коленке простейший пример - слегка корявый (не пиксель в пиксель) и показывающий только подъем бревна. Но, полагаю, вы сможете использовать его как основу для своего варианта. Пример сделан в SP6.

Буду признателен, если вы в будущем (при наличии возможности) выложите свой вариант - где все уже будет красиво и ровно. Думаю, многим будет интересно.


https://www.youtube.com/watch?v=tabOSaasEbs

dkapotov
12.04.2016, 16:21
Добрый день.
Не поможете разобраться почему на СПК-105 не вводятся значения в поля с помощью экранной клавиатуры?
Скриншот экрана и ссылку на архив проекта (https://yadi.sk/d/T_AMtN7nqtdiq) прилагаю

GoodLuck
12.04.2016, 16:54
Сделайте вот так

gecha
12.04.2016, 17:00
Евгений, спасибо за ответ, но у меня ситуация немного другая: в моём случае у бревна левый нижний угол зафиксирован, блок, тянущий верёвку находится над этой неподвижной точкой, а вторая точка верёвки привязана к правому верхнему углу, т.е. при подъёме вторая точка верёвки описывает дугу, к которой я и формулу не могу подобрать. Вот если бы каким то образом присвоить координаты правого верхнего угла ко второй точке верёвки...

dkapotov
12.04.2016, 17:16
Сделайте вот так

Не помогает

Евгений Кислов
12.04.2016, 17:43
Евгений, спасибо за ответ, но у меня ситуация немного другая: в моём случае у бревна левый нижний угол зафиксирован, блок, тянущий верёвку находится над этой неподвижной точкой, а вторая точка верёвки привязана к правому верхнему углу, т.е. при подъёме вторая точка верёвки описывает дугу, к которой я и формулу не могу подобрать. Вот если бы каким то образом присвоить координаты правого верхнего угла ко второй точке верёвки...

Тогда может нарисовать бревно с помощью полигона/ломаной или нескольких линий? В этом случае вы сможете управлять координатой любой точки, в том числе и считать ее в переменную, после чего присвоить куда нужно.

Евгений Кислов
12.04.2016, 17:51
Не помогает

В настройках таргет-визуализации укажите корректное разрешение экрана. См п. 12.1.

gecha
12.04.2016, 18:20
У меня вот такая ситуация, я думаю из картинки Вы поймёте23829

Евгений Кислов
12.04.2016, 18:30
У меня вот такая ситуация, я думаю из картинки Вы поймёте23829

Честно говоря, сравнивая картинку и ваш текст, я не очень понял, что куда должно двигаться. Но не суть. Повторюсь, по-моему проще всего будет использовать элементы типа Полигон/Ломаная/Кривая Безье - координаты их точек вы можете считать и управлять ими, как вам захочется.

gecha
12.04.2016, 20:27
На рисунке слева синим цветом - это лебёдка, вращаясь, она поднимает крышку, ось вращения крышки - это маленькая окружность слева на крышке, крышка поднимается примерно на 80 градусов, крышке я задал время поднятия 20 сек, вместе с крышкой должна двигаться нижняя точка каната

Евгений Кислов
12.04.2016, 20:35
На рисунке слева синим цветом - это лебёдка, вращаясь, она поднимает крышку, ось вращения крышки - это маленькая окружность слева на крышке, крышка поднимается примерно на 80 градусов, крышке я задал время поднятия 20 сек, вместе с крышкой должна двигаться нижняя точка каната

Спасибо, теперь понял, что требуется. Давайте так: вы выложите текущую версию проекта (или отправьте на e.kislov@owen.ru, если по каким-то причинам не хотите выкладывать здесь), а я в свободное время постараюсь доработать ее по вашему описанию.

gecha
12.04.2016, 20:45
Вот вид с поднятой крышкой23832

Евгений Кислов
13.04.2016, 08:32
Вот вид с поднятой крышкой23832

Попытался реализовать что-то подобное - и понял, с какими проблемами вы столкнулись.

Элементы с динамическими точками здесь не подходят, а координаты опорных точек эллипса считать в переменные нельзя.

Т.е. средствами визуализации тут уже вряд ли что-то можно сделать. Если говорить конкретно о задаче, то можно:

1. Просчитать на листочке, как будут меняться координаты нужных точек при смещении бревна через тригонометрические функции.

2. Подобрать несколько точек вручную. Т.е. в режиме отладки вращаете бревно на 10 градусов, и подбираете координаты точек веревки до тех пор, пока они не станут касательными. Если у вас максимальный угол вращения - 80 градусов, то можно подобрать, например, 8 точек, а потом при вращении проходить только их. Очевидно, в данном случае движение будет не плавным, а отрывистым.

Hoblin
13.04.2016, 12:00
Здравствуйте,
по поводу движения точки
Извиняюсь что не упорядочил блоки в cfc - это черновой набросок
http://xomka.org/tv/primer.project - сам проект

https://youtu.be/nCNrOzYsyZs

Евгений Кислов
13.04.2016, 12:15
Здравствуйте,
по поводу движения точки
Извиняюсь что не упорядочил блоки в cfc - это черновой набросок
http://xomka.org/tv/primer.project - сам проект

https://youtu.be/nCNrOzYsyZs

Спасибо, довольно интересно. Gecha, обратите внимание - это может вам помочь. Собственно, это то, о чем я говорил в #338 пп. 1.

gecha
13.04.2016, 20:44
Всем спасибо, конечно это вариант!

dkapotov
14.04.2016, 16:39
Скажите, а сколько экранов визуализации может быть в СПК-105?

Евгений Кислов
14.04.2016, 17:45
Скажите, а сколько экранов визуализации может быть в СПК-105?

Сложно ответить однозначно, поскольку ограничение накладывается не на количество экранов, а на размер проекта.

По опыту - мне не доводилось встречать проекты с более чем 30-ю экранами (включая диалоговые окна).

Alex8
15.04.2016, 00:36
Подскажите, как сделать чтобы рисунок появлялся при загрузке панели СПК 105 и исчезал перед включением визуализации.

Евгений Кислов
15.04.2016, 05:51
Подскажите, как сделать чтобы рисунок появлялся при загрузке панели СПК 105 и исчезал перед включением визуализации.

Сделайте стартовый экран с рисунком (в соседней теме вам объяснили, как это сделать), при старте программы запускайте таймер (TON), и по его выходу переключайтесь на экран визуализации через CurrentVisu (см. п. 11.3.1).

Либо, как вариант, можно наложить рисунок на экран (в самом верхнем слое), и по выходу таймера делать его невидимым.

Alex8
15.04.2016, 12:05
Спасибо большое, получилось.

Smarsh
18.04.2016, 13:21
День добрый,

Столкнулся со следующей проблемой визуализации. Есть несколько экранов на которых выводятся картинки из пула изображений, базовые элементы - прямоугольники и переключатели. В какой-то момент, переключатели на экране ПЛК перестали отображаться, т.е. просто их изображение не отрисовывается, хотя если туда подвести мышку и нажать, переключение происходит. При этом если зайти на ПЛК в вебинтерфейс, там все корректно.

Евгений Кислов
18.04.2016, 13:28
День добрый,

Столкнулся со следующей проблемой визуализации. Есть несколько экранов на которых выводятся картинки из пула изображений, базовые элементы - прямоугольники и переключатели. В какой-то момент, переключатели на экране ПЛК перестали отображаться, т.е. просто их изображение не отрисовывается, хотя если туда подвести мышку и нажать, переключение происходит. При этом если зайти на ПЛК в вебинтерфейс, там все корректно.

0. Сообщите, пожалуйста, модель и модификацию СПК, версию прошивки и таргет файла.
1. Если перезалить проект из CODESYS, этот эффект сохраняется?
2. Папка Visu в контроллере существует?

23945

"В какой-то момент" - в этот момент с контроллером совершались какие-то операции? Или, условно говоря, вечером картинки были - утром нет?

Smarsh
18.04.2016, 13:36
0. Сообщите, пожалуйста, модель и модификацию СПК, версию прошивки и таргет файла.
1. Если перезалить проект из CODESYS, этот эффект сохраняется?
2. Папка Visu в контроллере существует?

23945

"В какой-то момент" - в этот момент с контроллером совершались какие-то операции? Или, условно говоря, вечером картинки были - утром нет?

0. СПК107, все ставилось с образа диска с сайта. Вечером доберусь до устройства скажу точно.
1. Да.
2. Папка есть, и файлики с изображениями судя по названиям тоже есть, но скопировать чтоб посмотреть их не получается, "ошибка доступа".

"В какой-то момент" - это у меня есть проект, я его редактирую, заливаю в СПК, проверяю работу, продолжаю редактировать. На n-ной итерации хлоп, выключателей нет.

З.ы. меня очень смущает что в вебвизуализации все впорядке.

Евгений Кислов
18.04.2016, 13:38
0. СПК107, все ставилось с образа диска с сайта. Вечером доберусь до устройства скажу точно.
1. Да.
2. Папка есть, и файлики с изображениями судя по названиям тоже есть, но скопировать чтоб посмотреть их не получается, "ошибка доступа".

"В какой-то момент" - это у меня есть проект, я его редактирую, заливаю в СПК, проверяю работу, продолжаю редактировать. На n-ной итерации хлоп, выключателей нет.

Выложите, пожалуйста, скриншот вкладки Информация компонента Device.

Smarsh
19.04.2016, 09:16
Выложите, пожалуйста, скриншот вкладки Информация компонента Device.

Вот.
23955

Еще попробовал: если создать новый проект и добавить кнопки - работает, после того как обратно загружаешь старый - не работает.

Евгений Кислов
19.04.2016, 09:33
Вот.
23955

Еще попробовал: если создать новый проект и добавить кнопки - работает, после того как обратно загружаешь старый - не работает.


Номер модели: 20

Вам нужно обновить таргет в проекте до версии 3.5.4.20 (023).
http://www.owen.ru/catalog/codesys_v3/25545068

Alex8
21.04.2016, 01:51
Написал программу, при изменении значений в визуализации, когда значение уставки доходит до 8,1 на экране отображается 10000 это происходит только на этой цифре при значении до 8 и после 8,1 таких проблем нет, посмотрите пожалуйста, что я не так сделал

Евгений Кислов
21.04.2016, 07:42
Написал программу, при изменении значений в визуализации, когда значение уставки доходит до 8,1 на экране отображается 10000 это происходит только на этой цифре при значении до 8 и после 8,1 таких проблем нет, посмотрите пожалуйста, что я не так сделал

Вы, в принципе, все сделали правильно.

Число 8.1 при конвертации в STRING превращается в 8.100001 (это связано с точностью REAL). Поскольку текстовое поле у вас довольно узкое и текст выравнивается по центру, то первые два (8.) и последний (1) символ вы не видите - отсюда 10000.

24026

Чтобы решить проблему, используйте форматирование вывода %.1f - т.е. REAL с одним знаком после запятой, что соответствует вашим фактическим значениям.

Alex8
21.04.2016, 13:40
Евгений, спасибо Вам в очередной раз, исправил как Вы сказали, все получилось

Эдуард_Н
23.04.2016, 17:17
Что означают два знака "%" после значения гистерезиса? Один нельзя было поставить?

CEkip
23.04.2016, 18:25
Что означают два знака "%" после значения гистерезиса? Один нельзя было поставить?

Это когда нужно отобразить знак "%", допустим 100 %

Smarsh
26.04.2016, 13:14
Номер модели: 20

Вам нужно обновить таргет в проекте до версии 3.5.4.20 (023).
http://www.owen.ru/catalog/codesys_v3/25545068

Спасибо, помогло.

Евгений Кислов
11.05.2016, 10:40
21 апреля в Конгресс-центре «Измайлово» прошла очередная конференция пользователей CODESYS.

На конференции были представлены новейшие разработки, реализованные за год, очерчены планы на будущее и проведены дискуссии с пользователями CODESYS о проблемах и пожеланиях для развития комплекса.

В частности, была прочитана лекция по разработке продвинутой визуализации, в которой затронули вопросы адаптивного дизайна и многопользовательского доступа.

24422

Презентация и пример проекта доступны на странице конференции:
http://www.codesys.ru/news/conference2016

login-l
17.05.2016, 08:02
...Обратите внимание, что документ написан для CODESYS версии 3.5 SP6..

Евгений, заметил что CODESYS_3.5_SP6 отсутствует для скачивания на ftp Овен
доступны CODESYS_3.5_SP5 и CODESYS_3.5_SP7
какой нужно установить, чтобы работали примеры, рассмотренные в документе SPK_Visu_v.1.0?

Евгений Кислов
17.05.2016, 08:10
Евгений, заметил что CODESYS_3.5_SP6 отсутствует для скачивания на ftp Овен
доступны CODESYS_3.5_SP5 и CODESYS_3.5_SP7
какой нужно установить, чтобы работали примеры, рассмотренные в документе SPK_Visu_v.1.0?

Должны работать в SP7. Если возникнут проблемы - сообщайте, будем разбираться.

login-l
18.05.2016, 08:34
Евгений, сколько одновременно web-клиентов могут работать с web-визуализацией СПК-207 ?

Евгений Кислов
18.05.2016, 08:38
Евгений, сколько одновременно web-клиентов могут работать с web-визуализацией СПК-207 ?

Я бы рекомендовал ограничиться пятью веб-клиентами.

login-l
18.05.2016, 14:48
у меня есть СПК207 и ПЛК110, пытаюсь на простом примере разобраться с web-визуализацией, т.е. нажав граф.элемент "кнопка" - включить выход на ПЛК.
Скажите, можно ли для такого управления связать СПК и ПЛК по Ethernet через коммутатор или требуется их связь только по RS485 ?
Если такое соединение возможно, мог бы кто помочь и набросать пример на Codesys 3.5_SP7 для СПК207 и слэйв на Codesys 2 для ПЛК110 ?

Евгений Кислов
18.05.2016, 15:05
у меня есть СПК207 и ПЛК110, пытаюсь на простом примере разобраться с web-визуализацией, т.е. нажав граф.элемент "кнопка" - включить выход на ПЛК.
Скажите, можно ли для такого управления связать СПК и ПЛК по Ethernet через коммутатор или требуется их связь только по RS485 ?
Если такое соединение возможно, мог бы кто помочь и набросать пример на Codesys 3.5_SP7 для СПК207 и слэйв на Codesys 2 для ПЛК110 ?

В контексте web-визуализации нет никакой разницы, как связаны СПК и ПЛК - хоть по RS, хоть по Ethernet.
По поводу примера - настройка Modbus для СПК описана в документе СПК. Modbus (http://www.owen.ru/forum/showthread.php?t=23897), для ПЛК - в РП. Если возникнут какие-то дополнительные вопросы, можете задавать их в соответствующих темах.

login-l
21.05.2016, 08:03
В контексте web-визуализации нет никакой разницы, как связаны СПК и ПЛК - хоть по RS, хоть по Ethernet.
По поводу примера - настройка Modbus для СПК описана в документе СПК. Modbus (http://www.owen.ru/forum/showthread.php?t=23897), для ПЛК - в РП. Если возникнут какие-то дополнительные вопросы, можете задавать их в соответствующих темах.

Cвязал СПК и ПЛК по Ethernet через коммутатор, заметил некое подтормаживание на срабатывание нажатий кнопок визуализации, пока буду разбираться, возможно дело в коммутаторе, скажите скорость по RS485 выше чем по Ethernet?

Евгений Кислов
21.05.2016, 09:22
Cвязал СПК и ПЛК по Ethernet через коммутатор, заметил некое подтормаживание на срабатывание нажатий кнопок визуализации, пока буду разбираться, возможно дело в коммутаторе, скажите скорость по RS485 выше чем по Ethernet?

Нет, скорость по Ethernet в данном случае должна быть выше. Можете попробовать подключить СПК к ПК напрямую и с помощью эмулятора TCP Slave проверить, останется ли подтормаживание.

login-l
21.05.2016, 09:32
Ну, например:
http://www.owen.ru/projects/39217550/about

вывод текущей даты, времени сделать не сложно,
в этом примере сделали ещё вывод погоды, как это делается?

Евгений Кислов
21.05.2016, 09:44
вывод текущей даты, времени сделать не сложно,
в этом примере сделали ещё вывод погоды, как это делается?

Я не знаю, как это сделано в данном конкретном проекте, но, вероятно, считывались данные с метеостанции.

login-l
24.05.2016, 12:29
Евгений, какое максимальное количество экранов в СПК возможно?
(понятно что наполнение экранов может быть разным, но если исходить из среднего)

Евгений Кислов
24.05.2016, 12:44
Евгений, какое максимальное количество экранов в СПК возможно?
(понятно что наполнение экранов может быть разным, но если исходить из среднего)

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

Евгений Кислов
25.05.2016, 10:35
24563

Пример использования функций и ФБ библиотеки Standard в визуализации. Может быть интересно для начинающих пользователей. Предварительно требуется ознакомиться с описанием библиотеки в справке CODESYS.

Пример создан в CODESYS 3.5 SP6 и подразумевает запуск на виртуальном контроллере с таргетом 3.5.6.0. Работать с примером удобнее через web-визуализацию.

login-l
26.05.2016, 17:54
Евгений, скажите, позволяет ли WEB-визуализация выводить изображение с Web-камер?
Если да, поясните пожалуйста как это делается?

Евгений Кислов
26.05.2016, 18:25
Евгений, скажите, позволяет ли WEB-визуализация выводить изображение с Web-камер?
Если да, поясните пожалуйста как это делается?

Если можно просматривать изображение с камеры через web-страницу - то, в принципе, должно получиться с помощью элемента Web-браузер (см. п. 11.2.11).
Под рукой сейчас есть как раз подобная камера, завтра проведу эксперимент.

login-l
26.05.2016, 18:36
ещё интересно, имеется ли визуальный инструмент для работы с RGB-палитрой?
(это мне нужно для работы с RGB-светодиодной лентой, т.е. управлять её настройками)

Евгений Кислов
26.05.2016, 18:43
ещё интересно, имеется ли визуальный инструмент для работы с RGB-палитрой?
(это мне нужно для работы с RGB-светодиодной лентой, т.е. управлять её настройками)

Подобного элемента нет.

Забыл упомянуть, элемент Веб-браузер будет поддержан только на новой прошивке (пока доступна ее экспериментальная версия):
http://www.owen.ru/forum/showthread.php?t=22175

Евгений Кислов
27.05.2016, 11:55
Подобного элемента нет.

Забыл упомянуть, элемент Веб-браузер будет поддержан только на новой прошивке (пока доступна ее экспериментальная версия):
http://www.owen.ru/forum/showthread.php?t=22175

login-l, снял для вас видео с отображением изображения веб-камеры в веб-визуализации:


https://www.youtube.com/watch?v=RxQfKnlgbPs

Полноценная поддержка элемента WebBrowser планируется на следующей прошивке СПК (4.xxx).

По поводу RGB - попробуйте посмотреть пример 11.2.1, там, в принципе, есть то, что поможет помочь при решении вашей задачи.

GoodLuck
30.05.2016, 15:08
Никак не могу понять в чем проблема. В проекте есть одна визуализация и когда пытаешься переключиться с нее на главное окно, периодически происходит зависание СПК. С остальными визуализациями почему-то такого не происходит.
Единственное отличие этого экрана от других - это то, что там графических элементов больше.

Проблемная визуализация
24644

Подобные визуализации
24645 24646

VISU_TASK
24647

Евгений Кислов
30.05.2016, 15:16
Никак не могу понять в чем проблема. В проекте есть одна визуализация и когда пытаешься переключиться с нее на главное окно, периодически происходит зависание СПК. С остальными визуализациями почему-то такого не происходит.
Единственное отличие этого экрана от других - это то, что там графических элементов больше.

Проблемная визуализация
24644

Подобные визуализации
24645 24646

VISU_TASK
24647

Если есть возможность, отправьте проект на e.kislov@owen.ru - постараюсь воспроизвести проблему.

Я правильно понимаю, что в качестве основы для этого экрана (архивация на базе гистограммы) вы использовали проект, выложенный одним из пользователей?

С ним у кого-то уже возникали проблемы.
http://www.owen.ru/forum/showthread.php?t=24033

GoodLuck
30.05.2016, 15:30
Нет, это мой собственный проект, и гистограмму я не использую.

Подобный алгоритм построения архивного графика я использую еще на 11 объектах, и нигде такой проблемы не наблюдается. Правда, и столько графических элементов (пунктирных линий) нигде нет.

Евгений Кислов
16.06.2016, 09:58
Вчера состоялся релиз нового сервис-пака CODESYS 3.5 - девятого по счету.

С точки зрения визуализации произошли следующие изменения:

1. Новый графический элемент "Календарь"

Используется для задания значения переменной формата DATE. Внешний вид настраивается (фоновое изображение, выделение текущей даты, выделение выбранной даты, выделение всех остальных дат и т.д.).

24977

2. Новый графический элемент "Выбор даты-времени"

Используется для задания значения переменных формата DATE, DT, TOD, TIME, LTIME. Пользователь привязывает переменную и указывает ее формат (как в случае с %t - например, dd.MM.yyyy HH:mm:ss). Установка разрядов происходит с помощью Numpad, дату можно установить с помощью календаря, нажав стрелку (т.е., в сущности, в этот элемент встроен элемент Календарь). Внешний вид настраивается (фоновое изображение, выделение текущей даты, выделение выбранной даты, выделение всех остальных дат и т.д.).

24978 24979

3. Улучшенная работа с перечислениями

Теперь при создании перечисления можно установить галочку Поддержка списка текстов - тогда, привязав экземпляр перечисления к Комбинированному окну, мы будем видеть в нем текстовые значения перечисления, а не цифровые.

24980

4. Выбор позиции и выделение в диалогах ввода

Теперь диалоги ввода позволяют устанавливать курсор в произвольную позицию и выделять часть содержимого. Например, пользователь набрал 20 символов и хочет удалить символы 3-5 - теперь для этого не надо все удалять символы. В веб-визуализации можно двигать курсор стрелками клавиатуры.

24981

5. Использование REAL переменных для параметров вкладки Абсолютное перемещение

Может пригодиться для очень точного перемещения, вращения и масштабирования элементов.

24982


Обратите внимание, что функционал нового сервис-пака может не работать или работать некорректно на СПК - до выхода прошивки, в которой этот сервис-пак будет поддержан.

Lendl
17.06.2016, 17:19
login-l, снял для вас видео с отображением изображения веб-камеры в веб-визуализации:

Я тоже хочу вывести изображение с двух IP видеокамер на экран СПК в демонстрационных целях.
В связи с этим пара вопросов к Вам:
1. Скажите пожалуйста модель видеокамеры, которую Вы использовали в своем проекте СПК с прошивкой 4.000 (на видео ролике)?
2. Это была IP видеокамера?
Меня смущает то, что для некоторых IP видокамер необходимо предварительно устанавливать в браузер какие-то web контейнеры, чтобы увидеть изображение...
Вот поэтому и интересуюсь конкретной моделью видеокамеры, которую Вы у себя проверили или конкретными требованиями к видеокамерам, гарантирующим их совместимость с встроенным в КДС браузером.
Спасибо.

Евгений Кислов
17.06.2016, 20:18
Я тоже хочу вывести изображение с двух IP видеокамер на экран СПК в демонстрационных целях.
В связи с этим пара вопросов к Вам:
1. Скажите пожалуйста модель видеокамеры, которую Вы использовали в своем проекте СПК с прошивкой 4.000 (на видео ролике)?
2. Это была IP видеокамера?
Меня смущает то, что для некоторых IP видокамер необходимо предварительно устанавливать в браузер какие-то web контейнеры, чтобы увидеть изображение...
Вот поэтому и интересуюсь конкретной моделью видеокамеры, которую Вы у себя проверили или конкретными требованиями к видеокамерам, гарантирующим их совместимость с встроенным в КДС браузером.
Спасибо.

Использовали AverVision U70 (http://ru.presentation.aver.com/model/U70). Это не IP-камера; она была подключена по USB к ноутбуку, на котором с помощью программы WebCam7 изображение камеры транслировалось на веб-страницу. Эта веб-страница и отображалась в элементе WebBrowser. Отображать видеопоток в чистом виде в нем нельзя - обязательно нужна веб-страница.


На текущих экспериментальных прошивках (4.000 и т.д.) элемент WebBrowser работает только в веб-визуализации - на дисплее СПК картинки не будет. Планируется устранить эту проблему в официальной версии прошивки.

Lendl
17.06.2016, 22:06
Использовали AverVision U70 (http://ru.presentation.aver.com/model/U70). Это не IP-камера; она была подключена по USB к ноутбуку, на котором с помощью программы WebCam7 изображение камеры транслировалось на веб-страницу. Эта веб-страница и отображалась в элементе WebBrowser. Отображать видеопоток в чистом виде в нем нельзя - обязательно нужна веб-страница.


На текущих экспериментальных прошивках (4.000 и т.д.) элемент WebBrowser работает только в веб-визуализации - на дисплее СПК картинки не будет. Планируется устранить эту проблему в официальной версии прошивки.

Если на дисплее СПК нельзя будет отобразить веб-страницу, то смысл в поддержке этого встроенного веб-браузера пропадает, к сожалению. Надеюсь в официальной версии прошивки эта проблема будет устранена, так как это мощный инструмент для демонстрации возможностей и создания презентаций на базе СПК для его продвижения.
По-поводу видеокамеры:
Технология, описанная Вами мне понятно. Я говорил немного о другом - допустим есть IP видеокамера с встроенным веб-сервером, когда я в окно браузера ввожу IP адрес видеокамеры, то попадаю на странмцу ее встроенного веб-сервера, где и транслируется изображение.
Такая технология будет работать со встроенным в КДС браузером?

Евгений Кислов
18.06.2016, 07:59
Если на дисплее СПК нельзя будет отобразить веб-страницу, то смысл в поддержке этого встроенного веб-браузера пропадает, к сожалению. Надеюсь в официальной версии прошивки эта проблема будет устранена, так как это мощный инструмент для демонстрации возможностей и создания презентаций на базе СПК для его продвижения.
По-поводу видеокамеры:
Технология, описанная Вами мне понятно. Я говорил немного о другом - допустим есть IP видеокамера с встроенным веб-сервером, когда я в окно браузера ввожу IP адрес видеокамеры, то попадаю на странмцу ее встроенного веб-сервера, где и транслируется изображение.
Такая технология будет работать со встроенным в КДС браузером?

Да, такая технология должна работать со встроенным в КДС браузером. Вы, в принципе, можете проверить это и сейчас (при условии наличия камеры), использовав виртуальный контроллер.

Lendl
21.06.2016, 16:50
Да, такая технология должна работать со встроенным в КДС браузером. Вы, в принципе, можете проверить это и сейчас (при условии наличия камеры), использовав виртуальный контроллер.
Зачем мне виртуальный контроллер, если у меня есть СПК210[М04] с web и прошивкой 4.000
Проверил. Не работает!
1. На экране СПК210 вижу пустое окно встроенного браузера.
2. В окне обычного браузера, зайдя на страницу webvisu.htm, так же вижу пустое окно (подключался к СПК210 через браузер с другого ПК).
3. Только в среде КДС я смог увидеть видео.
Получается, что и через браузер я ничего не вижу...
В ближайшем релизе (прошивка 4.ххх) есть в планах заставить работать встроенный браузер для СПК?

Евгений Кислов
21.06.2016, 17:41
Зачем мне виртуальный контроллер, если у меня есть СПК210[М04] с web и прошивкой 4.000
Проверил. Не работает!
1. На экране СПК210 вижу пустое окно встроенного браузера.
2. В окне обычного браузера, зайдя на страницу webvisu.htm, так же вижу пустое окно (подключался к СПК210 через браузер с другого ПК).
3. Только в среде КДС я смог увидеть видео.
Получается, что и через браузер я ничего не вижу...
В ближайшем релизе (прошивка 4.ххх) есть в планах заставить работать встроенный браузер для СПК?

1. Да, на текущей прошивке так и должно быть.
2. Это странно, и такого быть не должно. Какой браузер на ПК вы использовали? Каким образом вы настраивали компонент WebBrowser в CODESYS и работали с ним? Можете выложить скриншот страницы и, желательно, ее саму тоже? (.htm или .html файл)

Да, в следующей официальной прошивке (4.ххх или выше) запланирована поддержка данного компонента.

Lendl
22.06.2016, 12:41
Какой браузер на ПК вы использовали? Каким образом вы настраивали компонент WebBrowser в CODESYS и работали с ним? Можете выложить скриншот страницы и, желательно, ее саму тоже? (.htm или .html файл)

1. Использовал браузер Firefox 47.0 (Windows 7)
2. Пример был взят из Вашего же проекта 11_2_11_Example_WebBrowser.projectarchive (из состава CodesysVisuExamples [1.0]), я лишь изменил устройство.
3. Скриншоты проекта во вложении (и ещё обратите внимание на скриншот 03, на котором экранная клавиатура перекрывается встроенным браузером - это происходит только в режиме онлайн в среде КДС, на самом экране СПК и в браузере ПК экранная клавиатура показывается нормально - но зато на них встроенный браузер не отображается).25087250882508925090

Lendl
22.06.2016, 12:44
Выкладываю архив со страницей визуализации

Евгений Кислов
22.06.2016, 12:54
По поводу перекрывания WebBrowser'ом всего остального - да, я тоже наблюдал подобную проблему.

В вашем случае, насколько я понимаю, проблема возникает на том уровне, что используемый вами адрес не содержит веб-страницы (там только IP-адрес). У меня нет уверенности, что в таком виде это будет работать даже в веб-визуализации виртуального контроллера. Так что не могу гарантировать, что новая официальная прошивка поможет решить вашу задачу.

Lendl
22.06.2016, 14:52
В вашем случае, насколько я понимаю, проблема возникает на том уровне, что используемый вами адрес не содержит веб-страницы (там только IP-адрес).

Нет, это не так. Аналогичным образом открываются (а точнее не открываются) и другие веб сайты. Например такие, как: http://mail.ru или http://www.yandex.ru - да и вообще все сайты не открываются(((

Евгений Кислов
22.06.2016, 15:05
Нет, это не так. Аналогичным образом открываются (а точнее не открываются) и другие веб сайты. Например такие, как: http://mail.ru или http://www.yandex.ru - да и вообще все сайты не открываются(((

Да, согласен - в моем примере, запущенном на СПК, эти сайты тоже не открываются. А вот, например, http://codesys.com и http://owen.ru - открываются. Мы уточним у 3S, какие требования предъявляются к веб-страницам, отображаемым в элементе.

SA104
24.06.2016, 08:13
Добрый день.
Подскажите, как решить такую проблему: При добавлении элемента Индикатор на экран загружается стрелочный прибор, а не лампочка.
Знаю, что решаемо, сам раньше как-то делал, но увы, забыл..:confused:

Евгений Кислов
24.06.2016, 08:20
Добрый день.
Подскажите, как решить такую проблему: При добавлении элемента Индикатор на экран загружается стрелочный прибор, а не лампочка.
Знаю, что решаемо, сам раньше как-то делал, но увы, забыл..:confused:

Вы, наверное, зажимаете и перетаскиваете - а надо кликом выбрать элемент на Панели элементов, а потом кликнуть на рабочее поле.

SA104
24.06.2016, 08:29
Век живи, век учись..
Спасибо, заработало.

Andrew_Stranger
08.07.2016, 12:29
На СПК110 проблема следующего плана. При попытке перехода с одной визуализации на другую "выкидывает" обратно. Проблема хаотичного характера, иногда проявляется, иногда нет. Как справиться?

Евгений Кислов
08.07.2016, 12:33
На СПК110 проблема следующего плана. При попытке перехода с одной визуализации на другую "выкидывает" обратно. Проблема хаотичного характера, иногда проявляется, иногда нет. Как справиться?

Выложите, проект, пожалуйста. Или отправьте на e.kislov@owen.ru

Евгений Кислов
11.07.2016, 09:32
На СПК110 проблема следующего плана. При попытке перехода с одной визуализации на другую "выкидывает" обратно. Проблема хаотичного характера, иногда проявляется, иногда нет. Как справиться?

Проект посмотрел. Я бы не сказал, что характер проблемы хаотический - она наблюдается после ввода пароля на стартовом экране (что приводит к переключению на ZKT_1) и последующей первой попытке перейти на другой экран. Потом все переключается нормально.

Собственно, все происходит в соответствии с вашей программой (с учетом одной тонкости):

25356

Давайте разберем ее пошагово:

8-9. Проверяем корректность введенного пароля, если введен верно - взводим бит pol12.
10-12. Запускаем таймер, чтобы через 10 секунд сбросить введенный пользователем пароль в 0 (что приведет к сбросу pol12 в FALSE).
13-15. если бит pol11 (который взводится по нажатию кнопки ОК в диалоге ввода пароля) равен TRUE и pol12 равен TRUE, то переключаемся на экран ZKT_1.

Тут, пожалуй, есть довольно неочевидный момент: pol11 после первого нажатия кнопки ОК всегда будет TRUE. В FALSE он не сбросится. Вероятно, CODESYS хочет сбросить привязанный бит после выполнения всех остальных действий, привязанных к кнопке, но одно из этих действий - Закрыть диалог. После закрытия диалога с точки зрения CODESYS уже ничего происходить не должно, поэтому переменная "залипает". Ну и, соответственно, в течение тех 10 секунд, пока не спадет pol12, программа не даст переключать экраны.

Привяжите к OnMouseDown код Service.pol11:=TRUE; , а к OnMouseUp - код Service.pol11:=FALSE; и действие Закрыть диалог (именно в таком порядке) - тогда все должно работать так, как вы задумали.

Andrew_Stranger
11.07.2016, 10:24
Спасибо за подробный ответ.

Евгений Кислов
11.07.2016, 10:27
Нет, это не так. Аналогичным образом открываются (а точнее не открываются) и другие веб сайты. Например такие, как: http://mail.ru или http://www.yandex.ru - да и вообще все сайты не открываются(((

Lendl, получили ответ по данному вопросу от разработчиков CODESYS:


Some web-sites forbid (do not allow) to be displayed in an IFrame.
The Web-Browser is an IFrame. This is why some pages work and other do not work.
We know this, but we have no influence on these websites.

Евгений Кислов
15.07.2016, 08:12
Компания ПК Пролог (http://www.prolog-plc.ru/) по запросу компании ОВЕН разработала русскоязычную клавиатуру для среды CODESYS 3.5. Клавиатура имеет переключаемую раскладку (русский/английский), переключаемый регистр (верхний/нижний) и содержит большинство востребованных спецсимволов. Обратите внимание, что клавиатура подразумевает работу с переменными типа WSTRING (и, соответственно, наличие галочки Использовать строки Unicode в установках Менеджера визуализации).

25400

Клавиатура рассчитана на использование в CODESYS версии 3.5 SP6 или выше и доступна для скачивания в CODESYS Store:
http://store.codesys.com/russian-keyboard-dialog.html

После скачивания package файл необходимо установить в CODESYS (вкладка Инструменты - Менеджер пакетов).

В проекте необходимо добавить библиотеку VisuKeyboard_En-Ru. Обратите внимание, что для использования стандартных диалогов ввода (Numpad, Keypad и т.д.) необходимо будет добавить в проект библиотеку VisuDialogs.

25401

Теперь в Менеджере визуализации и при настройке действий элементов можно выбрать соответствующий диалог ввода:

25402

Lendl
15.07.2016, 09:17
Lendl, получили ответ по данному вопросу от разработчиков CODESYS:
Получается, что дело на в КДС и не в браузере, а в конкретных веб-сайтах.
Евгений, спасибо за информацию.

Дулат
21.07.2016, 16:51
Здравствуйте! На ПЛК323 WEB, Web визуализация работает 2-3 сек, что можно сделать в настройках чтобы работало без прерывания. Пробовал изменять интервал цикличности на VISU_TASK c 20ms до 200ms работает около 3 мин, после кнопки не нажимаются на web визуализации. Что можете посоветовать?

Евгений Кислов
21.07.2016, 17:43
Здравствуйте! На ПЛК323 WEB, Web визуализация работает 2-3 сек, что можно сделать в настройках чтобы работало без прерывания. Пробовал изменять интервал цикличности на VISU_TASK c 20ms до 200ms работает около 3 мин, после кнопки не нажимаются на web визуализации. Что можете посоветовать?

Выложите, пожалуйста, архив проекта.

Дулат
21.07.2016, 19:39
Мой проект, надеюсь что-нибудь получится придумать.

Евгений Кислов
22.07.2016, 07:28
Мой проект, надеюсь что-нибудь получится придумать.

Нужен именно архив проекта (файл формата .projectarchive). В CODESYS в меню Файл выберите Архив проекта - Сохранить Архив.

slonegd
08.08.2016, 11:31
Как получить POINTER TO VisuStructClientData?
IvisualElement.GetClientData() выводит СПК в исключение.
Может его где-то в особом месте прописывать надо? Пробовал при нажатии на кнопки визуализации выполнить ст код. Всё равно исключение. В этой теме было несколько сообщений с функциями, где этот поинтер используется, а вот как его получить не нашел.
Пользователя пустого (none) создал.

Евгений Кислов
08.08.2016, 11:40
Как получить POINTER TO VisuStructClientData?
IvisualElement.GetClientData() выводит СПК в исключение.
Может его где-то в особом месте прописывать надо? Пробовал при нажатии на кнопки визуализации выполнить ст код. Всё равно исключение. В этой теме было несколько сообщений с функциями, где этот поинтер используется, а вот как его получить не нашел.
Пользователя пустого (none) создал.

А чего вы хотите в результате добиться?

slonegd
08.08.2016, 11:49
хочу открыть диалог из тела программы, а не из свойства элемента визуализации. Наткнулся в помощи на раздел "Диалоги ввода", там есть пример, с ним всё понятно, кроме этого указателя.

Евгений Кислов
08.08.2016, 12:10
хочу открыть диалог из тела программы, а не из свойства элемента визуализации. Наткнулся в помощи на раздел "Диалоги ввода", там есть пример, с ним всё понятно, кроме этого указателя.

Посмотрите п. 11.4.5 из документа.

Насколько я помню, с примером из справки имеются проблемы, в частности, он написан под какую-то конкретную версию CODESYS и может не работать в остальных.

В целом, сейчас нет приемлемого для обычных пользователей механизма работы с диалогами из кода.

slonegd
08.08.2016, 16:16
Сделал по пункту, указатель появился, и даже GetDialogManager() сработал, а вот на шаге GetDialog() всё время 0 выдает и потому функция из примера действительно не работает. И в репозитарии этот GetDialog() не находиться, чтоб посмотреть что про него там написано. Жаль, теперь придется городить кучу кнопок с невидимостью, чтоб реализовать, что задумал.

RV9WFJ
09.08.2016, 04:43
Вместо диалога фрейм используйте и все. Главное не увлечься - количество вложенности фреймов ограничено.

Трофимов Роман
14.08.2016, 12:15
Всё делаю как в инструкции, создал нового пользователя в группе Админ, дал ему короткое имя и пароль, сделал функцию на переход в другую визуализацию после авторизации, НО у меня не получается авторизоваться, не пойму что сделать нужно, пишу логин и пароль, жму ОК и ничего не происходит.

Проблема уже всплывала на форуме, а ответа на него нет...
Кроме того, скачал Пример Example_UserManagment, при вводе пароля пишет что User Managment файл не найден.

Евгений Кислов
14.08.2016, 12:32
Всё делаю как в инструкции, создал нового пользователя в группе Админ, дал ему короткое имя и пароль, сделал функцию на переход в другую визуализацию после авторизации, НО у меня не получается авторизоваться, не пойму что сделать нужно, пишу логин и пароль, жму ОК и ничего не происходит.

Проблема уже всплывала на форуме, а ответа на него нет...
Кроме того, скачал Пример Example_UserManagment, при вводе пароля пишет что User Managment файл не найден.

По всей видимости, вы не загружаете файлы User Managment'а при загрузке проекта (см. скриншот).

25803

Arimon
15.08.2016, 15:54
Добрый вечер! Год почти не заходил. Появились всё-таки обещанные прошивки на СПК1ХХ с поддержкой трендов?

Евгений Кислов
15.08.2016, 15:55
Добрый вечер! Год почти не заходил. Появились всё-таки обещанные прошивки на СПК1ХХ с поддержкой трендов?

Добрый вечер. Нет, еще не появились.

Arimon
15.08.2016, 16:40
Добрый вечер. Нет, еще не появились.

А на каких СПК есть точная возможность реализовать визуализацию? Вопрос перехода на отечественные ПЛК/СПК актуален до сих пор, но нужны тренды.

Евгений Кислов
15.08.2016, 20:56
А на каких СПК есть точная возможность реализовать визуализацию? Вопрос перехода на отечественные ПЛК/СПК актуален до сих пор, но нужны тренды.

В данный момент в заводских прошивках всех моделей СПК поддержка трендов отсутствует.

Для СПК207 есть экспериментальная прошивка с поддержкой трендов:
http://www.owen.ru/forum/showthread.php?t=22175

Также тренды доступны на панелях оператора СП3xx:
http://www.owen.ru/catalog/sensornie_paneli_operatora_oven_sp3xx/38711838

Arimon
16.08.2016, 08:46
В данный момент в заводских прошивках всех моделей СПК поддержка трендов отсутствует.

Для СПК207 есть экспериментальная прошивка с поддержкой трендов:
http://www.owen.ru/forum/showthread.php?t=22175

Также тренды доступны на панелях оператора СП3xx:
http://www.owen.ru/catalog/sensornie_paneli_operatora_oven_sp3xx/38711838

Так для СП3хх уже заводская поддержка или просто к нему тоже подходит экспериментальная прошивка?

Евгений Кислов
16.08.2016, 09:02
Так для СП3хх уже заводская поддержка или просто к нему тоже подходит экспериментальная прошивка?

СП3xx - это панель оператора, принципиально другое устройство, никак не связанное с линейкой СПК. На нем - заводская поддержка трендов.

RA.
01.09.2016, 22:58
Доброй ночи.
CoDeSys 3.5 SP5 Patch5
Столкнулся с такой непоняткой:
Когда привязываю "текстовую переменную" из локальных переменных POU, при компиляции ошибка:


FC051_11_a [Device: Plc Logic: Application](ID элемента 53): C0032: Невозможно конвертировать тип 'Неизвестный тип: 'ADR(FC051_11.ssss)'' в тип 'POINTER TO DWORD'

когда использую глобальную (GVL) переменную или канал ФБ - ошибки нет.

Скажите это правильное поведение? или бага?
Вроде локальные на то и локальные, что только для одного своего POU, но тогда смущает сама ошибка, что именно проблема в конвертации типов.

Евгений Кислов
02.09.2016, 07:21
Доброй ночи.
CoDeSys 3.5 SP5 Patch5
Столкнулся с такой непоняткой:
Когда привязываю "текстовую переменную" из локальных переменных POU, при компиляции ошибка:



когда использую глобальную (GVL) переменную или канал ФБ - ошибки нет.

Скажите это правильное поведение? или бага?
Вроде локальные на то и локальные, что только для одного своего POU, но тогда смущает сама ошибка, что именно проблема в конвертации типов.

Выложите, пожалуйста, скриншоты объявления и привязки локальной переменной.

RA.
02.09.2016, 08:57
а Вы случайно не в окне объявлений пишите ADR(что_то_там)?

откуда ADR. берется непонятно. переменную выбираю через асссистент ввода


Выложите, пожалуйста, скриншоты объявления и привязки локальной переменной.



PROGRAM FC051_11
VAR
MotorM_11: Motor_Meas;
ssss:REAL;
END_VAR

VAR RETAIN

END_VAR

26128

Евгений Кислов
02.09.2016, 09:16
откуда ADR. берется непонятно. переменную выбираю через асссистент ввода






26128

Не удалось воспроизвести проблему. Отправьте, пожалуйста, архив вашего проекта мне на почту.

RA.
02.09.2016, 09:40
Не удалось воспроизвести проблему. Отправьте, пожалуйста, архив вашего проекта мне на почту.

отправил на почту

Grampus
02.09.2016, 12:06
а можно сделать для СПК207 простую визуализацию на CoDeSys v2.3 ?

Grampus
02.09.2016, 12:07
если нет в наличии СПК, можно ли где то промоделировать работу и сделать визуализацию?

Евгений Кислов
02.09.2016, 12:09
а можно сделать для СПК207 простую визуализацию на CoDeSys v2.3 ?

Нет.


если нет в наличии СПК, можно ли где то промоделировать работу и сделать визуализацию?

Да, на виртуальном контроллере. Примеры в документе сделаны как раз для него. См. п. 11.1.

RA.
02.09.2016, 15:43
Есть еще вопрос. Теперь по использованию фреймов.
- как понял можно использовать во фрейме одну Визуализацию, но с привязкой различных переменных к переменным этого визуализации. - с этим все понятно.

- возможно ли сделать тоже самое, но с использованием на кадре (который отображаем во фрейме) элемента "набор вкладок", на которых расположены другие визуализации??
- если да, то как привязываться к переменным дочерних визуализаций, которые отображаются на вкладках? в лоб у меня сразу не получилось - в свойствах фрейма доступны только переменные выбранного кадра (на котором располагается набор вкладок) а использовать переменные кадра на других тоже нельзя. есть ли обходные пути?

- еще не очень понял с управлением фреймами. где (по отношению ко фрейму) должны располагаться управляющие им элементы? будут ли корректно работать несколько фреймов на одной визуализации?

Евгений Кислов
02.09.2016, 16:00
Есть еще вопрос. Теперь по использованию фреймов.
- как понял можно использовать во фрейме одну Визуализацию, но с привязкой различных переменных к переменным этого визуализации. - с этим все понятно.

- возможно ли сделать тоже самое, но с использованием на кадре (который отображаем во фрейме) элемента "набор вкладок", на которых расположены другие визуализации??
- если да, то как привязываться к переменным дочерних визуализаций, которые отображаются на вкладках? в лоб у меня сразу не получилось - в свойствах фрейма доступны только переменные выбранного кадра (на котором располагается набор вкладок) а использовать переменные кадра на других тоже нельзя. есть ли обходные пути?

- еще не очень понял с управлением фреймами. где (по отношению ко фрейму) должны располагаться управляющие им элементы? будут ли корректно работать несколько фреймов на одной визуализации?

Элементы, управляющие фреймом, традиционно размещаются за пределами фрейма.

По поводу вложенных фреймов - насколько я помню, это возможно, но методику действий сходу подсказать не могу. Я проработаю этот вопрос в понедельник и отпишусь.

RA.
02.09.2016, 16:30
вот примерно такая задумка:

http://www.owen.ru/forum/attachment.php?attachmentid=26144&d=1472823047

26144

Евгений Кислов
02.09.2016, 18:23
На всякий случай, уточню - вы уверены, что хотите именно этого? Складывается впечатление, что для вашей задачи достаточно только элемента Набор вкладок. Вкладки, кстати, можно переключать, нажимая на их названия - как в браузере.

Или вложенность фреймов действительно необходима? Это может понадобиться, например, когда у вас сложная древовидная структура визуализаций с несколькими шаблонами экранов - ваша задача сводится к этому?

Эдуард_Н
02.09.2016, 19:48
Может лучше воспользоваться универсальным диалогом?
http://www.owen.ru/forum/showthread.php?t=15530&page=75&p=206247&viewfull=1#post206247

RA.
02.09.2016, 21:55
Спасибо. Похоже универсальный диалог - может то что мне и нужно.

А так на словах что хочу получить:
- есть N штук устройств (частотных приводов) абсолютно одинаковых
- все данные с них на экран разом не поместятся, да и логичнее разделить: управление/измерения/уставки/.. - для этой цели вкладки самое то.

И в задумке сделать один экран общий для устройства, на котором и будут размещены вкладки - "дочерние" кадры визуализации

Вот и хочется заиметь в идеале 1 общую + 3(4 - 5) визуализация для вкалдок на весь проект, а не тиражировать этот набор визуализаций в N экземплярах

PS: ну или может что-то типа tag-prefix как у WinCC. чтобы графику привязать к шаблонам переменных, а при открытии подставлять в него конкретный индекс устройства:

В визуализации привязываемся к переменной типа "FC_Freq_XX" а при открытии кадра подставляем вместо ХХ 01, 02, NN.

Евгений Кислов
02.09.2016, 22:39
Спасибо. Похоже универсальный диалог - может то что мне и нужно.

А так на словах что хочу получить:
- есть N штук устройств (частотных приводов) абсолютно одинаковых
- все данные с них на экран разом не поместятся, да и логичнее разделить: управление/измерения/уставки/.. - для этой цели вкладки самое то.

И в задумке сделать один экран общий для устройства, на котором и будут размещены вкладки - "дочерние" кадры визуализации

Вот и хочется заиметь в идеале 1 общую + 3(4 - 5) визуализация для вкалдок на весь проект, а не тиражировать этот набор визуализаций в N экземплярах

PS: ну или может что-то типа tag-prefix как у WinCC. чтобы графику привязать к шаблонам переменных, а при открытии подставлять в него конкретный индекс устройства:

В визуализации привязываемся к переменной типа "FC_Freq_XX" а при открытии кадра подставляем вместо ХХ 01, 02, NN.

Вот пример с вложенными фреймами, который дословно соответствует вашей задаче. Создан в 3.5 SP7 Patch3.

RA.
02.09.2016, 23:09
Вот пример с вложенными фреймами, который дословно соответствует вашей задаче. Создан в 3.5 SP7 Patch3.

Спасибо,

а на СПК107 CDS 3.5-7-3 пойдет? после изучения совместимостей, прошивок, таргетов, CDS в голове сложилось мнение что для текущей версии СПК1xx-ого - использовать cds 3.5 -5 -5.

Евгений Кислов
02.09.2016, 23:12
Спасибо,

а на СПК107 CDS 3.5-7-3 пойдет? после изучения совместимостей, прошивок, таргетов, CDS в голове сложилось мнение что для текущей версии СПК1xx-ого - использовать cds 3.5 -5 -5.

Да, все верно, для СПК лучше использовать 3.5 SP5 Patch5. Я создавал проект в той версии, которая была на домашнем ПК.

RA.
02.09.2016, 23:20
Да, все верно, для СПК лучше использовать 3.5 SP5 Patch5. Я создавал проект в той версии, которая была на домашнем ПК.

в пятницу, почти в полночь, из дома - на рабочие вопросы отвечать - прямо за гранью добра и зла ))) с такой техподдержкой - даже как-то спокойнее стало за продукцию Owen
если не затруднит - можно экспортировать проект с указанием предшествующей версии cds. но можно и до понедельника - у меня сейчас инет сродни диал-апа
еще раз большое спасибо!

Евгений Кислов
02.09.2016, 23:29
в пятницу, почти в полночь, из дома - на рабочие вопросы отвечать - прямо за гранью добра и зла ))) с такой техподдержкой - даже как-то спокойнее стало за продукцию Owen
если не затруднит - можно экспортировать проект с указанием предшествующей версии cds. но можно и до понедельника - у меня сейчас инет сродни диал-апа
еще раз большое спасибо!

Пересохранил, должно открываться в SP5 Patch5.
Upd. - http://www.owen.ru/forum/showthread.php?t=22038&p=219289&viewfull=1#post219289

Эдуард_Н
03.09.2016, 04:42
Интересное решение, возьму на заметку.:) Пересохранил, а то ругался что создан в сп7. Чуть-чуть изменил, дабы можно было изменять переменные.

RV9WFJ
03.09.2016, 04:52
По вложенности фреймов в CS есть проблема. После 3х фреймов вложенных друг в друга картинка сыпаться начинает. В остальном супер инструмент. Использую по несколько десятков фреймов в проекте. Универсальный диалог не нравится так как сильно тормозит (тормозил раньше, потом перестал его использовать.)

Евгений Кислов
03.09.2016, 08:05
По вложенности фреймов в CS есть проблема. После 3х фреймов вложенных друг в друга картинка сыпаться начинает. В остальном супер инструмент. Использую по несколько десятков фреймов в проекте. Универсальный диалог не нравится так как сильно тормозит (тормозил раньше, потом перестал его использовать.)

Это действительно так. В баг-трекере 3S есть сообщения об утечках памяти при использования фреймов, последний раз оптимизация проводилась при подготовке SP9.

RA.
03.09.2016, 13:38
Пересохранил, должно открываться в SP5 Patch5.
Upd. - http://www.owen.ru/forum/showthread.php?t=22038&p=219289&viewfull=1#post219289


Интересное решение, возьму на заметку.:) Пересохранил, а то ругался что создан в сп7. Чуть-чуть изменил, дабы можно было изменять переменные.

Спасибо, действительно то что нужно.
но сразу появился вопрос - а не пострадает ли быстродействие при такой тройной трансляции переменных?

RA.
03.09.2016, 15:10
Проверил работает! ) И как понял привязка переменных к переменным визуалаизации при добавлении на фрейм или набор вкладок автоматически двухсторонняя, т.е. идет как трансляция значений из GVL > фрейм > вкладка, так и запись значений из экземпляра фрейма в конкретную GVL.

А почему визуализации с добавленными переменными (VAR IN OUT) пропадают из менеджера визуализаций,

http://www.owen.ru/forum/attachment.php?attachmentid=26150&d=1472904597
т.е. я не могу теперь просто открыть кадр действием "переключить отображаемую визуализацию" - на такие привязки компилятор выдает ошибки.

Евгений Кислов
03.09.2016, 15:31
Потому что такая визуализация становится "вложенной", ее входы и выходы (в данном случае - VAR IN_OUT) должны быть сцеплены с какими-то переменными. Эта сцепка производится в настройках элемента Фрейм или в настройках вызова диалога, а при попытке перехода с кнопки ее (сцепки), естественно, не происходит.

Можно провести следующую аналогию:

- экран визуализации - программа
- экран фрейма/диалога (с интерфейсом) - функциональный блок

Нельзя привязать ФБ к задаче, но можно вызвать его из программы. Также и с визуализациями.

RA.
03.09.2016, 17:30
Все понял. Ну для моих целей хватило использования локальных переменных визуализации. VAR...END_VAR

RA.
07.09.2016, 20:42
Это действительно так. В баг-трекере 3S есть сообщения об утечках памяти при использования фреймов, последний раз оптимизация проводилась при подготовке SP9.
а подробности можно?
т.е на спк107 с кдс-3,5-5-5 лучше не оставлять кадры с фреймами в режиме 24/7 ?
при переключении визуализаций - память не сбрасывается??

Евгений Кислов
08.09.2016, 07:26
а подробности можно?
т.е на спк107 с кдс-3,5-5-5 лучше не оставлять кадры с фреймами в режиме 24/7 ?
при переключении визуализаций - память не сбрасывается??

Можно посоветовать ограничить число фреймов (особенно вложенных) в проекте, но, к сожалению, какое-то конкретное число назвать практически невозможно. В целом, можно сказать, что СПК1xx не подразумевает создание каких-то сложных визуализаций в значительном количестве - для этих целей лучше подойдет СПК207.

RV9WFJ
08.09.2016, 08:02
Я могу по своей практике сказать что до 3х вложенных работает нормально. И количество их никак не влияет. А вот 4й уровень сразу все "валит".
P.S. Больше двух лет все делаю только на фреймах.

RA.
08.09.2016, 08:31
Можно посоветовать ограничить число фреймов (особенно вложенных) в проекте, но, к сожалению, какое-то конкретное число назвать практически невозможно. В целом, можно сказать, что СПК1xx не подразумевает создание каких-то сложных визуализаций в значительном количестве - для этих целей лучше подойдет СПК207.

А что подразумевается под сложными визуализациями? где та грань между 1xx и 2хх ?
как-то количественно оценить можно? например: сколько обновляемых переменных на кадре, общее кол-во визуализаций, и т.д. или тут речь больше про использование изображений для анимации и вложенности фреймов?

Евгений Кислов
08.09.2016, 08:54
А что подразумевается под сложными визуализациями? где та грань между 1xx и 2хх ?
как-то количественно оценить можно? например: сколько обновляемых переменных на кадре, общее кол-во визуализаций, и т.д. или тут речь больше про использование изображений для анимации и вложенности фреймов?

Очень сложно как-то оценить эти показатели количественно. Насколько я знаю, у 3S есть бенчмарк - я попробую в ближайшие дни запустить его на СПК1xx и СПК2xx [M04] - и выложить результаты.

RA.
08.09.2016, 08:58
Ну понятно. Думал может по опыту работы сформировались какие-то явные ограничения что можно делать, а что лучше исключить/упростить

Можно будет скинуть свой проект? так сказать на нормоконтроль, проверить на адекватность и жизнепригодность используемых мной решений

Евгений Кислов
08.09.2016, 09:00
Ну понятно. Думал может по опыту работы сформировались какие-то явные ограничения что можно делать, а что лучше исключить/упростить

Можно будет скинуть свой проект? так сказать на нормоконтроль, проверить на адекватность и жизнепригодность используемых мной решений

Можете отправить на почту. Явные ограничения приведены в документе, п. 12.

Евгений Кислов
08.09.2016, 09:46
Возможно, кому-то будет интересно - результаты бенчмарка визуализации (предоставлен 3S) для контроллеров СПК110 (прошивка 3.948) и СПК207 [M04] (прошивка 3.954).



--- Visu-Benchmark Result ---

Target: Id 371720304 Type 4096 Version 3.5.4.0
Visu-Version: 3.5.3.40
Benchmark-Version: 1.1.0.0
Test at: 2016-9-8-10_17
Platform-Details: !!! TODO Fill manually !!!
Overall-Result: 18.63048

Initialization (ms): Total: 190.842 Loading texts: 35.265

Test (all values in ms) Avg Min Max
-----------------------------------------------------------------------------------------------
Rectangles, Visu-Cycle 12.132 0.355 67.797
Rectangles, Paint 196.956 166.359 341.589
Rectangles, Paint screen 18.799 16.294 62.827
Gradients, Visu-Cycle 1.220 0.306 20.090
Gradients, Paint 2077.550 2060.268 2130.192
Gradients, Paint screen 15.785 12.724 22.902
Polygons, Visu-Cycle 14.470 0.308 89.311
Polygons, Paint 255.431 179.573 2108.595
Polygons, Paint screen 21.104 12.729 38.655
Texts, Visu-Cycle 8.157 0.355 78.897
Texts, Paint 582.463 542.286 617.976
Texts, Paint screen 22.771 16.553 38.306
Frame with scaled Rectangles, Visu-Cycle 24.758 0.338 130.568
Frame with scaled Rectangles, Paint 191.123 175.326 242.823
Frame with scaled Rectangles, Paint screen 21.229 16.547 72.658
Frame with scaled Texts, Visu-Cycle 9.991 0.355 128.990
Frame with scaled Texts, Paint 555.808 517.651 584.413
Frame with scaled Texts, Paint screen 25.072 16.861 84.479
Images unscaled, Visu-Cycle 6.514 0.354 55.725
Images unscaled, Paint 196.054 158.810 253.600
Images unscaled, Paint screen 17.994 16.570 23.397
Images scaled, Visu-Cycle 4.577 0.366 39.146
Images scaled, Paint 164.035 149.857 217.398
Images scaled, Paint screen 19.089 16.664 63.676
Images scaled SVG, Visu-Cycle 5.036 0.354 44.014
Images scaled SVG, Paint 161.809 148.390 212.954
Images scaled SVG, Paint screen 22.000 16.777 73.669
Images transparently, Visu-Cycle 4.642 0.352 31.722
Images transparently, Paint 373.524 343.749 418.818
Images transparently, Paint screen 18.394 16.567 23.998
Meters, Visu-Cycle 19.851 0.353 116.396
Meters, Paint 238.857 209.012 286.864
Meters, Paint screen 2.152 1.369 7.188
Table, Visu-Cycle 13.746 0.355 185.186
Table, Paint 990.796 947.143 1001.086
Table, Paint screen 19.390 16.829 26.931
Button reaction, Reaction 166.422 141.170 208.129
Switch Visu reaction, Reaction 347.692 273.779 398.456
Keypad reaction, Reaction 285.843 109.898 929.965

Test 0: Rectangles
Visu-Task-Load (%): 12.131914
Visu-Cycle (ms): Num 102 Avg: 12.132 StdDeriv: 17.927 Min: 0.355 Max: 67.797
Painting (ms): Num: 33 Avg: 196.956 StdDeriv: 37.904 Min: 166.359 Max: 341.589
Painting to screen (ms): Num: 33 Avg: 18.799 StdDeriv: 8.119 Min: 16.294 Max: 62.827

Test 1: Gradients
Visu-Task-Load (%): 1.220013
Visu-Cycle (ms): Num 102 Avg: 1.220 StdDeriv: 3.191 Min: 0.306 Max: 20.090
Painting (ms): Num: 5 Avg: 2077.550 StdDeriv: 29.719 Min: 2060.268 Max: 2130.192
Painting to screen (ms): Num: 5 Avg: 15.785 StdDeriv: 4.136 Min: 12.724 Max: 22.902

Test 2: Polygons
Visu-Task-Load (%): 14.326741
Visu-Cycle (ms): Num 101 Avg: 14.470 StdDeriv: 22.036 Min: 0.308 Max: 89.311
Painting (ms): Num: 32 Avg: 255.431 StdDeriv: 339.105 Min: 179.573 Max: 2108.595
Painting to screen (ms): Num: 32 Avg: 21.104 StdDeriv: 7.390 Min: 12.729 Max: 38.655

Test 3: Texts
Visu-Task-Load (%): 8.157109
Visu-Cycle (ms): Num 102 Avg: 8.157 StdDeriv: 19.116 Min: 0.355 Max: 78.897
Painting (ms): Num: 15 Avg: 582.463 StdDeriv: 32.350 Min: 542.286 Max: 617.976
Painting to screen (ms): Num: 16 Avg: 22.771 StdDeriv: 8.080 Min: 16.553 Max: 38.306

Test 4: Frame with scaled Rectangles
Visu-Task-Load (%): 24.02285
Visu-Cycle (ms): Num 99 Avg: 24.758 StdDeriv: 36.196 Min: 0.338 Max: 130.568
Painting (ms): Num: 32 Avg: 191.123 StdDeriv: 21.834 Min: 175.326 Max: 242.823
Painting to screen (ms): Num: 32 Avg: 21.229 StdDeriv: 12.173 Min: 16.547 Max: 72.658

Test 5: Frame with scaled Texts
Visu-Task-Load (%): 9.892171
Visu-Cycle (ms): Num 101 Avg: 9.991 StdDeriv: 23.732 Min: 0.355 Max: 128.990
Painting (ms): Num: 15 Avg: 555.808 StdDeriv: 26.730 Min: 517.651 Max: 584.413
Painting to screen (ms): Num: 15 Avg: 25.072 StdDeriv: 17.334 Min: 16.861 Max: 84.479

Test 6: Images unscaled
Visu-Task-Load (%): 6.514063
Visu-Cycle (ms): Num 102 Avg: 6.514 StdDeriv: 10.190 Min: 0.354 Max: 55.725
Painting (ms): Num: 34 Avg: 196.054 StdDeriv: 26.872 Min: 158.810 Max: 253.600
Painting to screen (ms): Num: 34 Avg: 17.994 StdDeriv: 1.459 Min: 16.570 Max: 23.397

Test 7: Images scaled
Visu-Task-Load (%): 4.577055
Visu-Cycle (ms): Num 102 Avg: 4.577 StdDeriv: 6.744 Min: 0.366 Max: 39.146
Painting (ms): Num: 34 Avg: 164.035 StdDeriv: 20.566 Min: 149.857 Max: 217.398
Painting to screen (ms): Num: 34 Avg: 19.089 StdDeriv: 7.948 Min: 16.664 Max: 63.676

Test 8: Images scaled SVG
Visu-Task-Load (%): 5.036053
Visu-Cycle (ms): Num 102 Avg: 5.036 StdDeriv: 7.959 Min: 0.354 Max: 44.014
Painting (ms): Num: 35 Avg: 161.809 StdDeriv: 15.978 Min: 148.390 Max: 212.954
Painting to screen (ms): Num: 35 Avg: 22.000 StdDeriv: 13.610 Min: 16.777 Max: 73.669

Test 9: Images transparently
Visu-Task-Load (%): 4.642041
Visu-Cycle (ms): Num 102 Avg: 4.642 StdDeriv: 8.277 Min: 0.352 Max: 31.722
Painting (ms): Num: 23 Avg: 373.524 StdDeriv: 26.917 Min: 343.749 Max: 418.818
Painting to screen (ms): Num: 23 Avg: 18.394 StdDeriv: 2.469 Min: 16.567 Max: 23.998

Test 10: Meters
Visu-Task-Load (%): 19.65466
Visu-Cycle (ms): Num 101 Avg: 19.851 StdDeriv: 30.559 Min: 0.353 Max: 116.396
Painting (ms): Num: 30 Avg: 238.857 StdDeriv: 21.423 Min: 209.012 Max: 286.864
Painting to screen (ms): Num: 30 Avg: 2.152 StdDeriv: 1.116 Min: 1.369 Max: 7.188

Test 11: Table
Visu-Task-Load (%): 12.657327
Visu-Cycle (ms): Num 94 Avg: 13.746 StdDeriv: 44.053 Min: 0.355 Max: 185.186
Painting (ms): Num: 8 Avg: 990.796 StdDeriv: 17.960 Min: 947.143 Max: 1001.086
Painting to screen (ms): Num: 8 Avg: 19.390 StdDeriv: 3.561 Min: 16.829 Max: 26.931

Test 12: Button reaction
Reaction-Time (ms): Num: 8 Avg: 166.422 StdDeriv: 23.569 Min: 141.170 Max: 208.129
Painting to screen (ms): Num: 15 Avg: 0.653 StdDeriv: 0.184 Min: 0.476 Max: 1.292

Test 13: Switch Visu reaction
Reaction-Time (ms): Num: 19 Avg: 347.692 StdDeriv: 35.497 Min: 273.779 Max: 398.456
Painting to screen (ms): Num: 19 Avg: 17.650 StdDeriv: 1.674 Min: 16.106 Max: 22.869

Test 14: Keypad reaction
Reaction-Time (ms): Num: 7 Avg: 285.843 StdDeriv: 285.860 Min: 109.898 Max: 929.965
Painting to screen (ms): Num: 34 Avg: 1.211 StdDeriv: 1.779 Min: 0.435 Max: 10.947



--- Visu-Benchmark Result ---

Target: Id 371720196 Type 4096 Version 3.5.4.0
Visu-Version: 3.5.3.40
Benchmark-Version: 1.1.0.0
Test at: 2016-9-8-9_29
Platform-Details: !!! TODO Fill manually !!!
Overall-Result: 5.347959

Initialization (ms): Total: 65.675 Loading texts: 8.641

Test (all values in ms) Avg Min Max
-----------------------------------------------------------------------------------------------
Rectangles, Visu-Cycle 4.572 0.156 15.493
Rectangles, Paint 45.385 43.372 48.709
Rectangles, Paint screen 4.906 4.497 6.623
Gradients, Visu-Cycle 2.400 0.232 5.811
Gradients, Paint 65.970 62.182 69.470
Gradients, Paint screen 3.359 2.658 4.495
Polygons, Visu-Cycle 4.113 0.149 14.235
Polygons, Paint 53.913 52.468 56.471
Polygons, Paint screen 5.158 4.399 6.815
Texts, Visu-Cycle 4.612 0.195 15.123
Texts, Paint 196.687 191.394 201.913
Texts, Paint screen 5.070 4.500 6.576
Frame with scaled Rectangles, Visu-Cycle 7.590 0.161 24.631
Frame with scaled Rectangles, Paint 44.160 42.716 47.231
Frame with scaled Rectangles, Paint screen 5.272 4.457 7.353
Frame with scaled Texts, Visu-Cycle 5.886 0.197 20.236
Frame with scaled Texts, Paint 189.896 182.338 195.936
Frame with scaled Texts, Paint screen 5.004 4.510 6.137
Images unscaled, Visu-Cycle 2.556 0.229 6.365
Images unscaled, Paint 29.123 27.828 35.288
Images unscaled, Paint screen 5.017 4.500 6.287
Images scaled, Visu-Cycle 1.892 0.231 4.242
Images scaled, Paint 48.311 46.165 52.756
Images scaled, Paint screen 5.259 4.494 7.042
Images scaled SVG, Visu-Cycle 1.912 0.235 5.260
Images scaled SVG, Paint 50.789 48.725 54.795
Images scaled SVG, Paint screen 5.127 4.476 7.613
Images transparently, Visu-Cycle 2.751 0.201 6.655
Images transparently, Paint 91.727 88.273 97.380
Images transparently, Paint screen 5.427 4.471 6.386
Meters, Visu-Cycle 4.834 0.156 16.235
Meters, Paint 55.393 49.312 64.379
Meters, Paint screen 0.748 0.431 1.602
Table, Visu-Cycle 9.112 0.198 38.583
Table, Paint 273.194 266.468 279.511
Table, Paint screen 5.167 4.483 6.647
Button reaction, Reaction 127.369 37.384 195.472
Switch Visu reaction, Reaction 279.613 225.064 318.225
Keypad reaction, Reaction 169.725 82.980 262.290

Test 0: Rectangles
Visu-Task-Load (%): 4.571995
Visu-Cycle (ms): Num 102 Avg: 4.572 StdDeriv: 6.186 Min: 0.156 Max: 15.493
Painting (ms): Num: 34 Avg: 45.385 StdDeriv: 1.737 Min: 43.372 Max: 48.709
Painting to screen (ms): Num: 34 Avg: 4.906 StdDeriv: 0.484 Min: 4.497 Max: 6.623

Test 1: Gradients
Visu-Task-Load (%): 2.399998
Visu-Cycle (ms): Num 102 Avg: 2.400 StdDeriv: 2.173 Min: 0.232 Max: 5.811
Painting (ms): Num: 51 Avg: 65.970 StdDeriv: 1.892 Min: 62.182 Max: 69.470
Painting to screen (ms): Num: 51 Avg: 3.359 StdDeriv: 0.544 Min: 2.658 Max: 4.495

Test 2: Polygons
Visu-Task-Load (%): 4.113021
Visu-Cycle (ms): Num 102 Avg: 4.113 StdDeriv: 5.555 Min: 0.149 Max: 14.235
Painting (ms): Num: 34 Avg: 53.913 StdDeriv: 1.127 Min: 52.468 Max: 56.471
Painting to screen (ms): Num: 34 Avg: 5.158 StdDeriv: 0.478 Min: 4.399 Max: 6.815

Test 3: Texts
Visu-Task-Load (%): 4.612056
Visu-Cycle (ms): Num 102 Avg: 4.612 StdDeriv: 6.260 Min: 0.195 Max: 15.123
Painting (ms): Num: 34 Avg: 196.687 StdDeriv: 2.382 Min: 191.394 Max: 201.913
Painting to screen (ms): Num: 34 Avg: 5.070 StdDeriv: 0.496 Min: 4.500 Max: 6.576

Test 4: Frame with scaled Rectangles
Visu-Task-Load (%): 7.589998
Visu-Cycle (ms): Num 102 Avg: 7.590 StdDeriv: 10.493 Min: 0.161 Max: 24.631
Painting (ms): Num: 34 Avg: 44.160 StdDeriv: 1.239 Min: 42.716 Max: 47.231
Painting to screen (ms): Num: 34 Avg: 5.272 StdDeriv: 0.543 Min: 4.457 Max: 7.353

Test 5: Frame with scaled Texts
Visu-Task-Load (%): 5.886038
Visu-Cycle (ms): Num 102 Avg: 5.886 StdDeriv: 8.054 Min: 0.197 Max: 20.236
Painting (ms): Num: 34 Avg: 189.896 StdDeriv: 2.815 Min: 182.338 Max: 195.936
Painting to screen (ms): Num: 34 Avg: 5.004 StdDeriv: 0.455 Min: 4.510 Max: 6.137

Test 6: Images unscaled
Visu-Task-Load (%): 2.556
Visu-Cycle (ms): Num 102 Avg: 2.556 StdDeriv: 2.335 Min: 0.229 Max: 6.365
Painting (ms): Num: 51 Avg: 29.123 StdDeriv: 1.415 Min: 27.828 Max: 35.288
Painting to screen (ms): Num: 51 Avg: 5.017 StdDeriv: 0.364 Min: 4.500 Max: 6.287

Test 7: Images scaled
Visu-Task-Load (%): 1.892015
Visu-Cycle (ms): Num 102 Avg: 1.892 StdDeriv: 1.663 Min: 0.231 Max: 4.242
Painting (ms): Num: 51 Avg: 48.311 StdDeriv: 1.613 Min: 46.165 Max: 52.756
Painting to screen (ms): Num: 51 Avg: 5.259 StdDeriv: 0.386 Min: 4.494 Max: 7.042

Test 8: Images scaled SVG
Visu-Task-Load (%): 1.912007
Visu-Cycle (ms): Num 102 Avg: 1.912 StdDeriv: 1.697 Min: 0.235 Max: 5.260
Painting (ms): Num: 51 Avg: 50.789 StdDeriv: 1.677 Min: 48.725 Max: 54.795
Painting to screen (ms): Num: 51 Avg: 5.127 StdDeriv: 0.574 Min: 4.476 Max: 7.613

Test 9: Images transparently
Visu-Task-Load (%): 2.751025
Visu-Cycle (ms): Num 102 Avg: 2.751 StdDeriv: 2.551 Min: 0.201 Max: 6.655
Painting (ms): Num: 51 Avg: 91.727 StdDeriv: 2.655 Min: 88.273 Max: 97.380
Painting to screen (ms): Num: 51 Avg: 5.427 StdDeriv: 0.648 Min: 4.471 Max: 6.386

Test 10: Meters
Visu-Task-Load (%): 4.834
Visu-Cycle (ms): Num 102 Avg: 4.834 StdDeriv: 6.576 Min: 0.156 Max: 16.235
Painting (ms): Num: 34 Avg: 55.393 StdDeriv: 3.556 Min: 49.312 Max: 64.379
Painting to screen (ms): Num: 34 Avg: 0.748 StdDeriv: 0.279 Min: 0.431 Max: 1.602

Test 11: Table
Visu-Task-Load (%): 9.1113
Visu-Cycle (ms): Num 101 Avg: 9.112 StdDeriv: 15.603 Min: 0.198 Max: 38.583
Painting (ms): Num: 25 Avg: 273.194 StdDeriv: 3.445 Min: 266.468 Max: 279.511
Painting to screen (ms): Num: 25 Avg: 5.167 StdDeriv: 0.462 Min: 4.483 Max: 6.647

Test 12: Button reaction
Reaction-Time (ms): Num: 9 Avg: 127.369 StdDeriv: 41.341 Min: 37.384 Max: 195.472
Painting to screen (ms): Num: 17 Avg: 0.227 StdDeriv: 0.165 Min: 0.134 Max: 0.790

Test 13: Switch Visu reaction
Reaction-Time (ms): Num: 18 Avg: 279.613 StdDeriv: 27.178 Min: 225.064 Max: 318.225
Painting to screen (ms): Num: 18 Avg: 5.210 StdDeriv: 0.434 Min: 4.658 Max: 5.972

Test 14: Keypad reaction
Reaction-Time (ms): Num: 14 Avg: 169.725 StdDeriv: 41.948 Min: 82.980 Max: 262.290
Painting to screen (ms): Num: 32 Avg: 0.885 StdDeriv: 1.865 Min: 0.101 Max: 9.347

Selya
15.09.2016, 11:48
Пытаюсь сделать переключение между визуализации при пятикратном нажатии на элемент "Invisible input".
Нашёл тут у вас пример Example_VisuSwitch.project и немного его адаптировал.
У элемента в Input configuration -> OnMouseClick -> Execute SR-Code

iClickCount:=iClickCount+1;
IF iClickCount = 5 THEN
VisuElems.CURRENTVISU:='Visu2';
iClickCount:=0;
END_IF;
Всё работает.

В примере визуализации называются Visu1, Visu2, Visu3. У меня же Page1, Page2, Page3.

Вставляю в свой проект, заменяю VisuElems.CURRENTVISU:='Page3'; и не работает.

Надо ли ещё как-то где-то указывать имя визуализации, чтоб заработало?

Евгений Кислов
15.09.2016, 11:56
Пытаюсь сделать переключение между визуализации при пятикратном нажатии на элемент "Invisible input".
Нашёл тут у вас пример Example_VisuSwitch.project и немного его адаптировал.
У элемента в Input configuration -> OnMouseClick -> Execute SR-Code

iClickCount:=iClickCount+1;
IF iClickCount = 5 THEN
VisuElems.CURRENTVISU:='Visu2';
iClickCount:=0;
END_IF;
Всё работает.

В примере визуализации называются Visu1, Visu2, Visu3. У меня же Page1, Page2, Page3.

Вставляю в свой проект, заменяю VisuElems.CURRENTVISU:='Page3'; и не работает.

Надо ли ещё как-то где-то указывать имя визуализации, чтоб заработало?

Выложите архив своего проекта, пожалуйста.

Selya
15.09.2016, 13:16
Вот работающий и не работающий пример. В чём там разница, кроме имени визуализации, не пойму.

Евгений Кислов
15.09.2016, 13:52
Вот работающий и не работающий пример. В чём там разница, кроме имени визуализации, не пойму.

В вашем проекте в Менеджере визуализации не стоит галочка Использовать переменную CurrentVisu.

Selya
28.09.2016, 14:01
Пример "11.3.7. Управление пользователями" в режиме Simulation не работает? При вводе User name и Password выдаёт "User management file not found".

Евгений Кислов
28.09.2016, 14:03
Пример "11.3.7. Управление пользователями" в режиме Simulation не работает? При вводе User name и Password выдаёт "User management file not found".

В режиме симуляции очень много чего не работает. Используйте виртуальный контроллер.

Сергей-Ростов
02.10.2016, 19:53
Cоздавайте ФБ и экспортируйте(проект-экспорт) их к себе, далее в других проектах импортируте их.
Практически тот-же макрос
\

energvk
08.10.2016, 01:52
Ссылка на документ не работает

Евгений Кислов
08.10.2016, 09:01
Ссылка на документ не работает

Проблемы с ftp, в ближайшее время должны исправить.

firetester
10.10.2016, 08:17
Доброго времени суток! Небольшая проблемка: На СПК207 переключение экранов настроено на хардверные кнопки (F1-F5). В общем, если открыть диалог на каком-то экране и попытаться переключить экран клавишей, то на экране СПК ничего не меняется (открыт диалог на N-ном экране), а управление диалогом становится невозможно. Помогает только вызвать тот экран (напр.,нажать F3 если был открыт экран, назначенный на F3) , с которого был открыт диалог, подождать секунд 20 и панелька "отвисает". Это как-то можно решить?

Евгений Кислов
10.10.2016, 08:38
Доброго времени суток! Небольшая проблемка: На СПК207 переключение экранов настроено на хардверные кнопки (F1-F5). В общем, если открыть диалог на каком-то экране и попытаться переключить экран клавишей, то на экране СПК ничего не меняется (открыт диалог на N-ном экране), а управление диалогом становится невозможно. Помогает только вызвать тот экран (напр.,нажать F3 если был открыт экран, назначенный на F3) , с которого был открыт диалог, подождать секунд 20 и панелька "отвисает". Это как-то можно решить?

У меня экран переключается, при этом диалог остается и можно продолжать в нем работать.

Выложите свой проект, пожалуйста, или отправьте мне на почту.

RA.
14.10.2016, 01:23
А кто автор "стандартных" диалогов (numpad, login и тд ) ???

- клавиатура ввода в диалоге login не закрывается (OK), по-моему если введены не цифры
- если в диалоге Numpad отметить "поле Пароля" значения, да отображаются как надо (****), но если очистить введеное - тогда уже последующие водимые символы отображаются открыто
- вариант диалога "по умолчанию" - просто встает курсор в текстовое поле, подразумевается ввод с аппаратной клавы, да, но сенсорная панель же ))

Евгений Кислов
14.10.2016, 07:27
А кто автор "стандартных" диалогов (numpad, login и тд ) ???

- клавиатура ввода в диалоге login не закрывается (OK), по-моему если введены не цифры
- если в диалоге Numpad отметить "поле Пароля" значения, да отображаются как надо (****), но если очистить введеное - тогда уже последующие водимые символы отображаются открыто
- вариант диалога "по умолчанию" - просто встает курсор в текстовое поле, подразумевается ввод с аппаратной клавы, да, но сенсорная панель же ))

Автор - компания 3S.

1. Не сталкивался с подобной проблемой, можно описать ее поподробнее?
2. Этот баг исправлен в последних версиях среды.
3. Способ ввода по умолчанию выбирается в настройках таргет- и веб-визуализации. Вполне очевидно, что при работе в веб-визуализации аппаратная клавиатура окажется более удобным вариантом.

Number17
07.11.2016, 22:13
Codesys V3.5 SP5 Patch5. Почему в элементах Индикаторы/Переключатели/Изображения вместо Элемента Индикатор (Лампочка разных цветов) индикатор со стрелочной шкалой как в разделе Элементы управлением измерением ?

Евгений Кислов
07.11.2016, 22:20
Codesys V3.5 SP5 Patch5. Почему в элементах Индикаторы/Переключатели/Изображения вместо Элемента Индикатор (Лампочка разных цветов) индикатор со стрелочной шкалой как в разделе Элементы управлением измерением ?

Не зажимайте и перетаскивайте элемент, а один раз нажмите на его название на Панели элементов и один раз - на рабочее поле.

Number17
07.11.2016, 22:31
Не зажимайте и перетаскивайте элемент, а один раз нажмите на его название на Панели элементов и один раз - на рабочее поле.
Спасибо! Всё получилось.

Number17
07.11.2016, 22:45
СПК только начинаю осваивать, потому много вопросов. Использую ЧикБоксы (Кнопки-флажки). Наблюдается как бы "дребезг" этого элемента, т.е. если недостаточно резко осуществляешь касание и быстро не отведёшь палец, то элемент успевает несколько раз переключится туда-сюда. Например, при работе с физической кнопкой подцепленной к порту микроконтроллера достаточно легко бороться с дребезгом контактов. Возможно ли как то подавить "дребезг" визуального элемента (например, задать паузу на последовательные срабатывания)?

Евгений Кислов
08.11.2016, 08:41
На СПК резистивный дисплей. Необходимы достаточно сильные нажатия. Мультитача нет, также не стоить водить пальцем по дисплею - это может быть воспринято некорректно.

Mgonch
08.11.2016, 12:00
Здравствуйте. Подскажите, почему на экране СПК207 периодически не отображаются элементы(кнопка, лампочка), при этом в Веб-визуализации все имеется?

Евгений Кислов
08.11.2016, 12:04
Здравствуйте. Подскажите, почему на экране СПК207 периодически не отображаются элементы(кнопка, лампочка), при этом в Веб-визуализации все имеется?

Подобная проблема, в частности, наблюдалась на предыдущих версиях таргет-файла. Попробуйте обновить его до последней версии (сборка 24):
http://www.owen.ru/catalog/codesys_v3/35283604

Mgonch
09.11.2016, 11:41
Стоит таргет-файл
SPKxxx_target_3.5.7.7.package

Евгений Кислов
09.11.2016, 12:24
Стоит таргет-файл
SPKxxx_target_3.5.7.7.package

Вы используете СПК с экспериментальной прошивкой (4.xxx)?

Mgonch
09.11.2016, 13:36
Да. .

Евгений Кислов
09.11.2016, 13:43
Да. .

Свяжитесь со мной по skype, пожалуйста.

nedo
09.11.2016, 18:04
Будет решение, опубликуйте здесь, т.к. проблема не единична.

Number17
09.11.2016, 22:43
Как убрать курсор, который появляется когда запущена программа? Он совершенно, как мне кажется, не нужен ввиду того что мышь всё равно отсутствует. Но он присутствует зачем то...

Евгений Кислов
10.11.2016, 07:27
Как убрать курсор, который появляется когда запущена программа? Он совершенно, как мне кажется, не нужен ввиду того что мышь всё равно отсутствует. Но он присутствует зачем то...

Курсор можно отключить в конфигураторе СПК на вкладке Дополнительно. См. СПК. FAQ, п. 5.

Евгений Кислов
14.11.2016, 14:46
Будет решение, опубликуйте здесь, т.к. проблема не единична.

Проблема проявлялась на экспериментальной прошивке и решилась с помощью установки дефолтного стиля в Менеджере визуализации и установке галочки Передавать svg- и конвертированные изображения.

27590

Евгений Кислов
13.12.2016, 09:31
Документ обновлен до версии 1.1. Список внесенных изменений:


Обновлен пример 11.2.5. Таблица.
Обновлен пример 11.3.7. Управление пользователями.
Обновлен и дополнен п. 12. Визуализация на СПК: ограничения и рекомендации.
Добавлен п. 11.4.6. Обработка нажатий аппаратных кнопок.
Добавлен п. 13.3. Список изменений в CODESYS 3.5 SP9.


В ближайшие дни компания 3S выпускает CODESYS 3.5 SP10, по факту релиза как обычно опубликую пост с описанием изменений и нововведений в визуализации.

nedo
13.12.2016, 12:24
Документ обновлен до версии 1.1. Список внесенных изменений:
В ближайшие дни компания 3S выпускает CODESYS 3.5 SP10, по факту релиза как обычно опубликую пост с описанием изменений и нововведений в визуализации.

Это очень радостно, но только не владельцам продукции ОВЕН. Поддержка SP9 будет в каком году?, не говоря о SP10. А изменений там от "новейшей" прошивки под SP5 просто тьма. Извините, но этот пункт выглядит просто как обман и издевательство над потребителем.

Евгений Кислов
13.12.2016, 12:32
Мне вполне понятна причина вашего недовольства. Действительно, с переходом на следующий SP возникли проблемы. К сожалению, я не могу спрогнозировать дату выхода новой прошивки. Со своей стороны могу только сказать, что к этой дате документация по визуализации будет содержать описание всех появившихся за прошедшее время "фишек" - по-моему, это скорее хорошо, чем плохо.

Евгений Кислов
16.12.2016, 08:42
Состоялся релиз SP10. Относительно визуализации изменений достаточно немного:

1. Полностью изменился подход к созданию HMI визуализации. Теперь она создается как отдельный проект с компонентом Data Sources Manager, который позволяет получать данные из символьной конфигурации (CODESYS OPC, поддерживается как OPC от 2.3, так и от 3.5) или приложения, созданного в CODESYS 3.5.

28120

28121

Следует заметить, что HMI визуализация является отдельным платным компонентом CODESYS.
При работе с СПК обычно используется веб-визуализация (модификации СПК207-...-CS-WEB).

2. Расширился функционал элемента Таблица тревог. Теперь можно управлять цветом заливки и текста каждой колонки таблицы с помощью переменных, а также сортировать столбцы с метками времени по возрастанию/убыванию.

Кроме того, появилась возможность экспортировать историю тревог в .csv файл. Подразумевается, что для этого необходимо подключение к контроллеру, но, в принципе, достаточно только .sqlite файла (можно воссоздать проект на виртуальном контроллере и сделать экспорт там). Сохранять историю сразу в .csv в данный момент нельзя. На текущих прошивках СПК экспорт истории не поддержан.

28122 28123 28124

28125

3. В Управлении пользователями появилась возможность настроить реакцию на заданное число попыток ввода неверного пароля - временная или постоянная блокировка пользователя.

28126

4. Оптимизирована компиляции визуализации, поправлены некоторые ошибки - в частности, известная ошибка с неработающим фоном в диалогах, из-за которого приходилось рисовать на на них дополнительный прямоугольник - теперь все нормально. Также решена проблема с некорректным отображением диапазона Трассировки.

Эдуард_Н
19.12.2016, 17:51
Можно ли использовать градиентный цвет в СПК1хх в связи с выходом новой прошивки для СПК1хх?

Евгений Кислов
19.12.2016, 17:54
Можно ли использовать градиентный цвет в СПК1хх в связи с выходом новой прошивки для СПК1хх?

Нет, в основе проблемы с градиентами лежит недостаток аппаратных возможностей - прошивка тут не поможет.

vnkorol
23.12.2016, 22:11
Люди, проблема идиотская. Работал больше года спк, возникла необходимость поправить немного. На новом компе с диска КДС поставил, необходимые библиотеки, открыл, поправил, скомпилировал, залил. Всё работает, а визуализация в вебе - белый экран. Посмотрел исходный код:

28333

Это с компа в эксплорере и хроме. Но с макбука в хроме и с телефона в хроме прекрасно показывает.

Где я накосячил?

Спасибо.

Евгений Кислов
23.12.2016, 22:59
Вы нигде не накосячили - поскольку веб-визуализация практически не имеет настроек, она просто добавляется в проект.

По всей видимости, дело в версиях/настройках браузеров на ПК - для веб-визуализации нужна поддержка HTML5/Canvas.
Попробуйте обновить хром до последней версии.

vnkorol
24.12.2016, 08:14
Вы нигде не накосячили - поскольку веб-визуализация практически не имеет настроек, она просто добавляется в проект.

По всей видимости, дело в версиях/настройках браузеров на ПК - для веб-визуализации нужна поддержка HTML5/Canvas.
Попробуйте обновить хром до последней версии.

Хром последней версии. С дуру обновил на маке - теперь на нем тоже белый экран.

vnkorol
24.12.2016, 09:42
Не помогло. Пугает то, что до перезаливки проекта всё работало...

Евгений Кислов
24.12.2016, 09:48
У меня тоже последняя версия (55.0.2883.87 m). Проблем с веб-визуализацией на ней нет.

Что выдает https://html5test.com/ ?

vnkorol
24.12.2016, 09:57
Что выдает https://html5test.com/ ?

Всё нормально выдает:

http://i.imgur.com/TVsPhje.jpg

Евгений Кислов
24.12.2016, 10:05
Попробуйте создать простейший проект для виртуального контроллера с веб-визуализацией и запустить его. Что при этом будет в браузере?

vnkorol
24.12.2016, 10:26
А его в СПК заливать? Если нет, то по какому адресу смотреть визуализацию в браузере?

Евгений Кислов
24.12.2016, 10:32
А его в СПК заливать? Если нет, то по какому адресу смотреть визуализацию в браузере?

Свяжитесь со мной по skype, пожалуйста (логин в подписи).

vnkorol
24.12.2016, 11:46
Проблему решил Евгений Кислов, за что ему огромное спасибо.

Было необходимо в проекте удалить папку 'visu'. И все заработало.

SlavikP
25.01.2017, 07:28
столкнулся с проблемой при попытке сделать визуализацию.
Проблема имеется в Codesys SP5 Patch5 и Codesys SP7 Patch4. На других версиях не пробовал.
Суть проблемы: при выборе элемента управления Индикаторы/Переключатели/Изображения -> Индикатор фактически выбирается элемент: Элементы управления измерением -> Индикатор.
Проще говоря вместо элемента "лампочка" вставляется элемент "Стрелочный прибор".
Это только у меня так или у всех? И, если у всех, то как получить элемент "лампочка"?

Евгений Кислов
25.01.2017, 07:33
столкнулся с проблемой при попытке сделать визуализацию.
Проблема имеется в Codesys SP5 Patch5 и Codesys SP7 Patch4. На других версиях не пробовал.
Суть проблемы: при выборе элемента управления Индикаторы/Переключатели/Изображения -> Индикатор фактически выбирается элемент: Элементы управления измерением -> Индикатор.
Проще говоря вместо элемента "лампочка" вставляется элемент "Стрелочный прибор".
Это только у меня так или у всех? И, если у всех, то как получить элемент "лампочка"?

Вероятно, вы зажимаете элемент ЛКМ и перетаскиваете его на рабочее поле.
Попробуйте однократным кликом выбрать элемент на Панели элементов, а потом однократно кликнуть на рабочее поле.

SlavikP
25.01.2017, 08:07
Попробуйте однократным кликом выбрать элемент на Панели элементов, а потом однократно кликнуть на рабочее поле.
Да, именно так и есть.
Т.е. перетаскивать мышкой в Codesys является mauvais ton, или это все таки ошибка, которую надо исправить разработчикам?