Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

WPF - имитация работы конвейера

293  1 2 все
AlexNek патриот20.01.18 18:32
AlexNek
20.01.18 18:32 

Вот мысля появилась заменить чек бокс вкл/выкл на "картинку"

Тогда можно будет и детальку сверху положить и еще состояние других сенсоров добавить.

Что посоветуете в качестве базового элемента? А то я пока "рисовалки" через OnRender делал в выделенном классе.

#1 
dymanoid знакомое лицо20.01.18 20:10
dymanoid
NEW 20.01.18 20:10 
в ответ AlexNek 20.01.18 18:32, Последний раз изменено 20.01.18 20:12 (dymanoid)

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

Для вашей задачи вам нужно переопределить ControlTemplate для чекбокса в XAML.


Ответы тут.

#2 
AlexNek патриот20.01.18 20:19
AlexNek
NEW 20.01.18 20:19 
в ответ dymanoid 20.01.18 20:10

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

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

Каждый чекбокс - это состояние конкретного сенсора. Левая дверь открыта, правая дверь открыта, воздух подан и т.п


#3 
  moose старожил20.01.18 23:29
NEW 20.01.18 23:29 
в ответ AlexNek 20.01.18 18:32

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

#4 
AlexNek патриот21.01.18 00:44
AlexNek
NEW 21.01.18 00:44 
в ответ moose 20.01.18 23:29

Я пробовал только проблему описать. Но можно и подробнее.

Есть некая машина, которой управляет прога (не напрямую), прога давно кем то написана. Машина измеряет некие храктеристики металлических листов.

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

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

Конвейер может быть включен и выключен. Включен - "псиса" есть. выключен - "псисы" нет.

Сенсоров дофига и получить представление о состоянии машины довольно проблематично.

#5 
  moose старожил21.01.18 10:50
NEW 21.01.18 10:50 
в ответ AlexNek 21.01.18 00:44, Последний раз изменено 21.01.18 10:50 (moose)

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

#6 
AlexNek патриот21.01.18 13:23
AlexNek
NEW 21.01.18 13:23 
в ответ moose 21.01.18 10:50

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

#7 
  moose старожил21.01.18 13:50
NEW 21.01.18 13:50 
в ответ AlexNek 21.01.18 13:23, Последний раз изменено 21.01.18 14:27 (moose)

снапшот очень помог бы.


т.е. чекбокс нельзя с экрана включить/выключить, он только отражает состояние чего-то? а как это что-то реально включается/выключается? в чем cимуляция заключается?

#8 
AlexNek патриот21.01.18 14:36
AlexNek
NEW 21.01.18 14:36 
в ответ moose 21.01.18 13:50

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

>снапшот очень помог бы.

Около 70 Chekbox-ов в 4х столбцах, прога на работе.

#9 
  moose старожил21.01.18 14:47
NEW 21.01.18 14:47 
в ответ AlexNek 21.01.18 14:36, Последний раз изменено 21.01.18 14:48 (moose)

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


Около 70 Chekbox-ов в 4х столбцах

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


#10 
AlexNek патриот21.01.18 15:20
AlexNek
NEW 21.01.18 15:20 
в ответ moose 21.01.18 14:47

>т.е. "симулятор" ничего не симулирает?

Это я где то написал и не так поняли? Нет для клиента симулятора. Есть два монитора и два окна, одно для работы в автоматическом режиме, другое для работы в ручном режиме.

Я пока рассказывал о ручном режиме. На этом окне кнопки и реадонли чекбоксы. PLC регулярно выдает 10 байт состояния = 80 бит (используются не все) вот это состояние и отражается чекбоксами. Типа дверь открыта/закрыта, цилиндр вверху/внизу, конвейер работает/остановлен и т.п.

Речь идет о визуализации этих 80 бит. Я хочу нарисовать что то типа вида сбоку на устройство и возможно вид сверху для некоторых частей.

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

#11 
  moose старожил21.01.18 15:44
NEW 21.01.18 15:44 
в ответ AlexNek 21.01.18 15:20

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

в настоящий момент ради простоты эта "визуализация" реализована с помощью чембоксов, которые IsEnabled=false, а хочется "чего-нибудь такого".

правильно?

#12 
AlexNek патриот21.01.18 15:52
AlexNek
NEW 21.01.18 15:52 
в ответ moose 21.01.18 15:44

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

>а хочется "чего-нибудь такого".

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


Кстати, симулятор PLC тоже делается что бы можно было отлаживать прогу без машины.

#13 
  moose старожил21.01.18 19:17
NEW 21.01.18 19:17 
в ответ AlexNek 21.01.18 15:52

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


https://twitter.com/imsidesign

#14 
Murr патриот21.01.18 22:10
Murr
NEW 21.01.18 22:10 
в ответ AlexNek 21.01.18 15:52

Я бы подумал над таким

- взять стандартный граф

- уложить в него узлы-картинки

- заполнять, обновлять, двигать и т.п.


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

#15 
AlexNek патриот21.01.18 22:21
AlexNek
NEW 21.01.18 22:21 
в ответ moose 21.01.18 19:17

Думал тоже, слишком сложно и никто меня не поймет. Нужен 3Д редактор и прочие прибамбасы. За log4net и то приходится бороться.

Вполне достаточно примитива типа этого:


#16 
  moose старожил21.01.18 23:08
NEW 21.01.18 23:08 
в ответ AlexNek 21.01.18 22:21

и двигаться ничего не будет? просто какой-то "ящик" с набором "присосок", которые в присосанном состоянии и отсосанном должны по-разному выглядеть?

#17 
AlexNek патриот21.01.18 23:16
AlexNek
NEW 21.01.18 23:16 
в ответ moose 21.01.18 23:08

Движение "ящика" не очень обязательно, да это всего то анимация по прямой. Мне бы вначале со статическими сенсорами разобраться.

#18 
  moose старожил22.01.18 11:54
NEW 22.01.18 11:54 
в ответ AlexNek 21.01.18 23:16

случай, кажется, где мввм очень кстати

#19 
AlexNek патриот22.01.18 22:42
AlexNek
NEW 22.01.18 22:42 
в ответ moose 22.01.18 11:54

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

#20 
1 2 все