Script Function Library — различия между версиями

Материал из archestra.info
Перейти к: навигация, поиск
(Импорт DLL библиотеки)
(Импорт DLL библиотеки)
Строка 59: Строка 59:
 
#По завершении импортированные наборы классов/функций будут доступны в скриптах (и объектов и ArchestrA символов), в том числе для выбора через Script Function Library
 
#По завершении импортированные наборы классов/функций будут доступны в скриптах (и объектов и ArchestrA символов), в том числе для выбора через Script Function Library
 
#*Важно!!! При установке такого же набора библиотек повторно (но может быть другой версии) потребуются действия описанные в разделе [[Script_Function_Library#.D0.A3.D0.B4.D0.B0.D0.BB.D0.B5.D0.BD.D0.B8.D0.B5_DLL_.D0.B1.D0.B8.D0.B1.D0.BB.D0.B8.D0.BE.D1.82.D0.B5.D0.BA.D0.B8|Удаление библиотеки]]
 
#*Важно!!! При установке такого же набора библиотек повторно (но может быть другой версии) потребуются действия описанные в разделе [[Script_Function_Library#.D0.A3.D0.B4.D0.B0.D0.BB.D0.B5.D0.BD.D0.B8.D0.B5_DLL_.D0.B1.D0.B8.D0.B1.D0.BB.D0.B8.D0.BE.D1.82.D0.B5.D0.BA.D0.B8|Удаление библиотеки]]
 
 
<br/>Источник: [https://wdn.wonderware.com/sites/WDN/Lists/Solution%20Central%20Q%20and%20A/display.aspx?List=a9ff589d-c336-4bcf-807f-e3260856359a&ID=3330 https://wdn.wonderware.com/sites/WDN/Lists/Solution%20Central%20Q%20and%20A/display.aspx?List=a9ff589d-c336-4bcf-807f-e3260856359a&amp;ID=3330]
 
<div id="dc_vk_code" style="display:none"></div>
 
 
  
 
*<span style="color:#ff0000">Application server will detect changes in the new dll only if you have re-compiled the new dll with a greater major release</span>
 
*<span style="color:#ff0000">Application server will detect changes in the new dll only if you have re-compiled the new dll with a greater major release</span>

Версия 17:02, 20 ноября 2015

Работа с расширениями библиотеки

Последовательность разработки

  1. Разработать библиотеку, например в Visual Studio. NET.
  2. Импортировать библиотеку в IDE.
  3. Написать необходимый скрипт и задеплоить объект (лучше для деплоя использовать тестовый AppEngine - не основной)
  4. Отладить скрипт
  5. Если требуется обновить библиотеку (например, после расширения функционала), то:
    • раздеплоить объект(ы)
    • Сделать Shutdown AppEngine для выгрузки из памяти .NET функционала
    • Запустить AppEngine.
    • Повторить с шага 1


  • Application server will detect changes in the new dll only if you have re-compiled the new dll with a greater major release
  • Application Server определит изменения в DLL ТОЛЬКО если dll-ка была откомпилирована с версией большей, чем предыдущая

Комментарий из практики

Про выше описанный алгоритм:

Причём работает только с обязательным удалением dll на узле GR. Для этого надо закрыть и IDE, и SMC. Неудобно, мягко говоря.

1.	Раздеплоить объект
2.	Остановить энжн
3.	Закрыть всё
4.	Удалить dll из каталога ArchestrA
5.	Запустить IDE
6.	Импортнуть новую dll, с бОльшим главным номером версии
7.	Запустить энжн
8.	Задеплоить объект
9.	---
10.	Разработка dll
11.	Увеличение главного номера версии (может просто изменение? Может не обязательно главного? Не проверял пока)
12.	Компиляция
13.	Шагать к п.1


Бывает, что при попытке удаления dll с узла GR (узел IDE: у меня это один и тот же узел) ОС MS Windows говорит, что dll занята процессом GR (даже при закрытой IDE, при закрытой SMC).

Тогда надо открыть IDE и просто импортировать dll. Сразу после этого закрыть IDE и уже тогда удалять dll из папки – dll будет свободна.

Удаление DLL библиотеки

Если необходимо, можно в ручную удалить импортированную ранее библиотеку.

Для этого: необходимо удалить DLL файлы из каталога:

Program Files\ArchestrA\Framework\FileRepository\'name of galaxy'\Vendors\ArchestrA


Кроме это есть инструкция (Wonderware North): TechTip: Removing Custom .NET libraries from Industrial Application Server 3.0

Импорт DLL библиотеки

  1. В ArchestrA IDE, меню Galaxy->Import->Script Function Library.
  2. Выбрать файл содержащий библиотеку (допустимые типы файлов: .aaSLIB, .dll, .wdf, .tlb and .olb extension) и нажать открыть
  3. По завершении импортированные наборы классов/функций будут доступны в скриптах (и объектов и ArchestrA символов), в том числе для выбора через Script Function Library
    • Важно!!! При установке такого же набора библиотек повторно (но может быть другой версии) потребуются действия описанные в разделе Удаление библиотеки
  • Application server will detect changes in the new dll only if you have re-compiled the new dll with a greater major release
  • Application Server определит изменения в DLL ТОЛЬКО если dll-ка была откомпилирована с версией большей, чем предыдущая

Другие темы