При открытии Web-страницы с экранной формой не отображается компонент AWX Viewer, находящийся на этом экране. Если попытаться выполнить сценарий, связанный с этим компонентом, появляется сообщение об ошибке, указывающее, что не обходим объект. В чем может быть причина?
Для выяснения причины попробуйте загрузить компонент AWX32 Viewer ActiveX вручную. Для этого установите следующий адрес в браузере клиента:
Будет открыто окно, показанное на рис. 1, из которого можно произвести загрузку. Если операция будет выполнена успешно и экранная форма будет отображаться нормально, то следует проверить содержимое htm-файла, используемого при открытии этой страницы: скорее всего, в нем содержится неправильная ссылка на компонент. Далее приведен фрагмент кода HTML для страницы, содержащей экранную форму с компонентом AWX32 Viewer.
<SCRIPT>
if (navigator.appName == «Microsoft Internet Explorer»)
{
objDependentActiveX0 = ‘<OBJECT id =DependentActiveX0’ + ‘WIDTH=»2» HEIGHT=»2»’ +
‘CLASSID=clsid:1BF340DE-5001-11D3-A605-00A0249E352D ‘ + ‘CODEBASE=» http://www.classroom.prosoft.ru/
WebHMI/cabs/’+GetArchiveNameFrom
(«AWXView32»)+’#version=7,0,117,0»>’ + ‘</OBJECT>’;
}
else
{
objDependentActiveX0 = ‘<EMBED TYPE=»application/x-eskerplus»’ + ‘ID=»DependentActiveX0»’ +
‘CLASSID=»clsid:1BF340DE-5001-11D3-A605-00A0249E352D»’ +
‘CODEBASE=»’+CheckArchivePath
«http://www.classroom.prosoft.ru/
WebHMI/dpl/»)+
GetArchiveNameFrom(«AWXview32»)+’»’ + WIDTH=»2» HEIGHT=»2»>’;
}
document.write( objDependentActiveX0 );
Если ручная загрузка окажется неудачной, причинами могут быть отсутствие каталога с необходимыми Cab-файлами на Web-сервере или его переименование, а также ограничения безопасности, установленные в настройках Internet Information Services (IIS).
Есть аппаратный ключ для LPT-порта с лицензией на GENESIS32 7.0, но в компьютере нет LPT-порта. Попробовал вставить PCI-плату с портом LPT, принтер работает без проблем, утилита активизации аппаратного ключа от вечает, что ключ активизирован, но монитор лицензии не обнаруживает лицензию. Как быть?
Вам необходимо обновить утилиту лицензирования до версии 7.1 (диск с дистрибутивом можно получить в компании ПРОСОФТ или скачать его по следующей ссылке:
ftp://ftp.classroom.prosoft.ru/Software/GENESIS32_ 71/.
Размер дистрибутива — 680 Мбайт).
Дело в том, что в версии GENESIS32 7.0 драйвер аппаратного ключа не поддерживает работу с портом, если диапазон адресов ввода-вывода параллельного порта отличается от 0378 – 037F. В релизе 7.1 этот недостаток устранён.
Возможно ли встроенными средствами GENESIS32 7.0 в приложении GraphWorX32 получить значение флага качества тега и записать это значение, например, в локальную переменную?
Да, можно. Для этого используется функция редактора выражений quality. Если нужно записать значение качества в локальную переменную, то можно это сделать с помощью кнопки, настроив её параметры, как показано на рисунке 2.
При этом через заданный интервал времени значение качества будет записываться в локальную переменную. При необходимости кнопку можно сделать невидимой.
Имеется экранная форма. В ней — компонент Iconics Switch ActiveX, источником данных для которого является локальная переменная. Но в списке локальных переменных экранной формы она не отображается. Почему?
Потому что экранная форма GraphWorX и Switch ActiveX представляют собой 2 разных объекта, так же как и, например, две экранные формы. Соответственно, у каждого из объектов свой список локальных переменных. Если же нужно иметь какую-то общую переменную, следует использовать ОРС-тег.
В проекте организовано резервирование узлов с помощью DataWorX. Можно ли сделать так, чтобы при нажатии кнопки, загружающей другую экранную форму, файл этой формы мог подгружаться с основного или резервного узла, в зависимости от состояния связи?
Да, можно. Вот два способа для реализации этой задачи.
Первый способ подходит как для седьмой, так и для более ранних версий GENESIS32.
При настройке резервирования в DataWorX определите регистр, значение которого будет отображать статус узла (1 – основной узел, 0 – резервный), как показано на рис. 3.
Создайте в экранной форме две кнопки. Одна из них будет открывать экранную форму, расположенную на основном узле, и будет скрыта, если данные поступают с резервного узла, то есть если регистр статуса равен нулю (рис. 4).
Другая будет открывать соответствующую экранную форму, расположенную на резервном узле, и будет скрыта, если активен основной узел (рис. 5).
Совместите обе кнопки. В зависимости от того, с какого узла поступают данные, будет задействована одна из кнопок, а другая в этот момент будет скрыта.
Второй способ заключается в применении глобальных псевдонимов и может использоваться только в седьмой версии GENESIS32.
Option Explicit
Public dwx As Dwx32.Application
Public St As Dwx32.RedundancyAlias
___________________________
Private Sub GwxDisplay_DisplayLoad()
Dim R As Boolean
Set dwx = New Dwx32.Application
R = dwx.FileOpen(«C:\red.dwx»)
dwx.ShowWindow
dwx.StartRuntime
End Sub
___________________________
Private Sub AxTimer1_Timer()
Dim t As Boolean
Set St = dwx.GetRedundancyAlias(«Simulator»)
If St.IsPrimary Then
t = ThisDisplay.SetGASThemes(«Node_theme=Node1;»)
Else
t = ThisDisplay.SetGASThemes(«Node_theme= Node2;»)
End If
End Sub
___________________________
Как можно в сценарии VBA считать значение локального псевдонима? При использовании метода GetPointObjectFromName() возникает ошибка.
Для локальных псевдонимов нельзя использовать этот метод, указывая строку с источником данных в качестве аргумента функции, как это может быть сделано для ОРС-тегов
GetPointObjectFromName
(“{{ICONICS.Simulator.1\GlobalVariables.Analog1}}”)
или локальных переменных
GetPointObjectFromName
(“~~local_var~~”).
Строка <local_alias> не определяет источник данных однозначно – он может динамически переключаться в режиме исполнения, поэтому в сценарии нужно предусмотреть получение реального источника данных для псевдонима. Рассмотрим случай, когда локальный псевдоним применяется в динамическом объекте «Параметр». Для обращения к этому псевдониму следует использовать такой сценарий:
Sub LOCAL_ALIAS (o as GwxPick)
Динамический объект «Параметр»
Dim ppt as GwxProcessPoint ‘Объект, представляющий соединения с источниками данных
Dim pt as GWxPoint
‘Получение динамического объекта по имени, передаваемому аргументом:
Set ppt = ThisDisplay.GetDynamicObjectFromName («Alias_Object «)
‘Получение свойства «Источник данных» для этого объекта:
Set pt = ThisDisplay.GetPointObjectFromName (ppt.datasource)
End Sub
В этом примере «Alias_Object» – имя динамического объекта «Параметр» (рис. 8).
При установке GENESIS32 V6.11 возникает ошибка «FSI FinishInstall() returned general error code». После нажатия кнопки OK инсталлятор продолжает работу (регистрирует компоненты GENESIS32) и затем выдает сообщение «Setup was unable to install VBA». После нажатия OK инсталлятор продолжает установку и успешно её завершает. После установки при попытке запустить GraphWorX32 возникает сообщение «Failed to create empty document», и GraphWorX32 не запускается. Операционная система Microsoft Windows XP Home Edition Version 2002 Service Pack 1 (English).
Такая ошибка возникает из-за конфликта разных версий Visual Basic for Applications. При инсталляции GENESIS32 6.11 устанавливается версия VBA 5.0, в то время как в системе, скорее всего, уже установлен VBA 6.0 (офисные приложения для Windows XP работают с шестой версией VBA). Для устранения проблемы следует установить VBA 5.0, скачав файл FixForVbaInstallError-VBA5.zip по следующей ссылке:
ftp://ftp.classroom.prosoft.ru/Software/GENESIS32_6_11/Fixes/
Была выполнена настройка конфигуратора AlarmWorX32 Logger. На вкладке Управление таблицами для активной и архивных таблиц было установлено ограничение на максимальное количество записей. При запуске архивирования данное ограничение не выполняется, и в таблицу заносится большее количество записей. Почему?
Дело в том, что AWX Logger выполняет операцию по управлению таблицами 1 раз в час. Поэтому сразу после запуска архивации все тревоги будут записываться в одну таблицу и их количество может превысить установленные ограничения. Но если Вы откроете базу данных через час, то увидите, что записи распределены по таблицам в соответствии с тем максимальным количеством, которое Вы установили в настройках конфигуратора Alarm Logger.
На Web-сервере обновили GENESIS32 и WebHMI 7.0 до версии 7.1. Но на клиентских машинах все компоненты, необходимые для работы проекта через Интернет, уже установлены, так как они были загружены при первом просмотре Web-страницы проекта. Как вызвать повторную загрузку объектов?
Откройте пункт Tools->Internet Options в Internet Explorer.
Щелкните на кнопке Delete Files (Удалить файлы) для удаления временных файлов – в них находятся многие cab-файлы и экранные формы.
Щелкните на кнопке Settings (Настройки) и выберите View Objects (Просмотр объектов). В этом списке находятся как некоторые объекты ICONICS (например, настройки Сервера безопасности и компонента GraphWorX32 viewer), так и объекты, загруженные с других Web-сайтов. Необходимо удалить объекты ICONICS из этого списка. (Если Вы по ошибке удалите объекты, не имеющие отношения к проекту ICONICS, неприятных последствий это не вызовет: при следующем просмотре соответствующего Web-сайта они будут загружены ещё раз).
Теперь, когда Вы откроете Web-страницу этого проекта, снова появится запрос на загрузку объектов, и таким образом Вы сможете обновить необходимые для проекта компоненты ActiveX.
Существует ли ограничение на максимальное количество экранов GraphWorX, которые могут быть запущены одновременно? Используя версию 7.1, получаем сообщение «Failed to create empty document» при попытке открыть 21-й экземпляр GWX32.
Это ограничение касается не только GraphWorX32, но и всех приложений, работающих в операционной системе Microsoft Windows. Связано оно с тем, что существует максимально возможное количество одновременно используемых дескрипторов меню. Чем большее количество пунктов меню содержит приложение и чем сложнее их структура, тем раньше достигается предельное количество дескрипторов. Например, такое приложение, как WordPad, достигает этого предела при одновременном открытии 90 экземпляров, но его меню намного меньше, чем меню GraphWorX32.
На компьютер с операционной системой Windows 2000 Professional SP4 был установлен ReportWorX.NET. Были выполнены все указанные в документации дополнительные настройки: DCOM, учётная запись для службы ReportWorX.NET с правами администратора и т.д. Но запуск службы невозможен: при запуске из конфигуратора значок светофора становится серым (не активным), а при запуске службы вручную (Control Panel — Administrative Tools — Services) появляется сообщение об ошибке: «Error 1053: The service did not respond in a timely fashion».
Эта ошибка происходит из-за того, что на Вашем компьютере одновременно установлены две версии .Net Framework — 1.0 и 1.1. Вам необходимо деинсталлировать .Net Framework 1.0 через пункт Установка и удаление программ в Панели управления.
Опишите, пожалуйста, процедуру создания и применения переключающих псевдонимов DataWorX32.
Создание переключающего псевдонима.
Проверка работы переключающего псевдонима
В зависимости от значения ICONICS.Simulator.1\GlobalVariables.
Analog9 [0, 1, 2] в строке источника данных ICONICS.Simulator.1\GlobalVariables. Analog1 будет изменяться окончание [g1, g2, g3] и на выход переключателя будет подаваться одно из значений:
ICONICS.Simulator.1\GlobalVariables.
Analog1, ICONICS.Simulator.1\GlobalVariables.
Analog2, ICONICS.Simulator.1\GlobalVariables.
Analog3.
1. Откройте файл GraphWorX32 и добавьте элементы Параметр процесса со следующими свойствами:
ICONICS.Simulator.1\GlobalVariables.Analog1 — флажок «Ввод данных» установлен
ICONICS.Simulator.1\GlobalVariables.Analog2 — флажок «Ввод данных» установлен
ICONICS.Simulator.1\GlobalVariables.Analog3 — флажок «Ввод данных» установлен
ICONICS.Simulator.1\GlobalVariables.Analog9 — флажок «Ввод данных» установлен
ICONICS.DataWorX32.1\ICONICS.Simulator.1\GlobalVariables.Analo[[switch]] — флажок «Ввод данных» снят.
2. Переведите экранную форму в режим Исполнение.
3. Установите произвольные (но различные) значения переменных …Analog1, Analog2, Analog3.
Введите с клавиатуры различные значения тега ICONICS.Simulator.1\ GlobalVariables.Analog9, управляющего переключением, и понаблюдайте, как изменяется значение псевдонима ICONICS.DataWorX32.1\ICONICS.Simulator.1\GlobalVariables.Analo[[switch]]. ●
Автор — сотрудник фирмы ПРОСОФТ
Телефон: (095) 234-0636
E-mail: info@prosoft.ru
Разбор параметрирования нескольких преобразователей частоты с помощью WI-FI модуля на примере ПЧ Sinvel SID300
09.10.2024 170 0 0Контроллер, программируемый с помощью условий
Возможно ли создать алгоритм для задач автоматизации технологического процесса, не используя язык программирования? Предлагается описание системы создания алгоритма работы ПЛК для устройств малой автоматизации без использования специальных языков программирования. 01.09.2024 СТА №3/2024 589 0 0Как биометрия и искусственный интеллект помогают быстро и безопасно обслужить пассажиров в аэропортах
В условиях современных аэропортов идентификация пассажиров является одной из самых важных функций быстрого и безопасного обслуживания. Передовая биометрия помогает в этом, надёжно контролируя все этапы и существенно повышая пропускную способность транспортных узлов. 28.07.2024 СТА №3/2024 675 0 0Граничные вычисления: революция в обработке данных
В последние годы мы наблюдаем стремительный рост объёмов данных, генерируемых устройствами Интернета вещей (IoT) и различными приложениями. Традиционные облачные вычисления, при которых данные передаются в централизованные дата-центры для обработки, становятся менее эффективными в таких условиях. Именно здесь на сцену выходят граничные вычисления (Edge Computing) – новая парадигма, призванная решить эти проблемы. 28.07.2024 СТА №3/2024 700 0 0