- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
Инициализация комбобокса
-
- здесь недавно
- Сообщения: 11
- Зарегистрирован: 13 май 2019, 14:00
- Имя: Евгений
- Страна: Россия
- город/регион: Ступино
Инициализация комбобокса
Здравствуйте.
В HMI панели TP1200 и TP700 используются комбобоксы для выбора рецептов и продуктов. Комбобокс через ссылки связан с DB в контроллере. Дело в том, что когда жмёшь на комбобокс открывается пустой список. Когда жмёшь по любому из элементов списка, название этого элемента появляется в списке до следующей перезагрузки панели. Как сделать, чтобы элементы из DB контроллера выгружались в комбобокс при старте панели, либо при открытии страницы?
В HMI панели TP1200 и TP700 используются комбобоксы для выбора рецептов и продуктов. Комбобокс через ссылки связан с DB в контроллере. Дело в том, что когда жмёшь на комбобокс открывается пустой список. Когда жмёшь по любому из элементов списка, название этого элемента появляется в списке до следующей перезагрузки панели. Как сделать, чтобы элементы из DB контроллера выгружались в комбобокс при старте панели, либо при открытии страницы?
-
- здесь недавно
- Сообщения: 11
- Зарегистрирован: 13 май 2019, 14:00
- Имя: Евгений
- Страна: Россия
- город/регион: Ступино
Инициализация комбобокса
Это HMI теги, которые ссылаются на DB в контроллере:
Это А вот в чём проблема. Когда открываешь комбобокс, элементы в нём пустые: Когда нажимаешь на пустой элемент, в нём появляется строка из DB.
Это Textlist, элементы которого HMI теги:Это А вот в чём проблема. Когда открываешь комбобокс, элементы в нём пустые: Когда нажимаешь на пустой элемент, в нём появляется строка из DB.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- здесь недавно
- Сообщения: 11
- Зарегистрирован: 13 май 2019, 14:00
- Имя: Евгений
- Страна: Россия
- город/регион: Ступино
Инициализация комбобокса
В свойствах комбобокса есть вкладка "Events". Для события "Activate" написал скрипт:
Не получилось сделать в цикле, так как доступ к тегам только через SmartTags("Product_1").
SmartTags не принимает переменные с адресом тега.
Есть более костыльный способ: Добавить на страницу Текстбоксы с ссылками(Всего 15 ссылок) на теги, используемые в Textlist.
SmartTags не принимает переменные с адресом тега.
Есть более костыльный способ: Добавить на страницу Текстбоксы с ссылками(Всего 15 ссылок) на теги, используемые в Textlist.
-
- осмотрелся
- Сообщения: 191
- Зарегистрирован: 16 дек 2011, 15:13
- Имя: Алексей
- Страна: Россия
- Благодарил (а): 59 раз
- Поблагодарили: 44 раза
Инициализация комбобокса
Если не ошибаюсь, то если теги не используются в архивах, событиях и их нет на экране (в виде каких то IO Field) - то они не опрашиваются панелью. Даже документ от Siemens был какой-то.
Попробуйте добавить теги, которые привязаны к TextList, в архив и посмотрите, пустой или нет TextList (cкрипт Activate уберите)
Попробуйте добавить теги, которые привязаны к TextList, в архив и посмотрите, пустой или нет TextList (cкрипт Activate уберите)
-
- здесь недавно
- Сообщения: 11
- Зарегистрирован: 13 май 2019, 14:00
- Имя: Евгений
- Страна: Россия
- город/регион: Ступино
Инициализация комбобокса
Не могу понять про какие архивы Вы говорите. Вы про логи?LexSL писал(а): ↑06 июн 2019, 08:49 Если не ошибаюсь, то если теги не используются в архивах, событиях и их нет на экране (в виде каких то IO Field) - то они не опрашиваются панелью. Даже документ от Siemens был какой-то.
Попробуйте добавить теги, которые привязаны к TextList, в архив и посмотрите, пустой или нет TextList (cкрипт Activate уберите)
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- здесь недавно
- Сообщения: 11
- Зарегистрирован: 13 май 2019, 14:00
- Имя: Евгений
- Страна: Россия
- город/регион: Ступино
Инициализация комбобокса
Мои теги туда не добавляются. Возможно, всё дело в типе String. Честно говоря, не нравится мне такой способ. У меня этих тегов - 400 штук. Не хочу загружать панель цикличной записью.
Но всё равно, спасибо за помощь.
В моём способе я вижу два недостатка. Во-первых, не получается использовать SmartTags() в цикле. Во-вторых, я бы вызывал этот скрипт один раз при загрузке панели. Интересно, есть такое событие? Если есть, как прикрепить к нему скрипт?
Возможно, есть еще какие-то недостатки у моего способа?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- осмотрелся
- Сообщения: 191
- Зарегистрирован: 16 дек 2011, 15:13
- Имя: Алексей
- Страна: Россия
- Благодарил (а): 59 раз
- Поблагодарили: 44 раза
Инициализация комбобокса
заводите тег (firstRun : bool, init value = true)
пишете скрипт:
Код: Выделить всё
dim firstRun
Set firstRun = SmartTags("firstRun")
if firstRun then
firstRun := false;
'дальше какие-то действия при старте
end if
Честно говоря, мне не нравится способ хранения string в контроллере. Вы не хотите загружать панель, однако контроллер у Вас использует дофига памяти под эти string. Дело Ваше.
-
- здесь недавно
- Сообщения: 11
- Зарегистрирован: 13 май 2019, 14:00
- Имя: Евгений
- Страна: Россия
- город/регион: Ступино
Инициализация комбобокса
Вы правы, мне тоже не нравится. Я на заводе в качестве подрядчика. Зарубежные партнёры поставили оборудование и прекратили своё существование. Нас наняли устранять недостатки. Руководство завода отклонило наше предложение переписывать программу. Работаем с тем, что есть, точечно.
Спасибо. Попробую.заводите тег (firstRun : bool, init value = true)
пишете скрипт:
Они хранятся в DB. У меня в контроллере "work memory 300 KB code and 1.5 MB data;" DB используют только 1.5 мб или можно как-нибудь настроить взаимодействие с SD картой?контроллер у Вас использует дофига памяти под эти string
Есть ли способ проверить на сколько загружен контроллер? в "online & diagnostic" есть инструменты, которые покажут сколько памяти использовано? (контроллер далеко, а симулировать не получается, потому что есть ноу-хау блок)