PDA

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



Страницы : [1] 2 3 4 5 6 7 8 9 10 11

Евгений Кислов
02.09.2015, 14:42
Добрый день, уважаемые коллеги.

Хочу представить вашему вниманию документ CODESYS V3.5. Визуализация. Документ посвящен вопросам создания экранов визуализации для контроллеров, программируемых в среде CODESYS V3.5, с подробным описанием характеристик и настроек всех графических примитивов, а также содержит примеры работы с ними. Примеры доступны для скачивания в формате .projectarchive и подразумевают запуск на виртуальном контроллере CODESYS Control Win V3.

Документ является развитием статьи (http://www.owen.ru/uploads/32_35_44_axriev-vizualizaciya_v_srede_codesys.pdf) и руководства (http://www.owen.ru/forum/attachment.php?attachmentid=13987&d=1407498446) Мурата Ахриева, а также в каком-то смысле аналогом документа Визуализация CoDeSys 2.3 (http://www.kipshop.ru/CoDeSys/steps/codesys_visu_v23_ru.pdf) для предыдущей версии среды программирования.

Также в этой теме вы можете задавать свои вопросы по визуализации в CODESYS V3.5 и помогать другим пользователям, отвечая на их вопросы.




Скачать документ
СODESYS V3.5. Визуализация [3.0] (https://ftp.owen.ru/CoDeSys3/11_Documentation/03_3.5.11.5/CDSv3.5_Visu_v3.0.pdf)


Предыдущая версия документа
(для старой линейки СПК1хх и СПК207)
СПК. Визуализация v1.2 (http://ftp.owen.ru/CoDeSys3/11_Documentation/01_SPK/SPK_Visu_v.1.2.pdf)


Проекты примеров, рассмотренных в документе
https://www.owen.ru/product/codesys_v3/example_of_work


Посты про визуализацию в онлайн-FAQ
(спойлер "Визуализация")
https://owen.ru/forum/showthread.php?t=28167


Библиотека OwenVisuDialogs
https://owen.ru/forum/showthread.php?t=34327


Дополнительные статьи
Работа с визуализацией из кода программы в CODESYS V3 (https://ftp.owen.ru/CoDeSys3/98_Books/CodesysVisuIecCode.pdf)
Работа со списками текстов в CODESYS V3 (https://ftp.owen.ru/CoDeSys3/98_Books/CodesysTextLists.pdf)
Работа со стилями визуализации в CODESYS V3 (https://ftp.owen.ru/CoDeSys3/98_Books/CodesysVisuStyles.pdf)


Дополнительные видео
Типизация объектов визуализации. Фреймы (https://youtu.be/eHWSI_Ll8VU)
(https://youtu.be/heTqwXGgzbs)Особенности элемента Трассировка (https://youtu.be/G9m4LWQ6PYQ)
(https://youtu.be/heTqwXGgzbs)Вывод ошибок обмена Modbus в таблицу тревог (https://youtu.be/IFUN4cYskRI)
(https://youtu.be/heTqwXGgzbs)Воспроизведение звука в web-визуализации (https://youtu.be/uJvpz0PP7C8)
(https://youtu.be/heTqwXGgzbs)Просмотр и выгрузка файлов через web-визуализацию (FileOpenSave, VisuTransfer) (https://youtu.be/d-gLwtmJnlk)
(https://youtu.be/heTqwXGgzbs)Загрузка и выгрузка файлов через web-визуализацию (файловые плейсхолдеры) (https://youtu.be/IemOlv7FcQI)
(https://youtu.be/heTqwXGgzbs)Ввод данных в таблицу через визуализацию (https://youtu.be/-qPyjuiPbbk)
(https://youtu.be/heTqwXGgzbs)Библиотека OwenVisuDialogs (https://youtu.be/1AEinfoSfOI)
(https://youtu.be/heTqwXGgzbs)Вывод изображений в элемент Таблица (https://youtu.be/MTo-JyU9ozA)
(https://youtu.be/heTqwXGgzbs)Работа с элементом Радио-кнопка (https://youtu.be/taJovYn4yjg)
(https://youtu.be/heTqwXGgzbs)CODESYS Visualization 4.2.0.0 - конфигурация фреймов (https://youtu.be/Jp360ANVXRw)
Создание тревог для однотипных объектов (RaiseEvent) (https://youtu.be/heTqwXGgzbs)
Работа с рецептами в CODESYS V3.5 (https://www.youtube.com/watch?v=R0XWkXcV_q0&list=PLUw7cl8x4xnKYWlxbYmcKnwpUBMY6uzP7)








Версия
Описание


3.0
Адаптация под версию CODESYS V3.5 SP17 Patch 3.


2.2
Адаптация под версию CODESYS V3.5 SP16 Patch 3.


2.1
Адаптация под версию CODESYS V3.5 SP14 Patch 3.


2.0
Адаптация под версию CODESYS V3.5 SP11 Patch 5.
Значительная часть документа переработана.


1.2
Дополнен пример 11.2.3. Комбинированное окно.

Добавлен п. 13.4. Список изменений в CODESYS 3.5 SP10.
Добавлен п. 13.5. Список изменений в CODESYS 3.5 SP11.


1.1
Обновлен пример 11.2.5. Таблица.
Обновлен пример 11.3.7. Управление пользователями.

Обновлен и дополнен п. 12. Визуализация на СПК: ограничения и рекомендации

Добавлен п. 11.4.6. Обработка нажатий аппаратных кнопок.

Добавлен п. 13.3. Список изменений в CODESYS 3.5 SP9.


1.0
Первая релизная версия документа.

Исправлены ошибки предыдущей версии.

Добавлена глава 12: Визуализация на СПК: ограничения и рекомендации.
Добавлена глава 13: Список изменений в новых сервис-паках (SP) CODESYS

Добавлен пример 11.4.1: CODESYS HMI
Добавлен пример 11.4.2: Работа с динамическими точками (элемент Ломаная)
Добавлен пример 11.4.3: Считывание координат курсора
Добавлен пример 11.4.4: Многопользовательский доступ. Независимая обработка клиентов визуализации
Добавлен пример 11.4.5: Подсчет количества клиентов web-визуализации


0.8
Предварительная версия документа.





1. Работа с фреймом. Независимая работа клиентов таргет- и веб-визуализации с возможностью переключения фрейма из кода программы. Работа с таймером в визуализации (по запросу Gesha)
http://www.owen.ru/forum/showthread.php?t=22038&p=193882&viewfull=1#post193882

2. Трассировка на базе элемента Ломаная (автор проекта - firetester)
http://www.owen.ru/forum/showthread.php?t=22038&p=197735&viewfull=1#post197735

3. Разработка продвинутой визуализации (пример компании Пролог с конференции CODESYS 2016)
http://www.owen.ru/forum/showthread.php?t=22038&p=208767&viewfull=1#post208767

4. Работа с функциями и ФБ библиотеки Standard в визуализации
http://www.owen.ru/forum/showthread.php?t=22038&p=210067&viewfull=1#post210067

5. Русскоязычная клавиатура от компании Пролог
http://www.owen.ru/forum/showthread.php?t=22038&p=214830&viewfull=1#post214830

6. Аутентификация пользователя по паролю (без логина и Управления пользователями)
http://www.owen.ru/forum/showthread.php?t=24992&p=218052&viewfull=1#post218052

7. Пример работы со звуком для СПК207 (по запросу Солнечный заяц)
http://www.owen.ru/forum/showthread.php?t=22038&p=256922&viewfull=1#post256922

8. Перевод документа от Best Practices Visualization из дистрибутива CODESYS
http://www.owen.ru/forum/showthread.php?t=22038&p=263381&viewfull=1#post263381


1. Баг с Менеджером рецептов (зафиксировал Инженер23)

В SP5-SP8 в Менеджере рецептов галочка Сохранять изменения автоматически работает некорректно. При ее наличии после перезагрузки контроллера файлы рецептов перезаписываются значениями по умолчанию. При ее отсутствии после загрузки проекта файлы рецептов не создаются. Возможные решения - наличие галочки + отсутствие значений по умолчанию или отсутствие галочки + ручная загрузка исходных файлов рецептов в контроллер.
http://www.owen.ru/forum/showthread.php?t=23470&page=3

Статус: исправлено в 3.5 SP11.

2. Вопрос об адресе веб-визуализации (сформулировал RV9WFJ)

На данный момент обращение к веб-визуализации по IP (без указания адреса страницы) невозможно, поскольку на встроенном веб-сервере отсутствует автоматический редирект на index.htm(l).

Статус: функционал добавлен в 3.5 SP11.

3. Поддержка звука в веб-визуализации (CeKip и др. пользователи)

Статус: отправлен запрос в 3S. Задача занесена в баг-трекер, CDS-49171.

4. Поддержка вращения элементов в редакторе визуализации (сформулировал dkapotov)

Статус: функционал добавлен в 3.5 SP11 (только для базовых элементов).

5. При открытии диалогов не отображается их фон/фоновое изображение

Статус: CDS-48735. Поправлено в 3.5 SP10. Доработано в 3.5 SP11 (добавлен выбор режима отображения фона).

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

Статус: СDS-49371. Исправлено в 3.5 SP10.

Сема
08.09.2015, 09:01
А кто нибудь может показать пример красивой визуализации на скриншотах, реализованной в программе codesys 3.5 ??? Возможна ли такая реализация визуализации, изображения на скриншотах.

Евгений Кислов
08.09.2015, 09:19
А кто нибудь может показать пример красивой визуализации на скриншотах, реализованной в программе codesys 3.5 ???

Ну, например:
http://www.owen.ru/projects/39217550/about

Сема
08.09.2015, 09:28
А в КДС 3.5 такую визуализацию реализовать можно?? Вот мы как раз о таких примерах... Есть какие -нибудь готовые библиотеки, лампочки такие, кнопки??? Или самому как-то городить огород??

Сема
08.09.2015, 09:32
Ну, например:
http://www.owen.ru/projects/39217550/about

а как это сделано???

Евгений Кислов
08.09.2015, 09:35
а как это сделано???

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

Сема
08.09.2015, 10:13
А можно какие нибудь операции выполнять с сенсорным экраном, например, когда держишь палец на экране 2 с, выполняется какая нибудь операция??

Евгений Кислов
08.09.2015, 10:21
А можно какие нибудь операции выполнять с сенсорным экраном, например, когда держишь палец на экране 2 с, выполняется какая нибудь операция??

Речь о произвольной точке экрана или нажатии на конкретный элемент?

Сема
08.09.2015, 10:55
Произвольная точка экрана и нажатие на элемент. И то и другое.

Евгений Кислов
08.09.2015, 11:03
Произвольная точка экрана и нажатие на элемент. И то и другое.

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

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

Трофимов Артем
08.09.2015, 14:40
в SPK Tools есть блок toch activity, по нему можно отследить продолжительное нажатие и сделать действие

Сема
08.09.2015, 16:25
Есть такая задача: сделать в визуализации некий график, где будут оси Х и У, и несколько точек, соединённых между собой линиями, чтобы двигая пальцем эти точки, я мог изменять значения по Х и У?? Как можно работать с библиотекой Sys target visu???

Сема
08.09.2015, 16:27
в SPK Tools есть блок toch activity, по нему можно отследить продолжительное нажатие и сделать действие

А где эти настройки?? Как найти??

Эдуард_Н
08.09.2015, 16:46
Пока не вышла прошивка под SP6 нужно сделать список шрифтов которые можно использовать в проектах без подгонки.

Евгений Кислов
09.09.2015, 08:55
Есть такая задача: сделать в визуализации некий график, где будут оси Х и У, и несколько точек, соединённых между собой линиями, чтобы двигая пальцем эти точки, я мог изменять значения по Х и У?? Как можно работать с библиотекой Sys target visu???

Интересная задача. Включу в одну из следующих версий документа.

Пока что на коленке сделал сырой проект, которой отдельно показывает два момента:

1. Перемещение элемента вслед за курсором
2. Построение отрезков по заданным координатам

Надеюсь, это поможет вам в решении вашей задачи.

Евгений Кислов
09.09.2015, 09:38
Пока не вышла прошивка под SP6 нужно сделать список шрифтов которые можно использовать в проектах без подгонки.

1. Default font (Font-Standard и т.д.)

Для остальных шрифтов нельзя гарантировать соответствие между отображением в CODESYS и на дисплее СПК.

Сема
09.09.2015, 10:13
в SPK Tools есть блок toch activity, по нему можно отследить продолжительное нажатие и сделать действие

А где эти настройки???

Евгений Кислов
09.09.2015, 10:44
А где эти настройки???

В функциональном блок Touch_Activity библиотеки SPKtools.
http://www.owen.ru/forum/showthread.php?t=16115

Но, на мой взгляд, это вам не поможет. Посмотрите мое сообщение #15.

Сема
09.09.2015, 11:58
А как сделать так, чтобы перед запуском стартовой страницы проекта, было какое то окно приветствия??

Евгений Кислов
09.09.2015, 12:11
А как сделать так, чтобы перед запуском стартовой страницы проекта, было какое то окно приветствия??

В настройках target/web-визуализации сделайте стартовой визуализацией экран окна приветствия.

Сема
09.09.2015, 13:13
Не могу разобраться, как кнопке присвоить изображение, чтобы в одном состоянии было одно изображение, в другом - другое?? Мало в документации написано..

Евгений Кислов
09.09.2015, 13:20
Не могу разобраться, как кнопке присвоить изображение, чтобы в одном состоянии было одно изображение, в другом - другое?? Мало в документации написано..

Используйте параметр Переменная ID изображения. К нему надо привязать переменную типа STRING и записывать в нее ID изображения из Пула изображений.

Возможно, проще воспользоваться элементом Переключатель изображения - см. пример 11.2.8.

Сема
10.09.2015, 16:15
Добрый день, это свойства переключающей кнопки, она должна быть круглая, никак не могу убрать этот квадрат за ней...

Евгений Кислов
10.09.2015, 20:01
Добрый день, это свойства переключающей кнопки, она должна быть круглая, никак не могу убрать этот квадрат за ней...

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

Александр Приходько
13.09.2015, 13:35
Пока не вышла прошивка под SP6 нужно сделать список шрифтов которые можно использовать в проектах без подгонки.
Да, тут полностью согласен. Мы даже прорабатывали эту задачу. Пришлось отложить до SP7 в силу некоторых ошибок в среде. Сейчас к данному вопросу возвращаемся.

SuperChu
14.09.2015, 12:52
Добрый день. Ни как не получается реализовать трассировку в визуализации Codesys 3.5. sp5. При использовании трассировки в визуализации при попытке загрузки всегда вываливается исключение, а если использовать тренд - сразу куча ошибок сыпется. Пока делал в эмуляции. Устройство СПК110.

Евгений Кислов
14.09.2015, 13:03
Добрый день. Ни как не получается реализовать трассировку в визуализации Codesys 3.5. sp5. При использовании трассировки в визуализации при попытке загрузки всегда вываливается исключение, а если использовать тренд - сразу куча ошибок сыпется. Пока делал в эмуляции. Устройство СПК110.

В эмуляции трассировка не работает. Вообще, советую ее (эмуляцию) никогда не использовать.

Запускайте проект либо на виртуальном контроллере (см. п. 11.1 документа СПК. Визуализация), либо на СПК.

Тренды в данный момент не поддерживаются на уровне прошивки - об этом написано в первом посте темы.

SuperChu
14.09.2015, 13:14
Про тренды - я понял. Про контроллер почитаю. Спасибо.

SuperChu
14.09.2015, 14:06
С виртуальным контроллером заработало, буду пробовать на СПК!

SuperChu
15.09.2015, 11:14
Еще бяка вылезла. При попытке смены шрифта подписей в визуализации трассировки среда говорит, что после сохранения документа я не смогу больше открыть его в Codesys 3.5 sp5. И это действительно так ((.19955 Как быть? Ждать новой прошивки?

Евгений Кислов
15.09.2015, 14:14
Еще бяка вылезла. При попытке смены шрифта подписей в визуализации трассировки среда говорит, что после сохранения документа я не смогу больше открыть его в Codesys 3.5 sp5. И это действительно так ((.19955 Как быть? Ждать новой прошивки?

Это баг CODESYS, он упомянут в документе. В ближайшее время проверю, присутствует ли он в свежих версиях CODESYS.

SuperChu
15.09.2015, 14:25
Обойти его реально? Или проще текстовые вставки сделать под визуализацией ?

Евгений Кислов
15.09.2015, 14:28
Обойти его реально? Или проще текстовые вставки сделать под визуализацией ?

Обойти в данный момент - нереально.

Проблема сохранилась и в последней на данный момент версии CODESYS - 3.5 SP7 Patch 1.

SuperChu
15.09.2015, 15:10
Спасибо за оперативность.

Сема
16.09.2015, 10:06
А Codesys 3.5 sp7 и прошивка новая когда примерно будут??

Евгений Кислов
16.09.2015, 10:47
А Codesys 3.5 sp7 и прошивка новая когда примерно будут??

См. первый пост.

GTS
18.09.2015, 14:51
Добрый день! Помогите пожалуйста! Переделывал проект с шаблонов на модули МХ110 и визуализации копировал со старого проекта. Получилась вот такая неприятность в виде ошибок.20005

Евгений Кислов
18.09.2015, 15:16
Добрый день! Помогите пожалуйста! Переделывал проект с шаблонов на модули МХ110 и визуализации копировал со старого проекта. Получилась вот такая неприятность в виде ошибок.20005

Проекты созданы в одной и той же версии CODESYS с использованием одних и тех же библиотек? (кроме библиотек модулей)

GTS
18.09.2015, 15:27
Да вроде все без изменений. А что это за ошибки, с чем связаны?

Евгений Кислов
18.09.2015, 15:32
Да вроде все без изменений. А что это за ошибки, с чем связаны?

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

Если вы выложите свой проект, то попробую запустить его у себя и отпишусь о результатах.

По поводу ошибок с драйверами (Update configuration failed from MV110_8AS) можете обратиться в эту тему:
http://www.owen.ru/forum/showthread.php?t=21365

GTS
18.09.2015, 15:48
Я устанавливал SP7 и в какой то момент при открытии проекта в SP5 (в SP7 не открывал) выскакивало сообщение об обновлении толи таргета визуализации толи стилей до 3.5.7.0.

Евгений Кислов
18.09.2015, 15:55
Я устанавливал SP7 и в какой то момент при открытии проекта в SP5 (в SP7 не открывал) выскакивало сообщение об обновлении толи таргета визуализации толи стилей до 3.5.7.0.

Выложите projectarchive, пожалуйста.

GTS
18.09.2015, 16:03
Выкладываю

Евгений Кислов
18.09.2015, 16:19
Выкладываю

Спасибо, на след. неделе буду разбираться.

Сразу замечание - градиентная заливка не поддерживается на СПК1xx.

GTS
18.09.2015, 18:05
Заранее спасибо. Про градиент не знал, хотел прекрасней сделать.

Эдуард_Н
18.09.2015, 18:27
Сразу замечание - градиентная заливка не поддерживается на СПК1xx.

В руководстве не дурно было бы упомянуть про это, ну и про другие "нельзяшки". В общем, что можно, что нельзя на СПК1хх и СПК2хх.

Евгений Кислов
18.09.2015, 19:06
В руководстве не дурно было бы упомянуть про это, ну и про другие "нельзяшки". В общем, что можно, что нельзя на СПК1хх и СПК2хх.

Да, полностью согласен. В следующей версии будет отдельная глава про рекомендации к визуализации на СПК1xx и СПК2xx.

GTS
18.09.2015, 19:27
А как теперь быть с градиентом в моем проекте, вставлять как рисунки? Что будет если оставить все как есть?

Евгений Кислов
18.09.2015, 19:32
А как теперь быть с градиентом в моем проекте, вставлять как рисунки? Что будет если оставить все как есть?

Визуализация будет работать крайне медленно. Можно вставлять как рисунки или отказаться от градиента вообще.

Можно попросить вас провести эксперимент - удалить из проекта все градиенты, всю программную часть и выставить время цикла VISU_TASK 200мс, после чего загрузить проект в панель?

GTS
18.09.2015, 19:46
А рисунки с градиентом тормозить не будут? Формат bmp?

Евгений Кислов
18.09.2015, 19:49
А рисунки с градиентом тормозить не будут? Формат bmp?

Рисунки - не будут. Формат не имеет принципиального значения, но желательно чтобы вес рисунка лежал в разумных пределах (не более 100 кб).

Эдуард_Н
19.09.2015, 13:00
Визуализация будет работать крайне медленно. Можно вставлять как рисунки или отказаться от градиента вообще.

Можно попросить вас провести эксперимент - удалить из проекта все градиенты, всю программную часть и выставить время цикла VISU_TASK 200мс, после чего загрузить проект в панель?

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

Евгений Кислов
19.09.2015, 13:05
Из своего проекта убрал все градиенты, сделал меньше по размеру картинку заставки, и СПК забегала и даже без подключенных модулей расширения (раньше без них такие тормоза были...).

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

Эдуард_Н
19.09.2015, 13:35
СПК2хх штука конечно хорошая, но дорогая. У нас не все готовы раскошелится. А так, хорошо, что вы стали производить СПК.

Эдуард_Н
19.09.2015, 19:11
Да, полностью согласен. В следующей версии будет отдельная глава про рекомендации к визуализации на СПК1xx и СПК2xx.

А следующая версия когда будет? Если не секрет конечно:)

Евгений Кислов
19.09.2015, 20:59
А следующая версия когда будет? Если не секрет конечно:)

Когда накопится достаточное количество замечаний и пожеланий. В версии 1.0 будут исправлены все найденные к этому времени ошибки, добавлена глава про рекомендации при работе с СПК и глава со списком изменений в версиях CODESYS, выпущенных после создания документа (SP7, SP8 и т.д.). Эту версию постараюсь подготовить к концу года. Возможно, удастся включить в нее несколько новых примеров.

GTS
21.09.2015, 10:11
Евгений добрый день! Градиент убрал, тормоза остались. Я так понял мне всю визуализацию заново надо делать, копирование из другого проекта не получилось.

Евгений Кислов
21.09.2015, 10:39
Евгений добрый день! Градиент убрал, тормоза остались. Я так понял мне всю визуализацию заново надо делать, копирование из другого проекта не получилось.

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

Я смог запустить ваш проект на своей СПК110, сделав следущее:

1. Убрал все градиенты из проекта;
2. Для задачи VISU_TASK задал цикл 200мс (совпадающий со временем обновления визуализации);
3. В Менеджере визуализации увеличил объем памяти визуализации и буфер рисования до 4000000 и 500000 соответственно;
4. В таргет-визуализации снял галочку Сглаживание.
5. На экранах Obshaya_shema_upravleniya и Sistema_podachi_tehnicheskoy_vodi_v_KOV2V удалил элементы мнемосхемы тех. процесса (баки, трубы и т.д.).

После этого проект перестал выпадать в исключение и работает вроде бы с приемлемой скоростью.

GTS
21.09.2015, 11:22
Попробовал, стало работать побыстрее, но те окна где нет емкостей и труб. Соответственно вопрос, как с ними быть? А что это за ошибка в журнале?20050

Евгений Кислов
21.09.2015, 11:35
Попробовал, стало работать побыстрее, но те окна где нет емкостей и труб. Соответственно вопрос, как с ними быть? А что это за ошибка в журнале?20050

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

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

GTS
21.09.2015, 12:45
Спасибо, как я понял визуализация должна быть максимально простой.

Евгений Кислов
21.09.2015, 12:47
Спасибо, как я понял визуализация должна быть максимально простой.

При условии использования СПК1xx - совершенно верное замечание.

GTS
21.09.2015, 13:14
Жалко, а то я "разрисовался". Спасибо за помощь!

Эдуард_Н
10.10.2015, 10:34
А всплывающие подсказки использовать можно? Люди говорят, что от них остаются артефакты.

Евгений Кислов
10.10.2015, 11:39
А всплывающие подсказки использовать можно? Люди говорят, что от них остаются артефакты.

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

Al-Al
19.10.2015, 07:42
Шлейфы от подсказок,
Версия прошивки 3.945. СПК-107. Codesys 3.5 SP5 Patch 5.

Евгений Кислов
19.10.2015, 09:08
Шлейфы от подсказок,
Версия прошивки 3.945. СПК-107. Codesys 3.5 SP5 Patch 5.

Выложите, проект, пожалуйста (в формате .projectarchive).

Al-Al
19.10.2015, 13:27
Проект.
Там ещё почему-то меняется размер шрифта, при переключениях экрана.
В этой http://www.owen.ru/forum/showthread.php?t=22442 теме подробнее писал.

Евгений Кислов
19.10.2015, 13:43
Проект.
Там ещё почему-то меняется размер шрифта, при переключениях экрана.
В этой http://www.owen.ru/forum/showthread.php?t=22442 теме подробнее писал.

Спасибо, проблему удалось повторить.

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

Проблема с артефактами всплывающих подсказок должна быть исправлена в следующей прошивке.

Эдуард_Н
19.10.2015, 15:08
Используйте шрифт Font-Standard, при необходимости меняя его размер.
И как размер у него изменять?

Евгений Кислов
19.10.2015, 15:13
И как размер у него изменять?

Как обычно, в принципе.

20435

Кажется, я понял, почему у вас возник такой вопрос.

Font-Standard = Arial для стилей визуализации от 3S.

Действительно, с размером текста в выложенном проекте происходит что-то необъяснимое, но это проявляется даже на виртуальном контроллере - дело не в СПК, а, подозреваю, в версиях CODESYS, использованных при разработке проекта. Удаление и создание с нуля трассировки, по-моему, решает проблему.

Эдуард_Н
19.10.2015, 15:55
Да, Вы абсолютно правильно меня поняли. Спасибо за разъяснения.

Al-Al
23.10.2015, 13:08
Удаление и создание с нуля трассировки проблему решило! Спасибо.

Ещё хотел бы отметить, что в описании примера "Управление зуммером и подсветкой" не указали о необходимости в менеджере визуализации поставить галку на пункте "Использовать переменную CurrentVisu". Новичкам в СПК и CoDeSys 3.5 это сразу не очевидно.

Евгений Кислов
23.10.2015, 13:10
Удаление и создание с нуля трассировки проблему решило! Спасибо.

Ещё хотел бы отметить, что в описании примера "Управление зуммером и подсветкой" не указали о необходимости в менеджере визуализации поставить галку на пункте "Использовать переменную CurrentVisu". Новичкам в СПК и CoDeSys 3.5 это сразу не очевидно.

Вы не путаете с руководством на библиотеку SPKtools? Управление зуммером и подсветкой описывается там.

Al-Al
23.10.2015, 13:19
Да, Вы абсолютно правы. Перепутал.

Эдуард_Н
27.10.2015, 16:04
Если экран открываемый в "Фрейме элемента" больше чем сам фрейм то он, что вылезет за пределы фрейма?

Евгений Кислов
27.10.2015, 16:14
Если экран открываемый в "Фрейме элемента" больше чем сам фрейм то он, что вылезет за пределы фрейма?

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

Эдуард_Н
27.10.2015, 16:27
Вот при выборе "Фиксировано и прокручивается" появились конечно полосы прокрутки и лишнее продолжение экрана

Евгений Кислов
27.10.2015, 18:18
Вот при выборе "Фиксировано и прокручивается" появились конечно полосы прокрутки и лишнее продолжение экрана

Я так понимаю, это исчезнет, если убрать на экране фрейма цвет фона. Особенность CODESYS.

Эдуард_Н
27.10.2015, 18:44
Да, внешне всё встало в норму, но если провести курсором потому месту где это было раньше то там нащупываются кнопки.

Евгений Кислов
27.10.2015, 19:27
Да, внешне всё встало в норму, но если провести курсором потому месту где это было раньше то там нащупываются кнопки.

Интересно. Я завтра проверю это на SP7 Patch2 и, в случае проявления ошибки, уведомлю 3S.

Эдуард_Н
27.10.2015, 19:31
У меня SP5 Patch5

Евгений Кислов
28.10.2015, 07:52
У меня SP5 Patch5

В SP7 Patch2 ошибка повторилась, правда, фон уже не вылезает, но кнопки все равно "прощупываются".

Компания 3S будет уведомлена об ошибке, после чего остается только ждать следующих сервис-паков.

Эдуард_Н
28.10.2015, 13:37
И то уже хорошо, что они исправят эту ошибку.

GTS
28.10.2015, 14:58
Добрый день Евгений! Из-за ограничений по производительности СПК110 пришлось убрать все градиенты и остальные навороты. В итоге получилось20578 и также все остальные визуализации. По сравнению с тем что было конечно не то! Вопрос. А если все элементы 20579 нарисовать в любом графическом редакторе и вставить их в проект как рисунок или подложку. тормозов по идее быть не должно?

Евгений Кислов
28.10.2015, 15:01
Добрый день Евгений! Из-за ограничений по производительности СПК110 пришлось убрать все градиенты и остальные навороты. В итоге получилось20578 и также все остальные визуализации. По сравнению с тем что было конечно не то! Вопрос. А если все элементы 20579 нарисовать в любом графическом редакторе и вставить их в проект как рисунок или подложку. тормозов по идее быть не должно?

Зависит от числа картинок и их размера. Если говорить о конкретно данном экране, то 20-25 картинок с размером 50-70 Кб (каждая) не должны привести к существенным тормозам, по моему мнению.

GTS
28.10.2015, 15:09
Хотел нарисовать целиком как подложку все неактивные элементы (трубы, бочки, насосы), а потом на подложку устанавливать кнопки, лампочки, а вот как уровни такие же сделать?

Евгений Кислов
28.10.2015, 15:11
Хотел нарисовать целиком как подложку все неактивные элементы (трубы, бочки, насосы), а потом на подложку устанавливать кнопки, лампочки, а вот как уровни такие же сделать?

Через элемент Отображение линейки, например. Upd. - я, кажется, не так понял ваш вопрос. В чем проблема перенести уровни из текущего проекта поверх подложки?

Для примера, вот проект, который мы запускали на СПК110 на последней выставке:

20580

Там как раз использовался ваш вариант с подложкой.

GTS
28.10.2015, 15:14
Шкала в прошлом проекте в 3Д, то есть с градиентом! Так у вас там градиентов куча!?

Евгений Кислов
28.10.2015, 15:18
Шкала в прошлом проекте в 3Д, то есть с градиентом! Так у вас там градиентов куча!?

Но ведь можно сделать шкалу без 3D.

В проекте на скриншоте градиентов нет вообще, только изображения.

20581

Под словом "градиент" я подразумеваю именно параметр "Использовать градиент" в настройках элементов CODESYS, а не градиент как понятие.

GTS
28.10.2015, 15:23
Вот по какому проекту надо делать инструкцию по Визуализации! Показали бы людям все возможности и ограничения!

Евгений Кислов
28.10.2015, 15:25
Вот по какому проекту надо делать инструкцию по Визуализации! Показали бы людям все возможности и ограничения!

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

energvk
28.10.2015, 15:47
А какой шрифт корректно отображается на СПК105 (чтобы как на мониторе/виртуальном контроллере) в CDS 3.5 SP5? Чтобы не эксперементировать долго, может кто уже подобрал :) Капец конечно после заливки в СПК происходит с arial...

Евгений Кислов
28.10.2015, 15:49
А какой шрифт корректно отображается на СПК105 (чтобы как на мониторе/виртуальном контроллере) в CDS 3.5 SP5? Чтобы не эксперементировать долго, может кто уже подобрал :) Капец конечно после заливки в СПК происходит с arial...

Используйте стандартный шрифт (Font-Standard). В принципе, он совпадает с Arial, и проблем с ним я никогда не замечал.

energvk
28.10.2015, 16:07
Когда его делаешь жирным, то возникают проблемы

Евгений Кислов
28.10.2015, 16:08
Когда его делаешь жирным, то возникают проблемы

Какого рода? Можно пояснить скриншотами?

energvk
28.10.2015, 16:11
Сейчас попробую фоток наделать

energvk
28.10.2015, 16:20
Вот как получается

20582

20583

Причем на виртуальном контроллере было всё нормально

Эдуард_Н
28.10.2015, 16:25
У меня такая же песня, пришлось подправлять надписи с учётом таких изменений.

energvk
28.10.2015, 16:33
Печалька, экранов к сожалению не один

Евгений Кислов
28.10.2015, 17:44
Спасибо за информацию.

Проблема со шрифтами отчасти связана с CODESYS, и возможность ее решения появится только после релиза SP8.

Эдуард_Н
28.10.2015, 17:49
Так тоже не интересно, сейчас выйдет прошивка под SP7, а для нормального использования шрифта будем ждать прошивку под SP8, так что ли?

Евгений Кислов
28.10.2015, 17:55
Так тоже не интересно, сейчас выйдет прошивка под SP7, а для нормального использования шрифта будем ждать прошивку под SP8, так что ли?

Насколько мне известно - да.

SG_User
30.10.2015, 13:07
Добрый день.
В проекте визуализации использую элемент "переключатель" (из раздела индикаторы/переключатели/изображения). На месте данного элемента в панели отображается пустое место, по нажатию на которое переменная элемента переключается, однако сам элемент при этом не появляется. В режиме эмуляции все работает как и должно: элемент отображается и переключается. В чем может быть дело ?
Панель: СПК110. Прошивка 3.939. Таргет: 3.5.4.20. CodeSys 3.5 SP4 patch 4.

Евгений Кислов
30.10.2015, 13:11
Добрый день.
В проекте визуализации использую элемент "переключатель" (из раздела индикаторы/переключатели/изображения). На месте данного элемента в панели отображается пустое место, по нажатию на которое переменная элемента переключается, однако сам элемент при этом не появляется. В режиме эмуляции все работает как и должно: элемент отображается и переключается. В чем может быть дело ?
Панель: СПК110. Прошивка 3.939. Таргет: 3.5.4.20. CodeSys 3.5 SP4 patch 4.

Обновите прошивку до 3.945.
http://www.owen.ru/catalog/codesys_v3/25545068

Обновите CODESYS до SP5 Patch5 или выше (версии выше SP5 Patch5 поддержаны не полностью и рекомендуются только для ознакомления).
http://www.owen.ru/catalog/codesys_v3/opisanie

SG_User
30.10.2015, 13:27
Обновите прошивку до 3.945.
http://www.owen.ru/catalog/codesys_v3/25545068

Обновите CODESYS до SP5 Patch5 или выше (версии выше SP5 Patch5 поддержаны не полностью и рекомендуются только для ознакомления).
http://www.owen.ru/catalog/codesys_v3/opisanie

Если верить истории изменения прошивок, то:
"Версия 3.945
- При закрытии порта очищается внутренний приемный буфер."
Как видно, про некорректную работу с визуальными компонентами ничего не сказано. Вы можете подтвердить что в версии 3.939 был баг, связанный с неверным отображением элементов ? Или "обновите прошивку" это просто стандартный ответ на все возможные проблемы ? На SP5 кстати говоря все тоже самое.

Евгений Кислов
30.10.2015, 13:32
Если верить истории изменения прошивок, то:
"Версия 3.945
- При закрытии порта очищается внутренний приемный буфер."
Как видно, про некорректную работу с визуальными компонентами ничего не сказано. Вы можете подтвердить что в версии 3.939 был баг, связанный с неверным отображением элементов ? Или "обновите прошивку" это просто стандартный ответ на все возможные проблемы ? На SP5 кстати говоря все тоже самое.

Как можно заметить, в истории изменений не отражены версии 3.940-3.944.

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

Еще вам необходимо обновить таргет до v23:
http://www.owen.ru/uploads/txtlic.php?url=http:/ftp.owen.ru/index.html/CoDeSys3/03_Targets/Owen_Target_Install_3.5.4.20_v23.zip

SG_User
30.10.2015, 13:36
Как можно заметить, в истории изменений не отражены версии 3.940-3.944.

Действительно, обновление прошивки - стандартный ответ на некоторые вопросы. Если после обновления проблема сохранится, то выложите, пожалуйста, архив проекта.
Так все-таки был баг: да или нет ? Затевать обновление прошивки на объекте в 5 тыс. км от Москвы ради "стандартного ответа" не хочется. К тому же, если при обновлении данный девайс помрет, то следующим "стандартным ответом",надо полагать будет "обратитесь в сервисный центр" ?

Евгений Кислов
30.10.2015, 13:37
Так все-таки был баг: да или нет ? Затевать обновление прошивки на объекте в 5 тыс. км от Москвы ради "стандартного ответа" не хочется. К тому же, если при обновлении данный девайс помрет, то следующим "стандартным ответом",надо полагать будет "обратитесь в сервисный центр" ?

Обновите таргет до v23 сначала и отпишитесь, решило ли это проблему.
http://www.owen.ru/uploads/txtlic.php?url=http:/ftp.owen.ru/index.html/CoDeSys3/03_Targets/Owen_Target_Install_3.5.4.20_v23.zip

SG_User
30.10.2015, 14:10
Обновите таргет до v23 сначала и отпишитесь, решило ли это проблему.
http://www.owen.ru/uploads/txtlic.php?url=http:/ftp.owen.ru/index.html/CoDeSys3/03_Targets/Owen_Target_Install_3.5.4.20_v23.zip
Спасибо, именно это и помогло. Прошивка и версия остались теми же. Менеджер пакетов показывал, что текущая версия таргетов - 23. Пришлось сначала удалить, а затем установить Вашу. Евгений,еще раз спасибо за оперативность !!!

Сергей_Сарапул
06.11.2015, 17:19
Доброе время суток,
посмотрел 11.2.1 про управление прямоугольником, но у меня стоит задача изменения размера независимо по каждой из 2-х осей (непропорционально) - как это можно сделать ?

Сергей_Сарапул
06.11.2015, 17:23
Как написал пришла мысль - сделать через полигон будет правильнее :)

Евгений Кислов
06.11.2015, 19:05
Как написал пришла мысль - сделать через полигон будет правильнее :)

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

Пока можно воспользоваться этой темой: http://www.owen.ru/forum/showthread.php?t=20738

Сергей_Сарапул
06.11.2015, 20:58
Спасибо, обязательно использую

KAPITOSHKARU
12.11.2015, 08:20
Как управлять визуализацией из программы понятно.
Но как отследить в программе какая визуализация включена на данный момент времени? При условии, что на визуализации используются фреймы. VisuElems.CurrentVisu - показывает активную визуализацию, а что во фрейме данной визуализации нет информации в данной переменной.

Как ведет себя VisuElems.CurrentVisu если несколько пользователей?

Как ведет себя VisuElems.CurrentVisu если активна и СПК и Web визуализация, при условии что спк один пользователь, а на Web другой пользователь. У каждого своя визуализация открыта.

Евгений Кислов
12.11.2015, 08:47
Как управлять визуализацией из программы понятно.
1. Но как отследить в программе какая визуализация включена на данный момент времени? При условии, что на визуализации используются фреймы. VisuElems.CurrentVisu - показывает активную визуализацию, а что во фрейме данной визуализации нет информации в данной переменной.

2. Как ведет себя VisuElems.CurrentVisu если несколько пользователей?

3. Как ведет себя VisuElems.CurrentVisu если активна и СПК и Web визуализация, при условии что спк один пользователь, а на Web другой пользователь. У каждого своя визуализация открыта.

1. Вам нужен параметр Переключить переменную фрейма (см. табл. 5 пп. 7).

2,3. Если в проекте используется CurrentVisu (т.е. стоит галочка в Менеджере визуализации), то визуализация для всех пользователей становится общей. Т.е. если оператор СПК перейдет на другой экран, то для клиента веб-визуализации также отработает переход. Поэтому крайне не рекомендуется использовать CurrentVisu в проектах, где у визуализации несколько клиентов. В следующей версии документа будет пример независимого (для клиентов) переключения визуализаций. Если вкратце, то



// проверялось только на SP7
// в проекте нет CurrentVisu

VAR

pClientData : POINTER TO VisuElems.VisuStructClientData;
sVisuName:STRING; // имя экрана, на который переключаемся
END_VAR

// Локальное переключение экранов (только для пользователя, который активирует переход)

VisuElems.g_VisuManager.SetMainVisu(pClientData, sVisuName);


// Глобальное переключение экранов (для всех пользователей сразу)

VisuElems.g_VisuManager.SetMainVisuGlobally(VisuEl ems.Visu_ClientType.Webvisualization,sVisuName);
VisuElems.g_VisuManager.SetMainVisuGlobally(VisuEl ems.Visu_ClientType.Targetvisualization,sVisuName) ;

KAPITOSHKARU
12.11.2015, 09:05
// проверялось только на SP7

к сожалению не понял этой строки (CODESYS V3.5 SP7 - так?)

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

Конкретно - несколько ПЧВ по таймеру опрашиваем только слово состояние, при переходе на виз. с отображением частоты напряжения и других нужных функций опрашиваем только то, что показывает экран. и тому пользователю что на СПК и отдельно что на web. Т.е. на СПК просматриваем ПЧВ1 , а на WEB ПЧВ15?

Евгений Кислов
12.11.2015, 09:10
к сожалению не понял этой строки (CODESYS V3.5 SP7 - так?)

Это значит, что код проверялся только на версии 3.5 SP7. От версии к версии иногда меняются имена системных переменных.


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

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

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

KAPITOSHKARU
12.11.2015, 09:54
Задача ясна, будем прорабатывать. К сожалению, сходу не могу ответить, как это реализовать.
Очень буду благодарен.
еще один нюанс - у меня CODESYS V3.5 SP5 Patch 5 обязательно переходить на CODESYS V3.5 SP7?

Евгений Кислов
12.11.2015, 10:16
Очень буду благодарен.
еще один нюанс - у меня CODESYS V3.5 SP5 Patch 5 обязательно переходить на CODESYS V3.5 SP7?

В контексте приведенного выше кода - нет, он отработает и на SP5 Patch5. Переходить на SP7 имеет смысл после выхода прошивки СПК, которая будет его поддерживать.

RV9WFJ
13.11.2015, 06:23
к сожалению не понял этой строки (CODESYS V3.5 SP7 - так?)

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

Конкретно - несколько ПЧВ по таймеру опрашиваем только слово состояние, при переходе на виз. с отображением частоты напряжения и других нужных функций опрашиваем только то, что показывает экран. и тому пользователю что на СПК и отдельно что на web. Т.е. на СПК просматриваем ПЧВ1 , а на WEB ПЧВ15?
В контексте вашей задачи ИМХО гораздо лучше просто опрос ПЧВ разнести по времени. Т.е не надо 20 раз в секунду опрашивать один ПЧВ. Лучше в каждом цикле опрашивать какой-то кусок одного ПЧВ и так все по очереди. А команды на запись писать с высшим приоритетом без очереди. Так у вас и скорость реакции будет и все данные с каждого ПЧВ, можно их наверх в SCADa отдавать без привязок к экранам СПК.

P_Ilya
13.11.2015, 08:51
В контексте вашей задачи ИМХО гораздо лучше просто опрос ПЧВ разнести по времени. Т.е не надо 20 раз в секунду опрашивать один ПЧВ. Лучше в каждом цикле опрашивать какой-то кусок одного ПЧВ и так все по очереди. А команды на запись писать с высшим приоритетом без очереди. Так у вас и скорость реакции будет и все данные с каждого ПЧВ, можно их наверх в SCADa отдавать без привязок к экранам СПК.

Если переменных не много, то это хорошее решение. А если в каждом слейве по несколько сотен переменных (не все нужны, но они есть), то что делать?

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

Илья

KAPITOSHKARU
13.11.2015, 09:36
Мое видение работы моей программы.
23-ПЧВ 1й ком
8-8АС 9-ПР200 2й ком
По таймеру опрашиваю на ПЧВ слово состояние, командное слово и частоту на двигатель (болезнь всех частотников: при долгой работе бывает заклинит редуктор а частотник разгоняет постоянно мотор от 0 до 10Гц и крутит по табло 8 - 10Гц, а ошибку не показывает. Не знаю как в этой ситуации поведет себя ПЧВ, но по опыту работы на данном предприятии опрашивать выходную частоту буду постоянно и защищать мотор в совокупности со своим опытом. (http://www.owen.ru/forum/showthread.php?t=22493&p=186611&viewfull=1#post186611) На этом прошу прекратить обсуждения работы ПЧВ и посмотреть название темы продолжить можно на моей теме
Форум-Программируемые устройства - ОВЕН СПК - СПК207 И ПЧВ1/2 как организовать связь по RS485 (http://www.owen.ru/forum/showthread.php?t=22493&p=184125&viewfull=1#post184125))
Касаемо автоматики:
при возникновении внештатной ситуации по слову состояния - опрашиваем параметры вышедший из установленных пределов указанные в слове состояния.
Касаемо ручного управления:
при активации окна управления конкретного ПЧВ, например ПЧВ1 визуализация 1, на которой 2 кнопки прямо и реверс, ток двигателя, частота двигателя, напряжение двигателя, температуры от ПЧВ. Это все начинаем опрашивать. Но про другие ПЧВ тоже не забываем потому как 4 линии автоматизации работают как по отдельности, так и вместе. И работая в автоматическом режиме электрик должен проверить какой-то двигатель, но постоянно опрашивать эти параметры не вижу смысла. Еще будет опрос раз в 5 минут для архивации значений токов частоты и температуры двигателей и ПЧВ.
Как то так. есть у кого какие замечания и предложения пишите, буду рад.

KAPITOSHKARU
13.11.2015, 09:52
~~~ В визуализации каждое обращение к переменной выполнял бы через функцию. В этой функции формировал бы множество запрошенных регистров. В параллельной задаче, которая осуществляет связь со слейвами, на основе этого множества формировал бы телеграммы для считывания данных у слейвов. В этом случае у меня был бы всегда актуальный минимальный набор требуемых для отображения регистров.

Илья

Полностью согласен и действую именно так.


В контексте вашей задачи ИМХО гораздо лучше просто опрос ПЧВ разнести по времени. Т.е не надо 20 раз в секунду опрашивать один ПЧВ. Лучше в каждом цикле опрашивать какой-то кусок одного ПЧВ и так все по очереди. А команды на запись писать с высшим приоритетом без очереди. Так у вас и скорость реакции будет и все данные с каждого ПЧВ, можно их наверх в SCADa отдавать без привязок к экранам СПК.
Хотелось бы сделать так, но опыта и знаний не хватает.

gecha
13.11.2015, 13:03
Не могу разобраться с фреймом. Попробовал создать по описанию "Использование интерфейса фрейма", дошёл до привязки к элементу ФРЕЙМ двух экранов и не смог в ссылках открыть Frame и привязать соответствующие переменные. Может я не правильно VAR_IN_OUT создал? Я их ввёл в PROGRAM PLC_PRG сразу после END_VAR.

Евгений Кислов
13.11.2015, 13:13
Не могу разобраться с фреймом. Попробовал создать по описанию "Использование интерфейса фрейма", дошёл до привязки к элементу ФРЕЙМ двух экранов и не смог в ссылках открыть открыть Frame и привязать соответствующие переменные. Может я не правильно VAR_IN_OUT создал? Я их ввёл в PROGRAM PLC_PRG сразу после END_VAR.

Переменные VAR_IN_OUT должны быть объявлены в интерфейсе экрана визуализации. См. п. 6.4.1.

gecha
13.11.2015, 19:11
Век живи, век учись, и в CODESYS помрёшь. Спасибо за подсказку, видимо уже мозг начал плавиться. Пока радовался этой мелочи, с панели задач Windows "убежал" виртуальный контроллер. Где его найти?

Евгений Кислов
13.11.2015, 19:21
Век живи, век учись, и в CODESYS помрёшь. Спасибо за подсказку, видимо уже мозг начал плавиться. Пока радовался этой мелочи, с панели задач Windows "убежал" виртуальный контроллер. Где его найти?

Как вариант, меню Пуск - 3S Codesys - Codesys Control Win V3.

gecha
13.11.2015, 19:45
Не вариант. Нашёл в папке GatewayPLC CODESYSControl.ico, CODESYSControlService.exe, CODESYSControlSysTray.exe
Переустановил CODESYS, всё появилось

Евгений Кислов
13.11.2015, 21:22
Не вариант. Нашёл в папке GatewayPLC CODESYSControl.ico, CODESYSControlService.exe, CODESYSControlSysTray.exe

Если что, попробуйте запустить CODESYSControlService.exe с ключом -d.

gecha
14.11.2015, 21:21
Подскажите, что и где я делаю не так? Заново закачал CODESYS V3.5 SP6, CODESYS Control Win Sys Tray появился на панели задач, связь с виртуальным контроллером установил, загружаю проект в виртуальный контроллер, а он пишет: несоответствие версий: выбран=3.5.6.0, онлайн=3.5.5.50
Вы писали "Если что, попробуйте запустить CODESYSControlService.exe с ключом -d.", только где его найти, может подскажите дорогу, только не на ...

gecha
14.11.2015, 21:31
Загружаю проект в виртуальный контроллер, а он ругается: Выбранная целевая система отличается от подключенного устройства несоответствие версий: выбран 3.5.6.0 онлайн 3.5.5.50. Если не трудно, как для малоопытного покажите путь поиска, только не на ...

Евгений Кислов
14.11.2015, 21:45
Загружаю проект в виртуальный контроллер, а он ругается: Выбранная целевая система отличается от подключенного устройства несоответствие версий: выбран 3.5.6.0 онлайн 3.5.5.50. Если не трудно, как для малоопытного покажите путь поиска, только не на ...

Поменяйте версию таргета для виртуального контроллера. Правой кнопкой на Device - Обновить устройство - поставьте галочку Показывать все версии и выберите таргет с версией 3.5.5.50.

gecha
14.11.2015, 22:31
Спасибо, Евгений. Всё получилось

gecha
16.11.2015, 17:55
В своём проекте мне необходимо сделать 10 элементов "Фрейм", я делаю как описано в 11.3.3., допустимо ли сделать 10 фреймов? Кнопка 1 у меня TRUE? остальные 9 по умолчанию FALSE, после компиляции выдал ошибки C0018: '(PLC - PRG.bdetal1)' is no valid assignment target
[ERROR] Glekran [Device: Plc Logic: Application](Вход элемента ID 17): 10 ошибок, 11 предупреждений.
bdetal1 - это соответственно одна из 10 кнопок выбора. В чём у меня ошибка?

Евгений Кислов
16.11.2015, 18:14
В своём проекте мне необходимо сделать 10 элементов "Фрейм", я делаю как описано в 11.3.3., допустимо ли сделать 10 фреймов? Кнопка 1 у меня TRUE? остальные 9 по умолчанию FALSE, после компиляции выдал ошибки C0018: '(PLC - PRG.bdetal1)' is no valid assignment target
[ERROR] Glekran [Device: Plc Logic: Application](Вход элемента ID 17): 10 ошибок, 11 предупреждений.
bdetal1 - это соответственно одна из 10 кнопок выбора. В чём у меня ошибка?

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

gecha
16.11.2015, 18:37
Это мой первый проект, поэтому сильно не пинайте. Честно говоря, отправляю первый раз, отправил его во вложения, поэтому не знаю дойдёт или нет. Если нет, то подскажите каким путём его отправить?

Евгений Кислов
16.11.2015, 19:12
Это мой первый проект, поэтому сильно не пинайте. Честно говоря, отправляю первый раз, отправил его во вложения, поэтому не знаю дойдёт или нет. Если нет, то подскажите каким путём его отправить?

В коде на всех кнопках ошибки - PLC-PRG, а должно быть - PLC_PRG.

Замените через автозамену (Ctrl+H).

gecha
16.11.2015, 19:59
Спасибо, Евгений. Простите за мою невнимательность.
Ещё вопрос. Программу этого проекта я сначала сделал на ПР-114, теперь решил попробовать на СПК. На экране "Данные ввода" мне необходимо, чтобы технолог вводил номер программы и ей должно соответствовать "Заданная температура" и "Заданное время", программ может быть много. Оператор на главном экране нажав "Номер программы" вводит, например, число 10, десятой программе в таблице на странице "Данные ввода" соответствует значение Т=180 гр, и время 120 мин. Эти данные должны появиться в соответствующих ячейках фрейма: "Температура заданная" и "Время заданное". С помощью чего это можно реализовать? Причём оператору нет доступа на страницу "Данные ввода"

Евгений Кислов
16.11.2015, 20:03
Спасибо, Евгений. Простите за мою невнимательность.
Ещё вопрос. Программу этого проекта я сначала сделал на ПР-114, теперь решил попробовать на СПК. На экране "Данные ввода" мне необходимо, чтобы технолог вводил номер программы и ей должно соответствовать "Заданная температура" и "Заданное время", программ может быть много. Оператор на главном экране нажав "Номер программы" вводит, например, число 10, десятой программе в таблице на странице "Данные ввода" соответствует значение Т=180 гр, и время 120 мин. Эти данные должны появиться в соответствующих ячейках фрейма: "Температура заданная" и "Время заданное". С помощью чего это можно реализовать? Причём оператору нет доступа на страницу "Данные ввода"

См. табл. 5 пп. 7. Оператор будет изменять эту переменную с помощью элемента ввода, открывая в фрейме соответствующий экран. Доступа к самим экранам фрейма у него при этом не будет.

gecha
16.11.2015, 20:25
Что то я не понял. Оператор перед загрузкой детали в печь поднимает крышку печи, выбирает номер детали (если это первая загружаемая деталь) "Деталь 1", выбирает "Номер программы", в ячейках температура и время должны появиться данные, забитые технологом, закрывает крышку, нажимает "Пуск" для первой детали, время пошло. Допустим через 20 минут он загружает другую деталь, с другой программой, при этом первая продолжает вариться и т.д. Время для разных деталей может быть разное, температура - постоянная для отдельных групп деталей. Причём в процессе варки будет корректироваться время для каждой детали в зависимости от увеличения или уменьшения температуры (крышку подняли - температура упала, следовательно время должно увеличиться).
А таблицу 5 где смотреть?

Евгений Кислов
16.11.2015, 20:27
Что то я не понял. Оператор перед загрузкой детали в печь поднимает крышку печи, выбирает номер детали (если это первая загружаемая деталь) "Деталь 1", выбирает "Номер программы", в ячейках температура и время должны появиться данные, забитые технологом, закрывает крышку, нажимает "Пуск" для первой детали, время пошло. Допустим через 20 минут он загружает другую деталь, с другой программой, при этом первая продолжает вариться и т.д. Время для разных деталей может быть разное, температура - постоянная для отдельных групп деталей. Причём в процессе варки будет корректироваться время для каждой детали в зависимости от увеличения или уменьшения температуры (крышку подняли - температура упала, следовательно время должно увеличиться).
А таблицу 5 где смотреть?

В документе СПК. Визуализация.

gecha
16.11.2015, 20:34
Таблица 5 это где?

Евгений Кислов
16.11.2015, 20:42
Таблица 5 это где?

См. п. 8.2.6.

gecha
16.11.2015, 20:46
Спасибо, буду разбираться

gecha
16.11.2015, 21:54
А печать из файла доступна?

Евгений Кислов
16.11.2015, 21:56
А печать из файла доступна?

Вопрос не до конца понятен. О каком именно файле идет речь?

gecha
16.11.2015, 22:24
Например, распечатать экран визуализации или список переменных

Евгений Кислов
17.11.2015, 08:29
Например, распечатать экран визуализации или список переменных

Распечатать экран визуализации можно из HMI- или web-визуализации (запущенных на ПК) с помощью действия Выполнить команду, см. табл. 42.

KAPITOSHKARU
17.11.2015, 09:48
Уважаемый Евгений как насчет диалога от 12.11.2015, 10:10 #118? (http://www.owen.ru/forum/showthread.php?t=22038&p=186422&viewfull=1#post186422) можно ли программе передать активную визуализацию с активным фреймом?

Евгений Кислов
17.11.2015, 09:58
Уважаемый Евгений как насчет диалога от 12.11.2015, 10:10 #118? (http://www.owen.ru/forum/showthread.php?t=22038&p=186422&viewfull=1#post186422) можно ли программе передать активную визуализацию с активным фреймом?

Я не забываю об этом вопросе. Как только появится ответ от 3S, то сразу отпишусь.

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

KAPITOSHKARU
17.11.2015, 11:00
P.S. - я, видимо, не сразу понял. Вы хотите в программу еще получать имя (или номер) экрана фрейма, открытого в данный момент у клиента визуализации? Подразумевается, что у веб-визуализации много клиентов, у каждого из которых открыты свои фреймы, и это должно обрабатываться в программе?

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

Евгений Кислов
17.11.2015, 12:26
Да и от таргет-визуализации тоже. Номера будет вполне достаточно, а то создавая кучу своих переменных не очень точно получается.

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

KAPITOSHKARU
17.11.2015, 15:03
Евгений, может у вас есть свое видение решения данной проблемы?
Бог с пользователями, хотя бы по открытой визуализации (фреймы тоже убрать можно) опрашивать переменные.
CurrentVisu - использовать не будем, т.к. на веб и таргет должны отображаться разные визуализации.
группы пользователей будет 3 - Мастер цеха, электрик, операторы.

Евгений Кислов
17.11.2015, 15:09
Евгений, может у вас есть свое видение решения данной проблемы?
Бог с пользователями, хотя бы по открытой визуализации (фреймы тоже убрать можно) опрашивать переменные.
CurrentVisu - использовать не будем, т.к. на веб и таргет должны отображаться разные визуализации.
группы пользователей будет 3 - Мастер цеха, электрик, операторы.

Возможно, вам стоит просто контролировать переключения экранов? Т.е., условно говоря, при нажатии на кнопку перехода на экран Параметры ПЧВ (неважно, где и кто ее нажимает) взводится бит. Этот бит вы контролируете в программе, и если он TRUE, то запускается опрос ПЧВ. При необходимости можно учесть группу активного пользователя (VisuElems.CurrentUserGroupId), если кому-то например надо показывать только часть параметров.

KAPITOSHKARU
17.11.2015, 15:47
Возможно, вам стоит просто контролировать переключения экранов? Т.е., условно говоря, при нажатии на кнопку перехода на экран Параметры ПЧВ (неважно, где и кто ее нажимает) взводится бит. Этот бит вы контролируете в программе, и если он TRUE, то запускается опрос ПЧВ. При необходимости можно учесть группу активного пользователя (VisuElems.CurrentUserGroupId), если кому-то например надо показывать только часть параметров.
Спасибо наверное так и буду делать. Создам массив кнопок привязанных к визуализациям.
Только не совсем понятно как увязать несколько открытых визуализаций. если ST код писать на каждую кнопку то при открытии одной виз. остальным виз. присваиваем логический ноль. и получается - кто последний зашел тот и смотрит, а остальные выключаются для опроса и т.д.

Евгений Кислов
17.11.2015, 16:02
Спасибо наверное так и буду делать. Создам массив кнопок привязанных к визуализациям.
Только не совсем понятно как увязать несколько открытых визуализаций. если ST код писать на каждую кнопку то при открытии одной виз. остальным виз. присваиваем логический ноль. и получается - кто последний зашел тот и смотрит, а остальные выключаются для опроса и т.д.

Тогда можно оперировать не битами, а счетчиком. Кто-то перешел по кнопке - плюс 1. Еще кто-то перешел - еще плюс 1. Первый ушел - минус 1. Второй ушел - минус один, получаем ноль, и прекращаем опрос.

Идею подсказал Алексей Осинский (http://www.owen.ru/forum/member.php?u=36418).

gecha
17.11.2015, 20:30
Подскажите, как сделать секундомер на экране визуализации, который запускается кнопкой ПУСК и сбрасывается кнопкой СТОП

Евгений Кислов
18.11.2015, 07:59
Подскажите, как сделать секундомер на экране визуализации, который запускается кнопкой ПУСК и сбрасывается кнопкой СТОП

Вот пример (сделан на SP6).

KAPITOSHKARU
18.11.2015, 08:37
Вот пример (сделан на SP6).
Евгений почему вы используете CODESYS V3.5 SP6, а СПК207 идет с прошивкой для CODESYS V3.5 SP5 или я ошибаюсь и мне тоже нужно установить CODESYS V3.5 SP6?
Хотя на сайте написано Версия 3.5 SP6 / SP7 (Для ознакомления, не рекомендуется использовать в рабочих проектах)

Евгений Кислов
18.11.2015, 08:49
Евгений почему вы используете CODESYS V3.5 SP6, а СПК207 идет с прошивкой для CODESYS V3.5 SP5 или я ошибаюсь и мне тоже нужно установить CODESYS V3.5 SP6?

Все верно. Прошивка для СПК с поддержкой SP6-SP7 в процессе разработки. Но никто не мешает заранее ознакомиться с новой версией, потренироваться с виртуальным контроллером и т.д.

Для реальных проектов пока что использовать SP6-SP7 я бы не рекомендовал.

KAPITOSHKARU
18.11.2015, 09:19
Инструменты, вкладка Опции, раздел Свойства, кнопка Заданные наборы свойств Сделано!

Так же не получается 11.3.6. Тиражирование элементов (Multiply Visu Elements)
Ставлю [$FIRSTDIM$] а в контекстном меню команда Multiply Visu
Elements не появляется.

Евгений Кислов
18.11.2015, 09:20
Так же не получается 11.3.6. Тиражирование элементов (Multiply Visu Elements)
Ставлю [$FIRSTDIM$] а в контекстном меню команда Multiply Visu
Elements не появляется.

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

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

Эдуард_Н
18.11.2015, 11:47
А не подскажете когда эту прошивку ждать?:)

Евгений Кислов
18.11.2015, 11:55
А не подскажете когда эту прошивку ждать?:)

Это могут подсказать только здесь. :)
http://www.owen.ru/forum/showthread.php?t=22175

Эдуард_Н
18.11.2015, 11:56
Ваах, я там уже был:D

gecha
18.11.2015, 21:19
А этот таймер можно загрузить в проект?

Евгений Кислов
18.11.2015, 21:40
А этот таймер можно загрузить в проект?

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

firetester
19.11.2015, 08:38
Доброго времени суток! Решил попробовать на 3.5 sp7 нарисовать визуализацию для СПК207. Столкнулся с несколькими проблемами: 1) Положение диалога по У не регулируется
20897
И 2) Диалог прозрачный и выглядит это... ну не очень. Понятно что можно примитив во весь диалог нарисовать, а нет ли возможности отменить прозрачность? (общий фон для всех диалогов) или установить изображение на задний фон? Изображение на фоне тоже пропадает к стати. На скрине примерные рамки диалога красным прямоугольником.
20896

Евгений Кислов
19.11.2015, 08:41
Доброго времени суток! Решил попробовать на 3.5 sp7 нарисовать визуализацию для СПК207. Столкнулся с несколькими проблемами: 1) Положение диалога по У не регулируется
20897
И 2) Диалог прозрачный и выглядит это... ну не очень. Понятно что можно примитив во весь диалог нарисовать, а нет ли возможности отменить прозрачность? (общий фон для всех диалогов) или установить изображение на задний фон? Изображение на фоне тоже пропадает к стати. На скрине примерные рамки диалога красным прямоугольником.
20896

1. Переключитесь на английскую версию - в ней это меню работает корректно. В последних версиях CODESYS это исправлено и в русской локализации.
2. Да, фон и фоновое изображение для диалога не работают, вероятно, это баг. Совсем недавно обсудили это вот здесь:
http://www.owen.ru/forum/showthread.php?t=22647

firetester
19.11.2015, 09:01
Как у Вас оперативно, спасибо! Тогда ещё один вопрос по трендам: Создаю тренд чтоб архивировать график температуры, ошибки компиляции. Я что-то делаю не так? 20898

Евгений Кислов
19.11.2015, 09:16
Как у Вас оперативно, спасибо! Тогда ещё один вопрос по трендам: Создаю тренд чтоб архивировать график температуры, ошибки компиляции. Я что-то делаю не так? 20898

Вы все делаете правильно, но прошивка СПК еще не поддерживает тренды. Подробнее см. в первом посте темы.

firetester
19.11.2015, 09:20
Вы все делаете правильно, но прошивка СПК еще не поддерживает тренды. Подробнее см. в первом посте темы.

Это я помню, конечно. Надеялся потрогать тренды хотя бы на виртуальном контроллере. Ну чтож, будем ждать. Думаю, заказчик не обидится если мы чуть позже допилим ))) Спасибо ещё раз.

Евгений Кислов
19.11.2015, 09:22
Это я помню, конечно. Надеялся потрогать тренды хотя бы на виртуальном контроллере. Ну чтож, будем ждать. Думаю, заказчик не обидится если мы чуть позже допилим ))) Спасибо ещё раз.

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

firetester
19.11.2015, 13:33
1. Переключитесь на английскую версию - в ней это меню работает корректно. В последних версиях CODESYS это исправлено и в русской локализации.

Увы и ах...
20905

20906

Евгений Кислов
19.11.2015, 13:34
Увы и ах...
20905

В последних - это я CODESYS 3.5 SP7 Patch3 имел в виду.
http://cleverhouse.club/scope/bms/release-codesys-v3-5-sp7-patch-3.html

20907

Arimon
19.11.2015, 15:34
Добрый вечер! Когда все же будут реализованы тренды? Почему они не поддерживаются, это какой-то коммерческий ход? Вроде элементарная и одна из самых необходимых функций.
Например, организация в которой я работаю не закупает контролеры Овен именно по этой причине и, думаю, много таких еще найдется.

Евгений Кислов
19.11.2015, 15:37
Добрый вечер! Когда все же будут реализованы тренды? Почему они не поддерживаются, это какой-то коммерческий ход? Вроде элементарная и одна из самых необходимых функций.
Например, организация в которой я работаю не закупает контролеры Овен именно по этой причине и, думаю, много таких еще найдется.

Добрый вечер. К сожалению, не могу ответить на ваш вопрос. Можете ознакомиться с сообщениями из темы, посвященной грядущей прошивке с поддержкой трендов: http://www.owen.ru/forum/showthread.php?t=22175&page=3&p=184924&viewfull=1#post184924

gecha
19.11.2015, 20:52
Спасибо за подсказку с секундомером, разобрался, всё очень просто.
1. А почему, когда я запускаю его на виртуальном контроллере, секунды идут не равномерно, это зависит от компа или ещё от чего то?
2. Мне нравится работать не в ST, a в CFC, как то нагляднее. В "Лоджике" есть возможность создавать макросы, а здесь есть такая возможность?

Евгений Кислов
19.11.2015, 21:02
Спасибо за подсказку с секундомером, разобрался, всё очень просто.
1. А почему, когда я запускаю его на виртуальном контроллере, секунды идут не равномерно, это зависит от компа или ещё от чего то?
2. Мне нравится работать не в ST, a в CFC, как то нагляднее. В "Лоджике" есть возможность создавать макросы, а здесь есть такая возможность?

1. Не могу прокомментировать. Вполне возможно.
2. Есть возможность создавать функциональные блоки. Почитайте в справке или документе СПК. Первый старт. К визуализации это отношения не имеет.

gecha
19.11.2015, 22:08
Понял, спасибо

NightBeer
20.11.2015, 14:12
Евгений, выложите, пожалуйста пример со сменой визуализации методом:
VisuElems.VisuElemBase.g_VisuManager.SetMainVisu(p ClientData, sVisuName);

Проверяю на SP7 - контроллер улетает в исключение, хотя глобальная смена SetMainVisuGlobally работает прекрасно.

Евгений Кислов
20.11.2015, 14:15
Евгений, выложите, пожалуйста пример со сменой визуализации методом:
VisuElems.VisuElemBase.g_VisuManager.SetMainVisu(p ClientData, sVisuName);

Проверяю на SP7 - контроллер улетает в исключение, хотя глобальная смена SetMainVisuGlobally работает прекрасно.

Да, у меня тоже. Поясню ситуацию. pClientData берется у клиента визуализации. Соответственно, непосредственно в коде с ней работать практически невозможно. Можно повесить на кнопку в визуализации, но смысла в этом особого нет, т.к. точно такой же эффект даст обычная кнопка с действием Изменить отображаемую визуализацию.

В целом, можно лишь констатировать, что обработка текущей визуализации в программе возможна только через CurrentVisu, как это ни печально.

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

NightBeer
20.11.2015, 14:43
Да, у меня тоже. Поясню ситуацию. pClientData берется у клиента визуализации. Соответственно, непосредственно в коде с ней работать практически невозможно. Можно повесить на кнопку в визуализации, но смысла в этом особого нет, т.к. точно такой же эффект даст обычная кнопка с действием Изменить отображаемую визуализацию.

В целом, можно лишь констатировать, что обработка текущей визуализации в программе возможна только через CurrentVisu, как это ни печально.

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

Жаль, очень бы хотелось работать с VisuElems.VisuStructClientData, в её структуре есть очень вкусные переменные, понятно что в коде программы с ней не поработаешь, но хотелось бы использовать её в визуализации.

NightBeer
20.11.2015, 15:01
Итак, 2 пользователя открывают в браузерах визуализацию, и первый пользователь меняет визуализацию у второго:
pClientData := VisuElems.g_ClientManager.GetNextClient;
IF pClientData > 0 THEN
sVisuName := 'Visualization_1';
VisuElems.VisuElemBase.g_VisuManager.SetMainVisu(p ClientData, sVisuName);
END_IF

Т.е. SetMainVisu работает, осталось только понять как достать VisuElems.VisuStructClientData не следующего, а текущего пользователя :)

NightBeer
20.11.2015, 15:23
Меняем визуализацию у всех пользователей, методом перечисления, при этом можно по условию вхождения в группу или по имени.
sVisuName := 'Visualization_1';
VisuElems.g_ClientManager.BeginIteration();
REPEAT
pClientData := VisuElems.g_ClientManager.GetNextClient();
IF pClientData > 0 THEN
VisuElems.VisuElemBase.g_VisuManager.SetMainVisu(p ClientData, sVisuName);
END_IF
UNTIL
pClientData = 0
END_REPEAT;

Этим методом можно вывести список пользователей и у кого какая визуализация открыта и т.д.

Евгений Кислов
20.11.2015, 15:36
при этом можно по условию вхождения в группу или по имени

Речь об управлении пользователями (User Managment)?

Да, как вариант, такой подход в определенных случаях возможен.


Этим методом можно вывести список пользователей и у кого какая визуализация открыта и т.д.

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

Или список пользователей - список пользователей из User Managment?

NightBeer
20.11.2015, 15:42
Речь об управлении пользователями (User Managment)?

Да, как вариант, такой подход в определенных случаях возможен.

Я имел ввиду, что этим вариантом можно показать определенную визуализацию для конкретного пользователя или для группы пользователей. Также можно вывести список подключенных пользователей и открытых у них визуализаций и координаты курсора можно получить для конкретного пользователя. Вообще очень интересная штука эта ClientData. Но вопрос в том как получить ClientData текущего пользователя без перечисления.

Евгений Кислов
20.11.2015, 15:48
Я имел ввиду, что этим вариантом можно показать определенную визуализацию для конкретного пользователя или для группы пользователей. Также можно вывести список подключенных пользователей и открытых у них визуализаций и координаты курсора можно получить для конкретного пользователя.


Можно тогда подробнее на этом остановиться? Расскажите, как это сделать, я думаю, многим будет интересно


Но вопрос в том как получить ClientData текущего пользователя без перечисления.

3S показывали как раз вариант с перечислением. Как я понимаю, иного способа (по крайней мере, доступного пользователям) вытащить ClientData в программу не существует.

NightBeer
20.11.2015, 16:06
3S показывали как раз вариант с перечислением. Как я понимаю, иного способа (по крайней мере, доступного пользователям) вытащить ClientData в программу не существует.
Где показывает?

Насчет примера... Вот например функция получения имен подключенных пользователей.

VAR_GLOBAL
ArrUserName: ARRAY [1..100] OF WSTRING;
END_VAR

VAR
pClientData: POINTER TO VisuElems.VisuStructClientData;
i: INT;
END_VAR

VisuElems.g_ClientManager.BeginIteration();
FOR i := 1 TO 100 DO
ArrUserName[i] := "";
END_FOR
i := 0;
REPEAT
i := i + 1;
pClientData := VisuElems.g_ClientManager.GetNextClient();
IF pClientData > 0 THEN
IF i <= 100 THEN
ArrUserName[i] := pClientData^.GlobalData.CurrentUserName;
END_IF
END_IF
UNTIL
pClientData = 0
END_REPEAT;


Но мне нужен ID текущего пользователя, в принципе только из-за него и начал всё это рыть.

Евгений Кислов
20.11.2015, 16:11
Где показывает?

В ответ на наш запрос (заданный после вопроса одного из пользователей) 3S предоставила несколько примеров, в т.ч. тот, до которого вы дошли сами - с перечислением. На мой взгляд, рекомендовать пользователям использовать внутренности системных библиотек, на которых нет никакого описания, не стоит. Я надеюсь, в будущем для этого появится какая-то обвязка, и работать уже можно будет непосредственно с переменными (как сейчас с CurrentVisu).

Спасибо за выложенный код.

NightBeer
20.11.2015, 16:57
Вообщем придумал как дать каждому уникальный ID. Независимо от того под каким именем вошел пользователь каждому присваивается свой ID, генерирую и записываю его в pClientData^.GlobalData.CurrentFullUserName пользователя. При этом если зашли 2 пользователя с одинаковым именем, VisuElems.CurrentFullUserName у них всё равно будет разный :)

KAPITOSHKARU
23.11.2015, 10:17
Как управлять визуализацией из программы понятно.
Но как отследить в программе какая визуализация включена на данный момент времени? При условии, что на визуализации используются фреймы. VisuElems.CurrentVisu - показывает активную визуализацию, а что во фрейме данной визуализации нет информации в данной переменной.

Как ведет себя VisuElems.CurrentVisu если несколько пользователей?

Как ведет себя VisuElems.CurrentVisu если активна и СПК и Web визуализация, при условии что спк один пользователь, а на Web другой пользователь. У каждого своя визуализация открыта. (http://www.owen.ru/forum/showthread.php?t=22038&p=186414&viewfull=1#post186414)

Уважаемый Евгений может быть воспользовавшись моим опытом, описанным тут (http://www.owen.ru/forum/showthread.php?t=22493&p=187483&viewfull=1#post187483), вы сможете помочь в моей проблеме, а то с визуализацией мне на это еще месяц понадобиться. Думаю и в руководство это можно включить. Если бы в руководствах было бы такое описано, то экономия и вашего и нашего времени была бы колоссальна! название пункта можно дать, на пример, Поиск нужной переменной

Евгений Кислов
23.11.2015, 10:34
[/URL]

Уважаемый Евгений может быть воспользовавшись моим опытом, описанным тут (http://www.owen.ru/forum/showthread.php?t=22038&p=186414&viewfull=1#post186414), вы сможете помочь в моей проблеме, а то с визуализацией мне на это еще месяц понадобиться. Думаю и в руководство это можно включить. Если бы в руководствах было бы такое описано, то экономия и вашего и нашего времени была бы колоссальна! название пункта можно дать, на пример, [U]Поиск нужной переменной

Если удастся получить информацию о том, как вытащить в программу имя экрана, открытого во фрейме, я сразу отпишусь в этой теме и, вероятно, включу это в следующую версию руководства.

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

KAPITOSHKARU
23.11.2015, 11:50
Если удастся получить информацию о том, как вытащить в программу имя экрана, открытого во фрейме, я сразу отпишусь в этой теме и, вероятно, включу это в следующую версию руководства.

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

Раньше мог с Вами полностью согласиться, потому как про описанную в моей теме переменную, был тот же ответ, только по телефону. Но поработав немного плотнее сам смог найти, даже не зная как и где искать, думаю с Вашими знаниями CODESYS V3.5 SP5 Patch 5, это будет легче и быстрее найти нужную переменную. Заостряю ваше внимание на CODESYS V3.5 SP5 Patch 5, т.к. проект будет создан на нем. Запуск в очень ближайшем времени, но и в тестовом режиме пока разумеется, потом перейдем на графики и все остальные прелести SP7.
Спасибо за внимание, понимание и помощь.

Евгений Кислов
23.11.2015, 12:07
Раньше мог с Вами полностью согласиться, потому как про описанную в моей теме переменную, был тот же ответ, только по телефону. Но поработав немного плотнее сам смог найти, даже не зная как и где искать, думаю с Вашими знаниями CODESYS V3.5 SP5 Patch 5, это будет легче и быстрее найти нужную переменную. Заостряю ваше внимание на CODESYS V3.5 SP5 Patch 5, т.к. проект будет создан на нем. Запуск в очень ближайшем времени, но и в тестовом режиме пока разумеется, потом перейдем на графики и все остальные прелести SP7.
Спасибо за внимание, понимание и помощь.

Дело в том, что в контексте визуализации речь уже идет не о переменных.

Я, например, догадываюсь, что в итоге решение вашего вопроса сведется к:

20969

но без подсказки 3S не смогу догадаться, как с этим взаимодействовать. И, честно говоря, не могу дать гарантии, что такая подсказка будет нам дана.

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

KAPITOSHKARU
23.11.2015, 14:04
Device.Application.VisuElems.Visu_Globals.g_VisuMa nager
Может так?

Думаю нужно завести пользователей и попробовать
20970

Не работает без галочки напротив CurrentVisu

Евгений Кислов
23.11.2015, 14:23
Device.Application.VisuElems.Visu_Globals.g_VisuMa nager
Может так?

Без понятия.

Если не сложно, опишите, пожалуйста, еще раз, четко и пошагово, что вы ожидаете от визуализаций и фреймов?

Если я правильно понимаю, то это:

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

Соответственно, у меня вопрос - как вы собираетесь идентифицировать клиентов? С помощью Управления пользователями ? (логины, пароли, группы пользователей)

firetester
24.11.2015, 08:15
После компиляции вот это
21007
превращается в это
21008

Уже и перерисовывал заново, и менял местами начало и конец, но вот так ))) Посмотрим, как на реальной СПК будет...

KAPITOSHKARU
24.11.2015, 09:21
Если не сложно, опишите, пожалуйста, еще раз, четко и пошагово, что вы ожидаете от визуализаций и фреймов?
На данном этапе разработки программы нужно отследить какой экран открыт во фрейме. Т.е. во фрейме открыта визуализация управления ПЧВ
Содержание визуализации:
Пуск прямо, Пуск реверс, заданная частота, Напряжение , ток, слово состояние ПЧВ.
при активности данного экрана включаем триггеры опросов тех переменных которые опрашиваются по триггерам.
При не активности триггеры выключаем.
может опустить пока фреймы, сделаю я визуализации по больше с одинаковым содержанием, что бы от фреймов отказаться.
Это упростит задачу?

Приблизительно так (http://www.owen.ru/forum/showthread.php?t=22493&p=187601&viewfull=1#post187601)

Евгений Кислов
24.11.2015, 10:05
На данном этапе разработки программы нужно отследить какой экран открыт во фрейме. Т.е. во фрейме открыта визуализация управления ПЧВ
Содержание визуализации:
Пуск прямо, Пуск реверс, заданная частота, Напряжение , ток, слово состояние ПЧВ.
при активности данного экрана включаем триггеры опросов тех переменных которые опрашиваются по триггерам.
При не активности триггеры выключаем.
Приблизительно так (http://www.owen.ru/forum/showthread.php?t=22493&p=187601&viewfull=1#post187601)

И, повторимся, мы хотим независимого переключения фреймов для клиентов.

Ну, а давайте попробуем так? Пример с тремя экранами в фрейме, независимое для клиентов переключение с помощью кнопок, определение активного экрана фрейма в программе.

1. Пишем такой вот код:

21014

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

2. Экран визуализации будет выглядеть так:

21015

3. К фрейму мы привязываем вот такую переменную:

21016

4. А кнопки переключения будут выполнять такой код (остальные две, соответственно, будут присваивать 1 и 2):

21017

5. Ну и к прямоугольнику привяжем уже понятно что:

21018

Прикладываю архив для 3.5 SP7 Patch3. Скачать эту версию CODESYS можно здесь:
http://cleverhouse.club/scope/bms/release-codesys-v3-5-sp7-patch-3.html

SP5 Patch5 у меня, к сожалению, нет.

KAPITOSHKARU
24.11.2015, 11:23
Очень вам благодарен.
Буду применять.

P_Ilya
25.11.2015, 08:56
при активности данного экрана включаем триггеры опросов тех переменных которые опрашиваются по триггерам.
При не активности триггеры выключаем.

Я это делаю без информации об активном экране/фрейме. Все обращения к регистрам слейва обёрнуты в функцию read_reg(). В этой функции формируется список переменных, которые нужно запросить у слейва (или у слейвов). В отдельной задаче, которая выполняет обмен со слейвами, данный списк используется по назначению.


// Регистр шины MODBUS.
TYPE mb_reg :
STRUCT
vis: WORD; // Значение для визуализации; новые значения
// (те, которые вводит оператор) заносятся сюда же.
save: WORD; // полученное от слейва значение
END_STRUCT
END_TYPE
// Путём сравнения полей vis и save (в функции find_changed_val) будем определять
// изменние значения в регистре MODBUS для последующей передачи его слейву.

Список требуемых регистров слейва:

VAR_GLOBAL CONSTANT
ring_size: WORD := 100;
END_VAR

VAR_GLOBAL
arr: ARRAY [0..ring_size-1] OF WORD;
head_idx: WORD := 0;
tail_idx: WORD := 0;
END_VAR



FUNCTION ring_isIn : BOOL
VAR_INPUT
val: WORD;
END_VAR
VAR
test_idx: WORD;
ret_val: BOOL;
END_VAR

test_idx := ring.head_idx;
ret_val := FALSE;

WHILE ( NOT ret_val AND (test_idx <> ring.tail_idx) ) DO
IF ( ring.arr[test_idx] = val ) THEN
ret_val := TRUE;
ELSE
// test_idx := next_idx( test_idx );
IF ( test_idx = ring_size - 1 ) THEN //test_idx := next_idx( test_idx );
test_idx := 0;
ELSE
test_idx := test_idx + 1;
END_IF
END_IF
END_WHILE

ring_isIn := ret_val;



FUNCTION read_reg : word
VAR_INPUT
idx: WORD;
END_VAR

IF ( NOT ring_isIn(idx) ) THEN
ring_put( idx );
END_IF

read_reg := mb.regs[idx].vis;


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

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

Илья

KAPITOSHKARU
26.11.2015, 09:46
Супер, простинько и со вкусом, но есть переменные которые просто отображаются на экране, такие как выходное напряжение, потребление тока, имею в виду информационные переменные - они должны читаться при активной визуализации и (или) опрашиваться программой автоматизации и (или) программой защиты данного устройства и (или) линии в целом.
Идея очень хорошая, обязательно возьму себе на вооружение.

Евгений Кислов
01.12.2015, 12:09
Обновил документ до версии 1.0 (см. первый пост темы).

Список изменений:

1. Исправлены ошибки предыдущей версии.
2. Добавлена глава 12: Визуализация на СПК: ограничения и рекомендации
3. Добавлена глава 13: Список изменений в новых сервис-паках (SP) CODESYS
4. Добавлен пример 11.4.1: CODESYS HMI
5. Добавлен пример 11.4.2: Работа с динамическими точками (элемент Ломаная)
6. Добавлен пример 11.4.3: Считывание координат курсора
7. Добавлен пример 11.4.4: Многопользовательский доступ. Независимая обработка клиентов визуализации
8. Добавлен пример 11.4.5: Подсчет количества клиентов web-визуализации

Это релизная версия документа. Следующие будут появляться по мере накопления новых примеров (если будет возникать потребность в таковых) и расширению функционала CODESYS.

Эдуард_Н
05.12.2015, 15:18
7. Добавлен пример 11.4.4: Многопользовательский доступ. Независимая обработка клиентов визуализации

И где он этот пример?

Евгений Кислов
05.12.2015, 16:32
И где он этот пример?

Внутри документа содержится описательная часть и ссылки на примеры от 3S по этой теме.

gecha
09.12.2015, 19:06
Подскажите, пожалуйста, как присвоить значения из таблицы кнопкам Y и Z?
Сколько строк может иметь таблица максимум?
сколько ячеек можно сделать энергонезависимыми?

Евгений Кислов
09.12.2015, 19:43
Подскажите, пожалуйста, как присвоить значения из таблицы кнопкам Y и Z?


Я так понимаю, на экране технолога все работает нормально, вопрос об экране оператора.
Вводите новую переменную (например, x_op) и используйте ее для выбора строки таблицы, значения которой будет видеть оператор.
Для отображения значений используйте переменные PLC_PRG.arrTable[PLC_PRG.x_op].y_teh и PLC_PRG.arrTable[PLC_PRG.x_op].z_teh. Соответственно, выводить их надо будет через %s.



Сколько строк может иметь таблица максимум?


Точное число назвать нельзя. Очень много. Но создав таблицу с тысячами строк и прокручивая ее в визуализации, вы, скорее всего, столкнетесь с лагами. Попробуйте для начала ограничиться 20 строками на лист таблицы, и общим числом строк - 100.



сколько ячеек можно сделать энергонезависимыми?


Retain-память СПК (энергонезависимое ОЗУ) составляет 128 Кб. Для сравнения,переменная типа INT занимает 2 байта.

gecha
09.12.2015, 20:50
Ура, заработало!!!!
Спасибо, Евгений.
Поскольку ни разу с таблицами не работал, то хочу спросить, а как создать таблицу листами? Или где прочитать эту информацию?

Евгений Кислов
09.12.2015, 21:08
Ура, заработало!!!!
Спасибо, Евгений.
Поскольку ни разу с таблицами не работал, то хочу спросить, а как создать таблицу листами? Или где прочитать эту информацию?

Увеличьте размер вашей структуры, и вы увидите, что у таблицы справа появится полоса прокрутки. Потом просто растяните ее, получив нужное число строк. "Листом" я назвал то число строк, которое единовременно отображается в таблице.

В документе это видно на рис. 8.30. Там на листе 4 строки, общее число строк таблицы - 5.

gecha
09.12.2015, 21:21
Спасибо, Евгений, а то в моём представлении "Лист" - это как страница в книге. Теперь я понимаю.

Евгений Кислов
11.12.2015, 08:59
Состоялся релиз CODESYS 3.5 SP8 (http://cleverhouse.club/scope/bms/release-codesys-v3-5-sp8.html). Основные изменения в визуализации:

1. Добавлен элемент Clock (Аналоговые часы). Может отображать системное время или переменную типа TOD. Внешний вид настраивается (фоновое изображение, цвета/толщина стрелок и т.д.)

21257

2. У трассировки и тренда появилась возможность настроить толщину и тип линии:

21258

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

3. В конфигурации тревог теперь можно добавлять дополнительные столбцы сообщений:

21259

21260

Помимо этого, у таблицы тревог появились три дополнительные переменные типа DWORD:

CountAlarms - число тревог в таблице;
CountVisibleRows - число строк в таблице, которое видит пользователь в данный момент;
CurrentScrollIndex - индекс прокрутки. Увеличивается/уменьшается на единицу при прокрутке таблицы на строку вниз/вверх соответственно. Значение этой переменной может изменяться пользователем.

21261

gecha
14.12.2015, 11:20
Борьба с трудностями продолжается. С Вашей помощью я построил таблицу и теперь могу заносить и доставать оттуда данные. Теперь я столкнулся с проблемой: данная программка написана на ST, а основная PLC_PRG на CFC и теперь у меня проблема со встраиванием этой программы (ST) в основную (CFC).

Евгений Кислов
14.12.2015, 11:28
Борьба с трудностями продолжается. С Вашей помощью я построил таблицу и теперь могу заносить и доставать оттуда данные. Теперь я столкнулся с проблемой: данная программка написана на ST, а основная PLC_PRG на CFC и теперь у меня проблема со встраиванием этой программы (ST) в основную (CFC).

В программе на CFC добавьте блок с именем вашей ST программы. При этом предварительно удалите ее из Конфигурации задач.

gecha
14.12.2015, 11:36
Т. е. , мне нужно создать функциональный блок на ST, а затем добавить его в основную программу на CFC?

Евгений Кислов
14.12.2015, 11:46
Т. е. , мне нужно создать функциональный блок на ST, а затем добавить его в основную программу на CFC?

Да, можно так. Можно вообще вызывать одну программу из другой.

21310

gecha
14.12.2015, 12:12
Когда я создавал таблицу отдельной программой, то в PLC_PRG все переменные были локальными и заключались между VAR и END_VAR. При создании ФБ PLC_PRG предлагает создать входные, выходные и локальные переменные, а что в моём случае будет являться входными и что выходными переменными?

Евгений Кислов
14.12.2015, 12:20
Когда я создавал таблицу отдельной программой, то в PLC_PRG все переменные были локальными и заключались между VAR и END_VAR. При создании ФБ PLC_PRG предлагает создать входные, выходные и локальные переменные, а что в моём случае будет являться входными и что выходными переменными?

Давайте зайдем с другой стороны. Почему бы вам просто не переписать вашу ST-программу (которая занимает пару строчек кода) на CFC?

gecha
14.12.2015, 12:31
У меня такая мысль была, но я не знаю как на CFC будет выглядеть блок, который обозначает массив и т. д. Может быть есть какой то способ перехода из ST на CFC и наоборот, но к сожалению я его не знаю.

Евгений Кислов
14.12.2015, 12:39
У меня такая мысль была, но я не знаю как на CFC будет выглядеть блок, который обозначает массив и т. д. Может быть есть какой то способ перехода из ST на CFC и наоборот, но к сожалению я его не знаю.

Нет, автоматически конвертировать из ST в CFC нельзя. Можно просто переложить код, проблемы в этом нет. Вот дословное повторение вашей PLC_PRG на CFC, с использованием всего лишь одного типа блоков:

21313

gecha
14.12.2015, 12:49
Во как, а я думал надо искать какой то огромный блок (размером с таблицу), а оно во но как. Спасибо, Евгений, буду дальше дерзать.

2318279
14.12.2015, 14:58
Доброго времени суток, у меня такой вопрос, возможно ли на СПК использование изображений png с переменной прозрачностью и как это отразится на производительности?

Евгений Кислов
14.12.2015, 15:03
Доброго времени суток, у меня такой вопрос, возможно ли на СПК использование изображений png с переменной прозрачностью и как это отразится на производительности?

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

2318279
14.12.2015, 15:10
Например гардиент из цвета в прозрачность, http://i76.beon.ru/21/54/15421/65/74050365/postbg.png

Евгений Кислов
14.12.2015, 15:56
Например гардиент из цвета в прозрачность, http://i76.beon.ru/21/54/15421/65/74050365/postbg.png

Провел сейчас небольшой тест. Подобные изображения на СПК поддерживаются, но четко видны горизонтальные полосы (по-моему, это называется варп):

21315

В web-визуализации, соответственно, все отображается корректно:

21316

Ощутимых изменений в быстродействии не заметил (тестировал на СПК207). Как стандартная рекомендация - не стоит использовать изображения с разрешением, превышающим разрешение дисплея СПК (800x480).

2318279
14.12.2015, 16:01
Провел сейчас небольшой тест. Подобные изображения на СПК поддерживаются, но четко видны горизонтальные полосы (по-моему, это называется варп):

21315

В web-визуализации, соответственно, все отображается корректно:

21316

Ощутимых изменений в быстродействии не ощутил (тестировал на СПК207). Как стандартная рекомендация - не стоит использовать изображения с разрешением, превышающим разрешение дисплея СПК (800x480).

Огромное спасибо за тест!

gecha
25.12.2015, 22:22
Создал проект в SP6, на виртуальном контроллере работает нормально, два дня назад приобрёл СПК207, загрузил в него свой проект и тут встретились "теория" с "практикой". По порядку.
1. В проекте у меня выводилось на кнопку время от пуска до стопа в формате %t[H:mm:ss], в реальном контроллере на эту кнопку вылезло системное (текущее) время
2. В проекте я создал таблицу из 300 строк и двух столбцов в которую необходимо было записывать значения времени и температуры и чтобы эти значения были энергонезависимыми, после загрузки программы в контроллер мне пришлось уменьшить таблицу до 10 строк, "Памяти не хватает", - так ругнулся контроллер. Каким образом можно сохранить такую таблицу, не прибегая к RETAIN?
3. Реально ли загрузить в СПК207 проект из SP6?

Евгений Кислов
25.12.2015, 22:32
Создал проект в SP6, на виртуальном контроллере работает нормально, два дня назад приобрёл СПК207, загрузил в него свой проект и тут встретились "теория" с "практикой". По порядку.
1. В проекте у меня выводилось на кнопку время от пуска до стопа в формате %t[H:mm:ss], в реальном контроллере на эту кнопку вылезло системное (текущее) время
2. В проекте я создал таблицу из 300 строк и двух столбцов в которую необходимо было записывать значения времени и температуры и чтобы эти значения были энергонезависимыми, после загрузки программы в контроллер мне пришлось уменьшить таблицу до 10 строк, "Памяти не хватает", - так ругнулся контроллер. Каким образом можно сохранить такую таблицу, не прибегая к RETAIN?
3. Реально ли загрузить в СПК207 проект из SP6?

1. Такого быть не должно, но если случилось - конвертируйте время в STRING и выводите через %s.
2. Можно воспользоваться рецептами (см. п. 11.3.8) или работой с файлами (например, через библиотеку CAA File).
3. Да, при условии, что в нем не используются тренды или иной функционал, не поддержанный в текущей прошивке СПК.

gecha
25.12.2015, 23:44
1. К сожалению случилось, пробовал конвертировать, как Вы советуете, но выдаёт ошибку, которую не могу найти: при нажатии на ошибку - выводит на экран визуализации и всё. Обычно ошибка "подсвечивается" красной чертой, а в данном случае подчеркнут экран визуализации и "невозможна конвертация"
3. Вообще то хотелось использовать тренд.

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

1. Выложите архив проекта, пожалуйста - посмотрю, в чем может быть дело. Можно из него вырезать все, что не касается данной проблемы.
3. Тогда надо подождать новой прошивки. Или напишите в личку Александру Приходько - он отправит вам тестовую версию (которую нельзя использовать на объектах, только для ознакомления).
http://www.owen.ru/forum/showthread.php?t=22175&page=8&p=190188&viewfull=1#post190188

жекон
26.12.2015, 09:56
Написал я ему а в ответ тишина....

gecha
26.12.2015, 10:47
Вот мой проект
Функциональный блок v_t выполняет вывод текущего времени в переменную vr_tek

Евгений Кислов
26.12.2015, 13:50
Вот мой проект
Функциональный блок v_t выполняет вывод текущего времени в переменную vr_tek

21520

В первом приближении - сделайте вот так. Время будет отображаться в стиле "t#10s200ms". При необходимости прямо в ФБ с помощью функции TIME_TO_STRING переводите его в строку и превращаете, например, в "10.200" с помощью строковых функций библиотеки Standard.

gecha
26.12.2015, 14:11
Как то не очень красиво получается, но всё равно спасибо.

Евгений Кислов
26.12.2015, 14:16
Как то не очень красиво получается, но всё равно спасибо.

Да, согласен. Можно попросить вас провести эксперимент - сделать новый проект с парой прямоугольников, к которым привязаны переменные типа TIME, TOD, DT и используется форматирование типа %t[H:mm:ss]. Залить в СПК и посмотреть, отобразится ли хоть одна из переменных, или везде будет системное время. Также сообщите версию прошивки и таргета.

Еще вспомнил - я по вашей просьбе когда-то выкладывал такой пример:
http://www.owen.ru/forum/showthread.php?t=22038&page=16&p=187005&viewfull=1#post187005

и точно помню, что запускал его на своем СПК - отображалось именно значение переменной, а не системное время. Проверьте у себя, пожалуйста.

gecha
26.12.2015, 14:29
Конечно я это сделаю, может не так быстро, но постараюсь.
Версия прошивки: 3.951
Таргет: spk207.03.web
Да, ещё у меня вопрос, а СПК207 связывается с ПК только по Ethernet?

Евгений Кислов
26.12.2015, 14:32
Конечно я это сделаю, может не так быстро, но постараюсь.
Версия прошивки: 3.951
Таргет: spk207.03.web
Да, ещё у меня вопрос, а СПК207 связывается с ПК только по Ethernet?

C CODESYS - через Ethernet, для терминала есть debug-порт.

Обратите внимание, я немного дополнил свой предыдущий пост - проверьте у себя еще VisuTimerExample, пожалуйста.

gecha
27.12.2015, 15:23
Столкнулся с проблемой: проект писал в SP6, теперь не могу его конвертировать в SP5, после компиляции выдаёт ошибки:
------ Компиляция : Приложение: Device.Application -------
типизировать код...
[ERROR] visudialogs, 3.5.5.0 (system): Numpad: C0032: Невозможно конвертировать тип 'Неизвестный тип: 'pTempStruct^.stVariableValue'' в тип 'STRING'
[ERROR] visuelembase, 3.5.6.40 (system): Visu_PRG: Your current visualization profile does not work correctly with your current compiler version. Please update your compilerversion or change your visualization profile.
Компиляция завершена -- 2 ошибок

Евгений Кислов
27.12.2015, 18:17
Ну, вполне предсказуемая ситуация. Обратную совместимость никто и не обещал. Можно, как вариант, попробовать выбрать профиль визуализации для SP5 (см. п. 5.2 документа СПК. Визуализация), но не факт, что это решит проблему.

gecha
28.12.2015, 01:29
Извините пожалуйста, не смог ответить сразу, сын пришёл с армии, а из 6 в 5 компилирую, выдаётся ошибка, которую я выкладывал в прошлом сообщении, я уже и библиотеки менял, и проект пытался экспортировать, ничего не получается, выдаёт две ошибки, которые я указал выше.

Евгений Кислов
28.12.2015, 09:23
Извините пожалуйста, не смог ответить сразу, сын пришёл с армии, а из 6 в 5 компилирую, выдаётся ошибка, которую я выкладывал в прошлом сообщении, я уже и библиотеки менял, и проект пытался экспортировать, ничего не получается, выдаёт две ошибки, которые я указал выше.

Профиль визуализации вы пробовали менять?

Напишите, пожалуйста, зачем вам, собственно, открывать проект в SP5, если вы разрабатывали его в SP6?

gecha
28.12.2015, 13:52
А он загрузится в СПК207?

gecha
28.12.2015, 15:45
У меня всё получилось и всё заработало, и время показывает нормальное, единственное, столкнулся с проблемой подключения модулей ввода-вывода, аналоговый видит, а дискретный - то видит, то нет, но я думаю добью. Спасибо за помощь.

Сема
19.01.2016, 14:39
Добрый день, Евгений, расскажите пожалуйста, а можно ли организовать приветственное окно на СПК107, чтобы при подаче питание возникло приветствие и исчезло???

Эдуард_Н
19.01.2016, 15:02
Добрый день, Евгений, расскажите пожалуйста, а можно ли организовать приветственное окно на СПК107, чтобы при подаче питание возникло приветствие и исчезло???

Ну почему нельзя? Сделать можно, да и не сложно это.

Евгений Кислов
19.01.2016, 15:05
Добрый день, Евгений, расскажите пожалуйста, а можно ли организовать приветственное окно на СПК107, чтобы при подаче питание возникло приветствие и исчезло???

Если речь именно об окне поверх экрана визуализации - то крайне затруднительно.

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

gecha
21.01.2016, 19:24
Добрый вечер, Евгений. Я переключаю фреймы при помощи кнопок, проект многопользовательский, можно как то переключать экраны фреймов переменной, например по завершении какого то процесса переменная принимает истину и включает соответствующий экран

Евгений Кислов
21.01.2016, 20:30
Добрый вечер, Евгений. Я переключаю фреймы при помощи кнопок, проект многопользовательский, можно как то переключать экраны фреймов переменной, например по завершении какого то процесса переменная принимает истину и включает соответствующий экран

Добрый вечер.

Используйте параметр Переключить переменную фрейма. Записывайте туда индекс экрана. Индексы соответствуют порядку экранов в конфигурации фрейма - первый экран имеет индекс 0, следующий - 1 и т.д.

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

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