1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

WinnCC OA

Ответить

Автор темы
Artur
здесь недавно
здесь недавно
Сообщения: 3
Зарегистрирован: 15 июл 2019, 09:22
Имя: Артур
Страна: Россия
город/регион: Екатеринбург

WinnCC OA

Сообщение Artur »

Доброго времени суток!
У меня есть объекты на панели (111.pnl).
При нажатии на объект ЛК (левый клик мышки) должна открыть другая панель(222.pnl). (Это я сделал).
Далее мне нужно, чтобы на панели высвечивались те сигналы, которые относятся к конкретному выбранному объекту.
Объектов на панели 111.pnl много, а всплывающая панель 222.pnl для всех объектов одна.
Мне нужно прописать в функции makeDynString параметры, чтобы сигналы высветились на панели 222.pnl и чтобы у каждого сигнала менялось состояние (красный, желтый, зеленый). Как должна быть панель прикрепил.

Код: Выделить всё

 main()
{
  EP_setBackColor();
  EP_childPanelOn();
 
}

void EP_setBackColor()
{
  dyn_errClass err;

 if( !dpExists( "System1:SP11.SP11:_online.._value") || !dpExists( "System1:SP12.SP11:_online.._value") || !dpExists( "System1:SP13.SP11:_online.._value") 
  || !dpExists( "System1:SP14.SP11:_online.._value") || !dpExists( "System1:SP15.SP11:_online.._value") || !dpExists( "System1:SP16.SP11:_online.._value") 
  || !dpExists( "System1:SP17.SP11:_online.._value"))
  {
    setValue("", "color", "black");
    return;
  }

    dpConnect("EP_setBackColorCB", 
              "System1:SP11.SP11:_online.._value", 
              "System1:SP12.SP11:_online.._value", 
              "System1:SP13.SP11:_online.._value",
              "System1:SP14.SP11:_online.._value",
              "System1:SP15.SP11:_online.._value", 
              "System1:SP16.SP11:_online.._value", 
              "System1:SP17.SP11:_online.._value");

  err = getLastError();
  if (dynlen(err) > 0)
    setValue("", "color", "black");
}


void EP_setBackColorCB (string dpSource1, bool ka,
                        string dpSource2, bool la, 
                        string dpSource4, bool aa, 
                        string dpSource5, bool ba,
                        string dpSource6, bool ca,
                        string dpSource8, bool ea, 
                        string dpSource9, bool fa)
                      
{   
    dyn_int sign1,sign2,sign3;
    sign1 = makeDynInt(ka,la);
    sign2 = makeDynInt(aa,ba,ca);
    sign3 = makeDynInt(ea,fa);

      
if (dynContains(sign1, 1) > 0)
setValue("", "backCol", "red");
else if (dynContains(sign2, 1) > 0)
 setValue("", "backCol", "yellow");
else if (dynContains(sign3, 1) > 0)
  setValue("", "backCol", "green");
else
   setValue("", "backCol", "white");
    }


void EP_childPanelOn()
{
  ChildPanelOnCentral("vision/ZvvvvMYPROC.pnl",
      "",
      makeDynString(""));
}
[img][/img]
У вас нет необходимых прав для просмотра вложений в этом сообщении.

stesl
эксперт
эксперт
Сообщения: 1008
Зарегистрирован: 31 мар 2018, 12:05
Имя: Вячеслав
Благодарил (а): 94 раза
Поблагодарили: 136 раз

WinnCC OA

Сообщение stesl »

Думаю в личке нужно было и указать, что WinCC OA ;)
В "чистой" WinCC я по крайней мере не встречал такую ф-цию. Если описания ф-ции на руках нет, то остается лишь слабый шанс, что кто то уже пользует и ОА и данную приблуду.
Метод, предложенный в ЛС относится как раз к WinCC "просто". Но подозреваю, что Simatic не отступил от своих позиций в плане ООП подходов и в ОА.
Аватара пользователя

alxndrch
здесь недавно
здесь недавно
Сообщения: 40
Зарегистрирован: 05 ноя 2017, 01:12
Имя: Александр
Страна: Россия
город/регион: Хабаровск
Благодарил (а): 3 раза
Поблагодарили: 3 раза

