CoDeSys - визуализация |
Ответить |
Автор | |
Участник Присоединился: 27 Апрель 2005 Категория: Ukraine Online Status: Offline Публикации: 81 |
Опубликовано: 18 Апрель 2007 13:54 |
Вопрос: нужно отобразить перемещение механизма в горизонтальной плоскости. Рисую прямоугольник, задаю Motion absolute X_Offset и т.д. То есть в программе я могу задавать смещение прямоугольника относительно его начального положения. А как узнать из программы начальное (текущее) положение прямоугольника? |
|
Участник Присоединился: 04 Апрель 2005 Категория: Russian Federation Online Status: Offline Публикации: 80 |
|
Не совсем понятен вопрос: после запуска программы или после перезагруза элемент будет находиться там где был помещен во время проектирования или будет смещен относительно исходного положения на инициализационное значение переменной чье значение присваивается параметру Motion absolute X_Offset. А уж как дальше сопоставить положение элемента на экране и реального механизма это дело хитрости разработчика. Или я чавото не понимаю? |
|
Участник Присоединился: 27 Апрель 2005 Категория: Ukraine Online Status: Offline Публикации: 81 |
|
Я создаю эмуляцию объекта. В зависимости от положения прямоугольника на экране нужно задавать значение концевых датчиков. Хотелось бы в программе знать текущие координаты прямоугольника (или хотя бы начальные). Если знаете как - ответьте! |
|
Участник Присоединился: 04 Апрель 2005 Категория: Russian Federation Online Status: Offline Публикации: 80 |
|
Ну если очень хочетсая то начальные координаты можно узнать посмотрев Element List в контекстном меню, там указаны координаты относительно левого верхнего угла. Я для иммитации вентиля использовал CTUD Функциональный блок ‘инкрементный / декрементный счетчик’. Очень удобно, взять шкалу в 100 единиц и сопоставить ее 100% хода устройства, т.е. при 0 на выходе CV срабатывает один датчик при 100 - другой. А далее переприсваиваем Motion absolute X_Offset. выход CV (если надо масштабируем). Помоему в таком варианте знать какие-либо координаты вообще не надо, оперируем смещением относительно начального положения. |
|
Действительный член Присоединился: 01 Июнь 2006 Категория: Russian Federation Online Status: Offline Публикации: 464 |
|
J Вы меня конечно извините, но выбранный Вами способ контроля положения выглядит так, как если бы вы повесили часы на внешней стене своего дома и спрашивали у соседа из дома через дорогу время на этих часах которые бы он наблюдал в бинокль. У Вас есть переменная управляющая положением прямоугольника, она однозначно описывает его положение ее стартовое значение однозначно описывает состояние концевиков, зачем вам текущее положение прямоугольника, все данные у Вас уже есть работайте с этой переменной. Если шаг перемещения прямоугольника меньше длинны хода используйте уставки для переменной. В любом случае включение элемента визуализации непосредственно в математическую модель это изврат. |
|
Действительный член Присоединился: 08 Март 2006 Категория: Russian Federation Online Status: Offline Публикации: 440 |
|
Энто делается так. С каждым элементом визуализации можно связать переменную-об'ект. Пременная-об'ект назначается в свойствах элемента Programmability -> флажок Object name. Переменной дается глобальное имя, и отныне об'ект визуализации доступен для чтения и записи всех своих свойств, (через точечную ноиацию - Pramougolnuc1.PositionX. ....). Свойства перечислены в писании по CoDeSys. P.S. Совет - не следует увлекаться и злоупотреблять созданием переменных-об'ектов по каждому поводу : кажный об'ект хавает приличный шматок ресурсов. С уважением, SAN
|
|
Участник Присоединился: 04 Апрель 2005 Категория: Russian Federation Online Status: Offline Публикации: 80 |
|
Чтобы использовать Programmability нужно незабыть подключить библиотеку SysLibVisu.lib. И все равно определить текущие координаты не получится (только задать и уж потом прочитать). Советую прислушаться к Dismay.
|
|
Действительный член Присоединился: 08 Март 2006 Категория: Russian Federation Online Status: Offline Публикации: 440 |
|
Главная фишка в том, что при создании переменой-обек'та ситуация принципиально меняется : ЗАПИСЫВАЕТ свойства одна функция, а СЧИТЫВАЕТ уже другая (связанная например через драйвер устройства). Включаются, и на полную используются механизмы визуализации, и Кодеру уже не надо заботиться о записи свойств, которые он сам же потом и читает ! То, что сама HMI в CoDeSys несколько нуклюжая - вопрос уже другой, во многих случаях хватает. С уважением, SAN
|
|
Ответить |
Переход на форум | Права доступа на форуме Вы не можете публиковать новые темы в этом форуме Вы не можете отвечать на сообщения в этом форуме Вы не можете удалять Ваши сообщения на этом форуме Вы не можете редактировать Ваши сообщения на этом форуме Вы не можете создавать голосования на этом форуме Вы не можете выражать своё мнение в голосованиях на этом форуме |