[?]: Есть ли в WinnCC flexible индиректы как в Intouch.

Панели оператора PP/OP/TP/TD/MP.
Программные пакеты ProTool/WinCC flexible, SCADA система WinCC
kaspiysk
Posts: 5
Joined: Tue Jun 15, 2010 9:10 am

[?]: Есть ли в WinnCC flexible индиректы как в Intouch.

Post by kaspiysk »

Есть ли в WinnCC flexible что то типа индиректов как в Intouch.
Просто без них проект превращается в набор экранов с одинаковым видом но разными тегами
Пример: есть 20 задвижек надо нарисовать одно окно и управлять именно вызвавшей это окно задвижкой и в то же время получать информацию о ней в режиме реального времени, а не один раз при присвоении значения.
Еще может есть у кого руководство по скриптам в win flex любой версии.
kaspiysk@bk.ru
Marrenoloth
Posts: 62
Joined: Tue Dec 22, 2009 12:45 am
Location: Москва

Re: [?]: Есть ли в WinnCC flexible индиректы как в Intouch.

Post by Marrenoloth »

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

В нормальной версии WinCC (не Flexible) такого провернуть не смог. Может полхо искал :oops:
kaspiysk
Posts: 5
Joined: Tue Jun 15, 2010 9:10 am

Post by kaspiysk »

НУ хотелось бы чтобы все это динамически делать а не играться с каждым тегом. По принципу взаимоизменяемости одного от другого.
dmitry_79
Posts: 149
Joined: Sun Dec 20, 2009 1:30 pm
Location: Russia

Re: [?]: Есть ли в WinnCC flexible индиректы как в Intouch.

Post by dmitry_79 »

Адресацию тегов можно обозначить как косвенную - правильно сказали: адрес тег может получать из другого тега, который может быть внутренним и вычисляться динамически (каким нибудь скриптом)
kaspiysk
Posts: 5
Joined: Tue Jun 15, 2010 9:10 am

Post by kaspiysk »

Какой нибудь скрипт можно. Или пример как можно обращаться к полю адреса тега в VBS.
dmitry_79
Posts: 149
Joined: Sun Dec 20, 2009 1:30 pm
Location: Russia

Re: [?]: Есть ли в WinnCC flexible индиректы как в Intouch.

Post by dmitry_79 »

Пример: есть несколько объектов, состояние каждого из которых описывается 1 байтом.
Каждому объекту присваиваете номер.
Передаваться этот номер может в виде внутреннего тега. изменяя этот номер можно обратиться к любому байту (объекту)

Пример: 3 бит каждого байта, содержит информацию о состоянии переключателя управления Ручной/Автоматический.
Image

В данном примере нет вычислений скриптами.
Просто задаете номер объекта, и получаете о нем байт информации.
kaspiysk
Posts: 5
Joined: Tue Jun 15, 2010 9:10 am

Re: [?]: Есть ли в WinnCC flexible индиректы как в Intouch.

Post by kaspiysk »

Это понятный пример но опять таки все ручками. Вот что мне надо сделать. Допустим Имеется задача выбора датчика и изменение его типоразмера. Для этого заводим PLC теги с пустым адрессом если такое возможно(если не с пустым то с левым каким то). Теперь надо написать скрипт в зависимости от номера датчика эти самые теги пустышки получали адрес того датчика который нужен. И дальше работаю с тегами пустышками но уже по конкретному адресу. Что это мне даст экономия окон. Не надо лишних тегов заводить. Просто у меня проект только 300 аналогов и делать под каждый окно с рунтайм содержимым дико. Пока обошелся методом беру значения с каждого аналога при вызове окна с уставками этого тега.
dmitry_79
Posts: 149
Joined: Sun Dec 20, 2009 1:30 pm
Location: Russia

Re: [?]: Есть ли в WinnCC flexible индиректы как в Intouch.

Post by dmitry_79 »

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

