В преддверии новой визуализации на html5 и css3 поковыряем нюансы старой-доброй визуализации под TwinCAT 2.
Начнем с простого — надписью может быть любой элемент, достаточно отключить у него бордюр:
Colors → No frame color.
Кнопкой может быть любой элемент, но элемент
Button (кнопка) ведет себя как кнопка и не требует дополнительных телодвижений от разработчиков. Правда она не так удобна в плане изменения своего внешнего вида, зато всегда ведет себя как кнопка, а не как ХЗ-что.
Поле
Variables → Invisible — это в прямом смысле "невидимость".
TRUE → элемент невидим,
FALSE → элемент отображается, то есть его видно.
Значение параметров фигуры (цвет, размер и пр.) могут задаваться в нескольких местах одновременно и тогда одни значения начинают перекрывать другие. Можно задать величину параметра как статическое значение (например, цвет в поле
Colors). Это значение перекроется значением, заданным в виде переменной из раздела
ColorVariables. Переменную, в свою очередь, может перекрыть программная структура из раздела
Programmability. При отладке программы, значения переменных введенные через
Watch-n-Recipe перекрывают вообще все.
Можно добавить новую точку в ломаную линию или многоугольник: удерживая клавишу Ctrl, тянем левой кнопкой мыши за уже существующую точку и вытягиваем из нее новую точку.
Ctrl + Shift + клик — удаляет уже существующую точку.
Последнюю точку в фигуре нужно ставить правой кнопкой мыши.
Motion absolute:
- Углы задаются в градусах.
- Масштабирование, оно же Scale: 1000 = 100% размера фигуры. Масштабирование касается всей фигуры в целом, в том числе и расстояния до центра фигуры.
- Y-offset, X-offset — сдвинуть всю фигуру влево-вправо / вверх-вниз.
- Angle — поворот относительно центра (кружок с перекрестием), но(!): Shape (прямоугольники и эллипсы) вращаются так, что верх фигуры остается всегда вверху. Polygon (многоугольники, контуры, кривые) вращаются так, что все точки совершают вращение относительно центра фигуры. Если вам нужен квадрат вращающийся относительно своего центра — нарисуйте его из ломаной поли-линии.
Можно добавить один экран визуализации на другой экран в виде элемента меньшего размера. Размер такого элемента определяется типом масштабирование пропорций:
- Anisotropic — произвольные пропорции и размер.
- Isotropic — фиксированные пропорции, но произвольный размер.
- Fixed — фиксированные пропорции и размер.
- Fixed and scrollable — как и Fixed, но можно прокручивать (не работает в Windows CE, см. раздел про ограничения).
Пунктирные, штрихпунктирные и прочие тире-тире-точки можно получить, задав
ColorVariables → Frame flag отличный от нуля. Тип линии меняется только во время работы визуализации и не меняется во время разработки:
- 0 сплошная ____
- 1 пунктир - - - -
- 2 точки ......
- 3 тире-точка -.-.-
- 4 тире-точка-точка -..-..-
- 8 невидимая, но ее толщина учитывается
Input → Execute Program — это целый отдельный мир программирования. Здесь можно создавать макросы (
Macro). Например, при нажатии кнопки
Сохранить на экране задания параметров, сменяется текущая визуализация (
Input → Zoom to viz.). Можно сделать так, что одновременно со сменой визуализации будет задаваться значение какой-либо переменной (как глобальной, так и локальной в подпрограмме). Таким образом можно отследить, что пользователь уходит с экрана настроек и необходимо сохранить persisitent-переменные, если он нажал
ОК, и не сохранять, если он ушел по кнопке
Отмена.
Programmability → Object name, если установить галку и ввести имя переменной, то после перекомпиляции проекта появляется новая глобальная переменная-структура типа
VisualObjectType. Объявление этой переменной не видно в проекте, но она как суслик все-равно есть и доступна для
Intellisense по
F2.
Все эти вопросы неплохо
рассмотрены в справочной системе, но на английском языке (или немецком) и все равно всплывают раз-за-разом: