CODESYS форум

Добро пожаловать на официальный форум CODESYS
Deutsche Version English version russian version 
Текущее время: Вс май 28, 2017 7:35 pm

Часовой пояс: UTC+01:00




Начать новую тему  Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
 Заголовок сообщения: Динамические тексты CDS V3
СообщениеДобавлено: Вт май 10, 2011 11:33 am 
Не в сети

Зарегистрирован: Вт май 10, 2011 9:38 am
Сообщения: 0
Список текстов
Список текстов - это объект, который управляется в окне POU или присвоен приложению в окне Устройства. Он является основой:
1. мультиязыковой поддержки для статических или динамических текстов и подсказок в визуализациях и в управлении тревогами, а также
2. обмена динамическим текстом.
Списки текстов можно экспортировать и (пере)импортировать. Экспорт необходим, если Целевой визуализации требуется языковой файл xml-формата. Он также может пригодиться при переводе (см. ниже).
Формат может быть текстовым и XML. Можно активировать поддержку Unicode.
Каждый текст однозначно идентифицируется своим заполнителем. Он содержит текстовые строки, каждая из которых внутри списка имеет уникальный идентификатор (ID, состоящий из любой последовательности символов) и идентификатор языка. Список текстов задается при конфигурировании текста для элемента визуализации.
В зависимости от текущего языка системы программирования в режиме онлайн будет отображаться соответствующая текстовая строка. Все тексты доступны, по крайней мере, в языке "по умолчанию" (зависит от текущей конфигурации CoDeSys) и выборочно в других языках. Если для какого-то текста не найдено соответствий в текущем языке CoDeSys, то используется язык по умолчанию. Каждый текст может содержать описания форматирования.

Динамические тексты могут динамически изменяться в режиме онлайн. Индекс текста (ID), представляющий собой строку символов, должен быть уникальным в используемом тексте и, в отличие от GlobalTextList, задается пользователем. Также, в отличие от GlobalTextList, списки текстов для динамических текстов должны задаваться явно командой 'Добавить объект' по правому клику мыши. (Рисунок 1)
Изображение
Рис.1 – Добавление объекта Text List

Если такой пункт в контекстном меню отсутствует, то необходимо открыть настройки (Рисунок 2.1-2.3)
Изображение
Рис 2.1 – Настройки

Изображение
Рис 2.2. – Настройки

и выбрать пункт “Professional” в выпадающем списке (Рисунок 2.3)
Изображение
Рис.2.3 - Выпадающий список

При конфигурации элемента визуализаци с помощью свойства 'Динамические тексты'/TextList’ / 'Список текстов' можно использовать все доступные списки динамических текстов. Если вы задаете имя списка текстов вместе с индексом текста (ID; его можно ввести напрямую или использовать переменную проекта, определющую строку ID), то данный текст можно будет изменять в режиме онлайн.
Если в Целевой визуализации список динамических текстов нужен в качестве языкового файла, то он должен быть экспортирован. Путь к файлу задается в Опциях визуализации. Как и список глобальных текстов (GlobalTextList) список динамических текстов также можно экспортировать и после необходимого редактирования импортировать обратно.
После того как был выбран пункт “TextList” откроется окно, которое предлагает ввести название объекта. Назовем его, к примеру, ErrorList. Он появился в дереве “Application”. Так же появилась вкладка с названием нашего списка текстов (Рисунок 3).

Изображение
Рис. 3 – Вкладка со списком текстов.

Базовая структура списка текстов:
Изображение

Список текстов изначально представляет из себя таблицу со столбцами “ID” и “Default”. “ID” – это идентификатор (индекс), “Default” – по умолчанию используемый текст сообщения об ошибке. Для того, чтобы отредактировать поле списка, сначала щелкните мышкой по нужному полю, а затем нажмите <Пробел> или повторно щелкните мышкой для появления рамки редактирования. Введите необходимые символы и закройте рамку нажатием клавиши <Ввод>. Для перемещения по полям можно использовать клавиши со стрелками.
Представьте, что вам нужен элемент визуализации, который каждый раз при обнаружении ошибки выдает соответсвующее сообщение.
Ваше приложение обрабатывает события ошибок, которые определяются числовыми ID, присвоенными целочисленной переменной ivar_err.
Заполним таблицу по примеру с рисунка 4.

Изображение
Рис. 4 – Заполненная таблица