WinnCC OA

Сообщение alxndrch »

Обычно параметры куда-то "внутрь" передаются через $ параметр. Допустим вы создаете панель которая у вас предполагается фэйсплейтом, допустим двигателя. К этому двигателю вы создаете datapoint type в Para и там уже описываете его структуру и из нее генерируете уже сам datapoint, в итоге у вас получается некая строка однозначно определяющая каждую переменную в структуре.
Допустим для запуска двигателя P1 она может выглядеть так: P1.cmd.start
Для P2: P2.cmd.start.
Тогда для кнопки внутри фэйсплейта на событие Clicked нужно повесить скрипт: dpSet($DP + ".cmd.start", 1);
Затем при перетаскивании этого фэйсплейта на основное окно ему надо будет указать чему конкретно равно $DP. Почти как tagPrefix в классическом WinCC.

Мне кажется это все что нужно для решения задачи.
Еще один момент в WinCC OA есть неплохой Getting Started в справке, рекомендую пройти его.

stesl
эксперт
эксперт
Сообщения: 1008
Зарегистрирован: 31 мар 2018, 12:05
Имя: Вячеслав
Благодарил (а): 94 раза
Поблагодарили: 136 раз

WinnCC OA

Сообщение stesl »

alxndrch писал(а): 31 июл 2019, 03:13 Допустим для запуска двигателя P1 она может выглядеть так: P1.cmd.start
Для P2: P2.cmd.start.
Ну да, тот самый "ООП" подход )) Основанный на структуре при этом.
А вот детали, для меня как НЕ пользовавшего WinCC OA - скрыты.

Отправлено спустя 2 часа 53 минуты 1 секунду:
А в целом, впечатление, что происходит процесс мочилова мухи из дробовика...
Проект не учебный?

Я понял WinCC OA как платформу для объединения скажем нефтянной промышленности. То есть эта ИС, с ее поддержкой открытой архитектуры полезна для осуществления диспетчеризации (и конечно с выходом на все возможные ERP и MES) целых заводов, месторождений и прочих прелестей. Причем разных и в одном флаконе. Плюс резервирование целых комплексов таких комплексных (простите, за повторы) АСУТП.

А речь о каких то квадратиках... Может все таки Flexible достаточно без всяких ООП выкрутасов? Faceplate с разными привязками...
Аватара пользователя

alxndrch
здесь недавно
здесь недавно
Сообщения: 40
Зарегистрирован: 05 ноя 2017, 01:12
Имя: Александр
Страна: Россия
город/регион: Хабаровск
Благодарил (а): 3 раза
Поблагодарили: 3 раза

WinnCC OA

Сообщение alxndrch »

stesl писал(а): 31 июл 2019, 06:20 Ну да, тот самый "ООП" подход )) Основанный на структуре при этом.
А вот детали, для меня как НЕ пользовавшего WinCC OA - скрыты.
Учебный проект из документации позволяет понять основные принципы и логику. Но под некоторые простейшие для обычного WinCC вещи приходится прямо поизголяться. В некоторых местах все очень не интуитивно, под многие вещи где могли бы быть какие-то мастера они отсутствуют. Но вообще мне система нравится, но просто принять что это и не голая среда разработки, но и не SCADA в готовом виде.

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

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

stesl
эксперт
эксперт
Сообщения: 1008
Зарегистрирован: 31 мар 2018, 12:05
Имя: Вячеслав
Благодарил (а): 94 раза
Поблагодарили: 136 раз

WinnCC OA

Сообщение stesl »

alxndrch писал(а): 31 июл 2019, 07:37 Правда из этого выходит недостаток в в виде того что выстрелить себе в ногу в WinCC OA это раз плюнуть
Пара проектов, размером в СОГАЗ и все не будет таким неявным ;)
Мы всегда муки терпим при переходе с одной ИС на другую.
Чего думал проще, Flexible как родную знаю, сейчас и на ВинСиСи махом....
Индейская изба - фигвам. Бессонные ночи, круги под глазами, мозги наберень от прочитанного, но проект то готов ;)
И на тебе (мнение теперь) - да чего там в этой WinCC сложного, то же самое )))
Ответить

Вернуться в «WinCC»