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

Avatar
  • обновлен
Добрый день!

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

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

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

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

P.S.
1)Я понимаю, что окно закрыть можно кнопочкой в правом верхнем углу, так называемый "крестик". Просто это трудно воспринимается пользователями - они предпочитают нажимать самый верхний крестик и благополучно закрываю всю программу "монитор".
2)Извиняюсь за столь подробное описание - просто хотел максимально точно обрисовать проблему.
Avatar
SIMP Tech (Сергей)
На ПК стоит Server 2003 R2
Ок. Спасибо. Для более оперативной связи, отпишитесь пожалуйста нам на почту simp@miniscada.com
Avatar
SIMP Tech (Сергей)
1) Язык С++.
Ок. Проверяем, будет результат сообщу. Подскажите какая ОС стоит на ПК?

2) Галки стоят изначально на каналах.
Проверяем.
Avatar
1) Язык С++.

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

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

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

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

Попробуйте в конфигураторе у канала включить "галку" контроль связи.
Avatar
Добрый день!

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

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

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

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

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