0

Поддержка многомнемосхемности

Кондратенко Анатолий Викторови 9 лет назад в Редактор мнемосхем обновлен 9 лет назад 0
Добрый день!

В SL версии 4.3 появилась "Поддержка многомнемосхемности". Отлично! Но!

Концепция построения нашей системы не блещет оригинальностью: есть основной экран с общими данными цехового оборудования ("общая схема"), и при желании, можно получить уточненную информацию конкретной единицы оборудования путем нажатия на кнопку с наименованием оборудования и вызова другой мнемосхемы ("дочерняя схема"). Для возврата в "общую схему" использовалась та же кнопка вызова мнемосхемы, которая и открывала "общую схему". Таким образом создавалась иллюзия того, что "общая схема" открыта всегда, а "дочерние схемы" вызываются по мере необходимости.

Теперь попробовал одну из "дочерних схем" перевести на оконный режим. И оказалось, что кнопка вызова "общей схемы" больше не работает. Раздается писк и … ничего не происходит. Вернул "дочернюю схему" на весь экран - все работает. Вновь задал "дочерней схеме" оконный режим - все повторилось: кнопка вызова "общей схемы" не работает.

Ну хорошо, может так и должно быть - пока не закроется "оконная" мнемосхема, то "всеэкранная" не показывается сверху "оконной" . Говорю себе, давай переделаем кнопочку - пусть она не вызывает "общую схему", а закрывает "дочернюю схему". Тем более, что теперь есть функции открытия/закрытия мнемосхем. Стал думать, как это сделать. Решение такое: 1) виртуальный канал со скриптом, в котором одна команда CloseMnemo("имя"); 2) кнопка с привязкой к этому виртуальному каналу. Сделал - ничего не происходит. :( Где-то я заблуждаюсь! Подскажите где!

P.S.
1)Я понимаю, что окно закрыть можно кнопочкой в правом верхнем углу, так называемый "крестик". Просто это трудно воспринимается пользователями - они предпочитают нажимать самый верхний крестик и благополучно закрываю всю программу "монитор".
2)Извиняюсь за столь подробное описание - просто хотел максимально точно обрисовать проблему.
Ну хорошо, может так и должно быть - пока не закроется "оконная" мнемосхема, то "всеэкранная" не показывается сверху "оконной" . Говорю себе, давай переделаем кнопочку - пусть она не вызывает "общую схему", а закрывает "дочернюю схему". Тем более, что теперь есть функции открытия/закрытия мнемосхем. Стал думать, как это сделать. Решение такое: 1) виртуальный канал со скриптом, в котором одна команда CloseMnemo("имя"); 2) кнопка с привязкой к этому виртуальному каналу. Сделал - ничего не происходит. :( Где-то я заблуждаюсь! Подскажите где!

День добрый. Нет Вы все правильно сделали, возможно просто где то допустили ошибку, в Вашем случае скрипт должен быть по событию, должно быть указанно точное имя мнемосхемы, кнопка записи значения должна быть "привязана" к нужному виртуальному каналу. А на будущее, добавим в палитру компонентов кнопку закрытия мнемосхемы, что бы не производить лишних манипуляции со скриптами.
Добрый день!

Спасибо за ответ!
Проверил всё еще раз. Всё совпадает с указанными Вами требованиями (…скрипт должен быть по событию, должно быть указанно точное имя мнемосхемы, кнопка записи значения должна быть "привязана" к нужному виртуальному каналу…). Но ничего не работает!

Имя виртуального канала - "Закрыть" (тип выходной переменной - Integer).
Содержание скрипта по событию записи - CloseMnemo("Ш").
Кнопка - "запись фиксированного значения" (записывается значение 0, привязана к каналу "Закрыть", пробовал ставить галочку "подтверждение записи").

Есть еще более насущный вопрос: в случае если обесточено оборудование на установке (то есть приборы OWEN, с которых снимается сигнал, выключены), то в программе монитор отображение информации с физических каналов либо показывается с соответствующим значком (сигнализирующим, что информация из канала не поступает), либо показывается совсем "левые значения" (например, сейчас вижу в трех текстовых индикаторах,на выключенной установке, одинаковые значения - 219 градусов). Хотя, если двойным щелчком вызвать окно графика, то это окно ничего не показывает, и это правильно, потому что информация никакая не поступает. Откуда появляются загадочные цифры 219 ума не приложу. Программу перезагружал. Компьютер перезагружал. Ничего не помогает. Вопрос заключается в следующем: как можно реализовать на мнемосхеме такую же возможность, которая есть у Вас в "Конфигураторе каналов" в "Тест ОРС-каналов", т.е. если есть информация из канала и она качественная (GetQuality), то показывается значение, в противном случае показывается надпись "нет данных".

Заранее благодарен, Анатолий.
Новочеркасск
Проверил всё еще раз. Всё совпадает с указанными Вами требованиями (…скрипт должен быть по событию, должно быть указанно точное имя мнемосхемы, кнопка записи значения должна быть "привязана" к нужному виртуальному каналу…). Но ничего не работает!

Имя виртуального канала - "Закрыть" (тип выходной переменной - Integer).
Содержание скрипта по событию записи - CloseMnemo("Ш").
Кнопка - "запись фиксированного значения" (записывается значение 0, привязана к каналу "Закрыть", пробовал ставить галочку "подтверждение записи").

Ммм…довольно интересно. Ок, мы погоняем ещё у себя. Скрипт на каком языке у Вас?

Есть еще более насущный вопрос: в случае если обесточено оборудование на установке (то есть приборы OWEN, с которых снимается сигнал, выключены), то в программе монитор отображение информации с физических каналов либо показывается с соответствующим значком (сигнализирующим, что информация из канала не поступает), либо показывается совсем "левые значения" (например, сейчас вижу в трех текстовых индикаторах,на выключенной установке, одинаковые значения - 219 градусов). Хотя, если двойным щелчком вызвать окно графика, то это окно ничего не показывает, и это правильно, потому что информация никакая не поступает. Откуда появляются загадочные цифры 219 ума не приложу. Программу перезагружал. Компьютер перезагружал. Ничего не помогает. Вопрос заключается в следующем: как можно реализовать на мнемосхеме такую же возможность, которая есть у Вас в "Конфигураторе каналов" в "Тест ОРС-каналов", т.е. если есть информация из канала и она качественная (GetQuality), то показывается значение, в противном случае показывается надпись "нет данных".

Попробуйте в конфигураторе у канала включить "галку" контроль связи.
1) Язык С++.

2) Галки стоят изначально на каналах.
1) Язык С++.
Ок. Проверяем, будет результат сообщу. Подскажите какая ОС стоит на ПК?

2) Галки стоят изначально на каналах.
Проверяем.
На ПК стоит Server 2003 R2
Ок. Спасибо. Для более оперативной связи, отпишитесь пожалуйста нам на почту simp@miniscada.com

Сервис поддержки клиентов работает на платформе UserEcho