Видно что по умолчанию английский язык, так же в списке текстов есть русски и немецкий языки.
Для использования в конфигурации визуализации ID ошибок задайте переменную типа STRING, например, strvar_err. Чтобы присвоить целочисленное значение idvar_err переменной strvar_err используйте: strvar_err:=INT_TO_STRING(ivar_err);)
Теперь strvar_err можно ввести в качестве параметра 'Индекс текста' в конфигурации свойства элемента визуализации 'Динамические тексты' (Рисунок 5). Таким образом, данный элемент будет выводить на экран соответствующее сообщение об ошибке в режиме онлайн.

Изображение
Рис. 5. – Параметры визуализации


Присвоим каждому из изображенных пунктов параметры как на рисунке 5.
Пример, переменные проекта, обрабатывающие ID ошибок; конфигурация элемента визуализации (диалог Свойства), который должен отображать сообщение об ошибке.
Код:
PROGRAM PLC_PRG
VAR
   Strvar_err: STRING;
   idvar_err: INT;
   write_err, read_err, time_is_o:BOOL;
   alarm_light: BOOL;
END_VAR

IF  read_err=TRUE THEN
idvar_err:=0;
   END_IF
//----------------------------------
   IF  write_err=TRUE THEN   
idvar_err:=1;
   END_IF
//---------------------------------
   IF  time_is_o=TRUE THEN
idvar_err:=2;   
   END_IF
//-------------------------------
   IF  read_err <> TRUE AND write_err<>TRUE AND time_is_o<>TRUE THEN
   idvar_err:=3;
   alarm_light:=FALSE;
   END_IF
   
   
IF read_err=TRUE OR write_err=TRUE OR time_is_o=TRUE THEN
   alarm_light:=TRUE;
END_IF
   
 strvar_err:=INT_TO_STRING(idvar_err);


Теперь при срабатывании датчиков о какой либо ошибке текст на объектах визуализации будет изменяться динамически.
Сделаем визуализацию и проследим это:
Изображение
Рис. 7 – Объекты визуализации.

Блоки RE, WE, TO, CLEAR будут эмулировать срабатывания датчиков ошибки чтения, записи, времени соответственно. CLEAR – сброс датчиков в нормальное состояние.
Изображение
Рис. 8 – Сработал датчик ошибки чтения.

Изображение
Рис. 9 – Сработал датчик ошибки записи.

Изображение
Рис. 10 – Устройство вернулось в нормальное состояние.

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

Импорт/экспорт списков текстов
Эта команда (категория Список текстов) обеспечивает обмен данными с другими программами, такими как, например, Excel. Используемый формат данных - .csv ("Comma Separated Values" - значения, разделенные запятыми). При выполнении команды открывается следующий диалог (Рисунок 11):

Изображение
Рис. 11 – Диалог импорта/экспорта текстов


Указав соответствующие пути или используя Ассистент ввода, можно задать файлы для экспорта, импорта или сравнения. Выполняемые действия задаются посредством активации соответствующих пунктов в нижней части диалога:
Импорт: При импорте внешнего файла его набор данных сопоставляется с набором данных проекта. Набор данных проекта корректируется в соответствии со следующими правилами:
1. Если данные двух наборов идентичны, то проект не изменяется.
2. Если во внешнем файле был добавлен перевод, то он также будет добавлен и в набор данных проекта.
3. Если текст перевода был изменен, то изменения будут также приняты и в проекте.
4. Если во внешнем файле отсутствуют тексты перевода, то набор данных проекта не будет изменен.
5. Если во внешнем файле была добавлена новая строка, то новая запись данных будет также добавлена в набор файла проекта.
6. Если в проекте содержится дополнительная строка, то она будет сохранена.
7. Изменение в столбце Default может быть воспринято как вставка нового текста. Однако если вместо одного пробела будет стоять несколько, это не будет воспринято как изменение!