Проще говоря, что-бы был определенный порядок расположения этих данных:
Например датчик имеет 4 байт информации, в которых задается его типоразмер (или что там у Вас) и они (4 байт) должны идти попорядку в одном DB. Всем датчикам условно присвоить номера. (скажем с 0 по 300), Далее создаем в WinCC внутренний тег, который будет соответствовать номеру датчика. При вызове окна с параметрами датчика, задаем значение этому внутреннему тегу (т.е определяем номер датчика, параметры которого хотим редактировать). Далее скриптом умножаем его на 4, что будет соответствовать начальному номеру байта вот тех самых 4 байт описания типоразмера.

Например необходимо редактировать 30 датчик. Внутреннему датчику присваиваем номер 30. Скриптом умножаем 30 на 4 и получаем , что информация об этом датчике содержиться в байтах с 120 по 123.

Все это хозяйство займет 1 внутренний тег (нелицензируется) и 1 внешний размером в 4 байт. Последний будет имет коссвенную адресацию.
kaspiysk
Posts: 5
Joined: Tue Jun 15, 2010 9:10 am

Post by kaspiysk »

Закономерность есть. Извесно смещение и по нему вычисляется адресс сразу для всего(типоразмер,шкала,значение,уставкb, флаг качества ).
Пример смещение 15

Code: Select all

DB 1 DBX 414.2
DB 2 DBD 312
DB 1 DBD 396
DB 2 DBD 304
DB 1 DBD 404
DB 1 DBD 392
DB 2 DBD 300
DB 2 DBD 308
DB 1 DBD 400
DB 1 DBD 408
16

Code: Select all

DB 1 DBX 440.2
DB 2 DBD 332
DB 1 DBD 422
DB 2 DBD 324
DB 1 DBD 430
DB 1 DBD 418
DB 2 DBD 320
DB 2 DBD 328
DB 1 DBD 426
DB 1 DBD 434

Мне вот теперь и надо создать тег и динамически заносить туда адреса.
У меня единственный вопрос как изменять адрес тега в рантайм.
Вот и все.!!!
dmitry_79
Posts: 149
Joined: Sun Dec 20, 2009 1:30 pm
Location: Russia

Re:

Post by dmitry_79 »

kaspiysk wrote:...
У меня единственный вопрос как изменять адрес тега в рантайм.
...
Дык в чем проблема, то? Не пойму я Вас: задавайте внтуреннему тегу значение [начальное_значение]+15 или [начальное_значение]+16. Если смещение обозначить как внутренний тег с именем num, то адрес первого в вашем примере тега запишется так: DB 1.dbx[num].2

Изменяете num - изменяется адрес тега, вот и все.
sania
Site Admin
Posts: 1387
Joined: Sat Aug 13, 2005 6:15 am

Re: [?]: Есть ли в WinnCC flexible индиректы как в Intouch.

Post by sania »

Image Image
1-ое фото в контроллер грузится индерект(можно и внутренний таг)
2-ое - это таги для отображения
Image Image
тут видно что иконки грузят разные значения в индерект
Image
ну а тут один фейсплейт на все моторы
kip100
Posts: 10
Joined: Thu Oct 11, 2007 5:35 am
Location: Russia

Re: [?]: Есть ли в WinnCC flexible индиректы как в Intouch.

Post by kip100 »

Есть кусок данных 500 раз по 5 слов, начинаются от DB200.DBW8
DB200.DBW[pointer_w1]
..............
DB200.DBW[pointer_w5]

указатель на него хранится как слово в DB200.DBW0

при изменении DB200.DBW0 запускается:

1.скрипт
в нем рассчитываются значения: pointer_w1=DB200.DBW0*10+8
pointer_w2=DB200.DBW0*10+10
....................
pointer_w2=DB200.DBW0*10+16

2.скрипт
в нем данные выводятся в файл

Проблема: после выполнения скрипта1 данные в DB200.DBW[pointer_w1..5] не обновляются и остаются прежними. А обновляются только после завершения всех скриптов, вызванных изменением DB200.DBW0.