Script Function Library — различия между версиями
Материал из archestra.info
Admin (обсуждение | вклад) (→Импорт DLL библиотеки) |
(→Удаление DLL библиотеки) |
||
(не показано 17 промежуточных версии 2 участников) | |||
Строка 12: | Строка 12: | ||
#*Запустить AppEngine. | #*Запустить AppEngine. | ||
#*Повторить с шага 1 | #*Повторить с шага 1 | ||
+ | <div id="dc_vk_code" style="display:none"></div> | ||
+ | <span style="color:#ff0000"><br/></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> | ||
+ | *<span style="color:#ff0000">Application Server определит изменения в DLL ТОЛЬКО если dll-ка была откомпилирована с версией большей, чем предыдущая</span> | ||
+ | |||
+ | ==== Комментарий из практики ==== | ||
+ | Про выше описанный алгоритм: | ||
+ | <pre> | ||
+ | Причём работает только с обязательным удалением 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 будет свободна. | ||
+ | </pre> | ||
== Удаление DLL библиотеки == | == Удаление DLL библиотеки == | ||
Строка 21: | Строка 51: | ||
− | + | Кроме это есть инструкция (Wonderware North): [http://wonderwarenorth.com/techtip-removing-custom-net-libraries-from-industrial-application-server-3-0/ TechTip: Removing Custom .NET libraries from Industrial Application Server 3.0] | |
+ | Более подробная инструкция: TN471 Removing a .NET Control: https://softwaresupportsp.invensys.com/Pages/OKMArticleResult.aspx?docId=TN471 | ||
− | + | == Импорт DLL библиотеки == | |
− | + | ||
− | + | ||
− | + | #В [[ArchestrA IDE]], меню Galaxy->Import->Script Function Library. | |
+ | #Выбрать файл содержащий библиотеку (допустимые типы файлов: .aaSLIB, .dll, .wdf, .tlb and .olb extension) и нажать открыть | ||
+ | #По завершении импортированные наборы классов/функций будут доступны в скриптах (и объектов и 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|Удаление библиотеки]] | ||
+ | *<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 определит изменения в DLL ТОЛЬКО если dll-ка была откомпилирована с версией большей, чем предыдущая</span> | ||
− | + | == Другие темы == | |
− | + | *[[QuickScript]] (для InTouch) | |
− | + | *[[.NET]] | |
+ | *[[QuickScript .NET]] |
Текущая версия на 11:23, 14 апреля 2017
Содержание
Работа с расширениями библиотеки
Последовательность разработки
- Разработать библиотеку, например в Visual Studio. NET.
- Импортировать библиотеку в IDE.
- Написать необходимый скрипт и задеплоить объект (лучше для деплоя использовать тестовый AppEngine - не основной)
- Отладить скрипт
- Если требуется обновить библиотеку (например, после расширения функционала), то:
- раздеплоить объект(ы)
- Сделать 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
Более подробная инструкция: TN471 Removing a .NET Control: https://softwaresupportsp.invensys.com/Pages/OKMArticleResult.aspx?docId=TN471
Импорт DLL библиотеки
- В ArchestrA IDE, меню Galaxy->Import->Script Function Library.
- Выбрать файл содержащий библиотеку (допустимые типы файлов: .aaSLIB, .dll, .wdf, .tlb and .olb extension) и нажать открыть
- По завершении импортированные наборы классов/функций будут доступны в скриптах (и объектов и 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-ка была откомпилирована с версией большей, чем предыдущая
Другие темы
- QuickScript (для InTouch)
- .NET
- QuickScript .NET