Импорт файла замены: при импорте списка текстов изменение в столбце „Default“ воспринимается как вставка новой строки. Причина в том, что столбец „Default“ выполняет роль ключа при сравнении строк во время экспорта/импорта. Если в столбце "Default" изменить текст (исправление ошибки или добавление к существующему тексту), то файл замены станет необходим.
Файл замены выполняется сверху вниз. Таким образом, можно вести историю изменений.
Команда определяет, что сделать со строкой текста. На данный момент доступна только команда REPLACE. Она выполняет следующее:
Текст, введенный в столбце "Default", будет заменен на новый. В примере надпись „Cancel ?“ будет заменена на „Cancel“, а "Do you want to register ?" - на "Do you really want to register ?". Одновременно изменятся тексты всех элементов визуализации, т.е. будут заменены все текстовые объекты в элементах визуализации.
В случае если новый default-текст уже содержится в поле "Default" другой строки, то строка, содержащая заменяемый объект, будет полностью удалена. Элементы визуализации получают соответствующие объекты оставшейся строки с тем же default-объектом. На примере „Do you really want to register ?!“ должен замениться на „Do you really want to register ?“. В истории изменений видно, что к моменту выполнения команды уже существует строка с этим default-объектом. Во избежание множественного присутствия ключа строка, содержащая текст „Do you really want to register ?!“, будет полностью удалена из списка текстов.

Экспорт При экспорте списков текстов все изменения в проекте сравниваются с внешним файлом. Новый экспорт-файл создается в соответствии со следующими правилами:
1. Если содержание данных идентично, то набор данных экспортируется без изменений.
2. Если в файл проекта был добавлен перевод, то он будет включен в экспорт-файл.
3. Если текст перевода был изменен, то изменение также вступит в силу в экспорт-файле.
4. Если в файле проекта отсутствуют тексты перевода, то в новом наборе данных будет использован перевод шаблона.
5. Если в проект была добавлена новая строка, то эта запись данных будет включена в файл проекта как новый набор данных.
6. Если внешний файл содержит дополнительную строку, то он будет снова экспортирован.
7. Изменение в столбце Default может быть воспринято как вставка нового текста.

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

Замечание: В отличие от GlobalTextList, при обратном импортировании списков динамических текстов никакой проверки и автоматического обновления идентификаторов не будет. Убедитесь, что при редактировании экспортированного списка идентификаторы не изменились.
Поддержка формата Уникод
При необходимости поддержки формата Уникод в Менеджере визуализации должна быть активирована соответствующая опция. Кроме того, для приложения должна быть установлена специальная директива: выберите приложение в дереве устройств, откройте диалог 'Свойства', категория 'Компиляция': в поле Опции компилятора введите "VISU_USEWSTRING". Также учтите необходимость экспорта каких-либо языковых файлов, описанных далее.

Форматирование текста
Кроме ввода простых текстовых строк вы можете также использовать последовательности форматирования для настройки отображения текста в режиме онлайн. Последовательность форматирования всегда состоит из символа "%", за которым следует буква. Она может быть использована отдельно или в сочетании с простым текстом.
Если в текстовую строку вы вставите "%s", то в режиме онлайн она будет заменена на значение переменной, заданной в пункте 'Текстовая переменная' категории 'Текстовые переменные'. Если вы хотите отобразить имя экземпляра переменной, передаваемой функциональному блоку визуализации, необходимо использовать директиву компилятора 'parameterstringof'.
Обратите внимание, что можно использовать любую строку форматирования, соответствующую стандартной функции C-библиотеки 'sprintf'. Необходимо лишь убедиться, что она соответствует типу используемой переменной.

Пример строк и аргументов:
Изображение


Замечание: если вместе с одной из строк форматирования, описанных выше вы хотите вывести на экран знак процента %, необходимо ввести "%%". Например: чтобы в режиме онлайн на экран вывелось "Rate in %: 12", введите "Rate in %%: %s" (если текущее значение переменной - "12").

Вывод системного времени
Если ввести "%t", а затем последовательность специальных заполнителей в квадратных скобках, то в режиме онлайн вместо этого будет отображено системное время. Заполнители определяют формат отображения, см. таблицу ниже.
Синтаксис объекта в поле свойства 'Текст': %t[<заполнители, разделенные "." или ":"> ].
Пример: %t[dd.MM.yyyy HH:mm:ss] - на выходе будет выдана дата и время, например: 12.10.2009 08:22:03

Замечание: вывод не будет работать, если вы вставите перед %t любой иной символ (для "%s", например, это допустимо, см. выше). Импорт проектов V2.3: при импорте старого проекта формат времени %t, который использовался в CoDeSys V2.3, будет автоматически конвертироваться в новый формат%t[]; однако следующие заполнители больше не поддерживаются: %U, %W, %z, %Z.

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

Выравнивание
Горизонтальное и вертикальное выравнивание текста задается в 'Свойствах текста' элемента визуализации.


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC+01:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


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

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB