08.01.2018 форум обновлён до новой версии движка. О замеченных глюках просим сообщать администраторам
-----
На форуме обязательно:
  1. Заполнить свой профиль на Русском языке. См. Правила, п.2.d.
  2. Не писать свой вопрос в первую попавшуюся тему, а вместо этого создать свою. См. Правила, п.3.a.

Рекламу на своём форуме мы не размещаем ни на каких условиях.

WinCC редактирование большого числа параметров

Ответить
Аватара пользователя

Автор темы
Barsik
не первый раз у нас
не первый раз у нас
Сообщения: 307
Зарегистрирован: 02 фев 2010, 22:28
Имя: Корнеев Дмитрий
Благодарил (а): 2 раза
Поблагодарили: 4 раза
Контактная информация:

WinCC редактирование большого числа параметров

Сообщение Barsik » 13 янв 2018, 00:29

Мне понадобилось создать процедуру редактирования большого числа редко используемых параметров. В InTouch в подобной ситуации можно пользовать скрипт, который берет описание параметра и его адрес в контроллере из текстового файла к примеру такого вида:

IOI_V1101_SW,410,0,373,0,PLC1,V1101
IOI_V1102_SW,410,40,373,2,PLC1,V1102
IOI_V1103_SW,410,80,373,4,PLC1,V1103
IOI_V1104_SW,410,120,373,6,PLC1,V1104

При инициализации скрипта названия объектов попадают в ComboBox, далее пользователь выбирает нужный ему объект из списка и при клике на него индерект тегам присваиваются значения выбранного объекта и выводятся в поля для редактирования.

Можно ли нечто подобное изобразить в WinCC?

WinCC версии 7.4, контроллер S7-300
Запуск и модернизация оборудования без проекта и документации. Дорого.


winb
осмотрелся
осмотрелся
Сообщения: 107
Зарегистрирован: 31 янв 2017, 08:44
Имя: Маркушин Андрей Геннадьевич
Благодарил (а): 3 раза
Поблагодарили: 18 раз

WinCC редактирование большого числа параметров

Сообщение winb » 15 янв 2018, 09:06

Можно :)
Но лучше использовать UserArchives. Полезная опция, хоть и платная.


LexSL
здесь недавно
здесь недавно
Сообщения: 61
Зарегистрирован: 16 дек 2011, 14:13
Имя: Михайлов Алексей
Поблагодарили: 4 раза

WinCC редактирование большого числа параметров

Сообщение LexSL » 15 янв 2018, 15:58

Barsik писал(а):
13 янв 2018, 00:29
индерект тегам присваиваются значения выбранного объекта
Вам нужно множество однотипных объектов редактировать? Используйте TagPrefix для окон. Список объектов можно загрузить из файла (в Вашем распоряжении языки: Си и VBS).

Аватара пользователя

Автор темы
Barsik
не первый раз у нас
не первый раз у нас
Сообщения: 307
Зарегистрирован: 02 фев 2010, 22:28
Имя: Корнеев Дмитрий
Благодарил (а): 2 раза
Поблагодарили: 4 раза
Контактная информация:

WinCC редактирование большого числа параметров

Сообщение Barsik » 17 янв 2018, 22:32

LexSL писал(а):
15 янв 2018, 15:58
Используйте TagPrefix для окон
Как я понимаю, в этом случае все равно нужно создавать теги.
Лимит по тегам у меня исчерпан, а доделывать проект надо.

В общем пока что я реализовал похожую процедуру в контроллере, но уж как то совсем коряво получилось.
В СомbоВох ОnRelease взводит бит, по которому прочитывается значение из нужного блока данных

NETWORK
TITLE = если бит установился, запускаем процедуру чтения
A "SWITH_SELECT_RELEASE";
JCN L01;
NETWORK
TITLE = получаем адрес DB
L "SWITH_SELECT";
L 1100; //первый нужный блок
+I ;
T "SW_DB_NO"; //номер блока данных
NETWORK
TITLE = выводим значение требуемой переменной
OPN DB ["SW_DB_NO"];
L DBW [AR1,P#2.0];
T "SWITH_SELECT_DATA_ON";
T "SW_SELECT_DATA_ON_TMP";
NETWORK
TITLE = сбрасываем флаг ОnRelease
L01: R "SWITH_SELECT_RELEASE";

Проверку изменения переменной пользователем проводим по свойству OnChange:

NETWORK
TITLE = проверяем OnChange
A "SWITH_SELECT_DATA_REL_ON";
JCN L03;
NETWORK
TITLE = на всякий случай проверяем отличие введенного значения от ранее сохраненного, если отличается - перезаписываем.
L "SW_SELECT_DATA_ON_TMP";
L "SWITH_SELECT_DATA_ON";
==I ;
JC L03;
OPN DB ["SW_DB_NO"];
L "SWITH_SELECT_DATA_ON";
T DBW [AR1,P#2.0];
L L#0;
L DBW [AR1,P#2.0];
T "SW_SELECT_DATA_ON_TMP";
R "SWITH_SELECT_DATA_REL_ON";
NETWORK
TITLE =
L03: NOP 0
Запуск и модернизация оборудования без проекта и документации. Дорого.

Ответить