Showing posts with label library. Show all posts
Showing posts with label library. Show all posts

February 15, 2018

Categories of TwinCAT Libraries

When you are ready to publish your library, it is a good idea to place it under the one or several categories in the library repository. Later, it helps you and other developers to find your library among the others at the local repository.

But there are no any official category lists – at least, I have not found any others one.

We can extract one or two (maybe more) categories from the one precisely selected library from the local storage at
x:\TwinCAT\3.1\Components\Plc\Managed Libraries. But we should choose carefuly because that source library should contain required categories. Or we can load category list from the "Description File" with *.libcat.xml extension. But (once more) I can’t find this description file – anywhere on local system or in the internet.

Then, I have made this category list myself.



I uploaded this unofficial list on GitHub. You can download latest version from beckhoff-tc31.libcat.xml or you can clone the whole project Tc_LibcatXml to your laptop or to your github repository or to any other place and finally make your library more shiny.

Категории библиотек TwinCAT 3

Предположим, вы разработали библиотеку или портировали чужую, типа библиотеки OSCAT под TwinCAT 3. Наступает ответственный момент оформления библиотеки, вы заполняете графы описания и решаете выбрать категорию библиотеки (Library Categories), чтобы в дальнейшем быстро находить библиотеку в локальном репозитории,

А списка категорий нет.

Можно экстрагировать категории из других библиотек: они лежат в x:\TwinCAT\3.1\Components\Plc\Managed Libraries, а можно загрузить из некоего файла (From Description File...) с расширением *.libcat.xml, но файла также нет. По крайней мере, для оборудования и библиотек Бекхофф, я их так и не нашел.

Поэтому выдавил из библиотек свой собственный и неофициальный список.



Список можно найти на гитхабе, он лежит в открытом виде и готов к использованию — Tc_LibcatXml. По возможности я буду поддерживать его в актуальном состоянии, либо должен найтись способ получать эти категории из официального источника. Сейчас же доступны три не официальные версии — какое-то наследие TwinCAT 2, затем устаревший TwinCAT 3 и актуальная на данный момент версия beckhoff-tc31.libcat.xml.

June 9, 2016

Нюансы библиотек в TwinCAT 3

В TwinCAT 3 изменился подход к библиотекам. Он усложнился.

Новые библиотеки бывают двух видов:
  • .library — с исходными кодами и собранной библиотекой. Занимает больше места и не скрывает интеллектуальную собственность.
  • .compiled-library — только собранная библиотека, без исходных кодов. Очень небольшого размера и зашифрована. Восстановить исходный код невозможно.

Эти файлы, как сейчас стало модно, являются zip-архивами с человеко-невменяемым содержимым.

Стандартный репозиторий (хранилище библиотек) расположен здесь:
x:\TwinCAT\3.1\Components\Plc\Managed Libraries.

Далее идут: организация разработчик → имя библиотеки → версия → и непосредственно сама библиотека. В итоге для библиотеки Tc2_EtherCAT получается следующий путь:
x:\TwinCAT\3.1\Components\Plc\Managed Libraries\Beckhoff Automation GmbH\Tc2_EtherCAT\3.3.7.0\Tc2_EtherCAT.compiled-library-ge33

Рядом с библиотекой лежат три файла (ничего интересного):
  • projectinfo — бинарная информация о библиотеке;
  • dependencies — текстовый файл со списком библиотек от которых зависит данная библиотека;
  • browsercache — вспомогательная системная информация в виде xml-файл.

Если библиотека поставляется с исходными кодами, то вместо файла .compiled-library-ge33 будет лежать файл .library.


де / Инсталляция


Нельзя просто так взять и удалить библиотеку. Добавить тоже не просто так.
Вообще-то можно, но TwinCAT будет ругаться и последствия могут быть произвольными.

Теперь недостаточно просто скопировать файл библиотеки, его необходимо установить в локальное хранилище (репозиторий). Для это ткнуть правой кнопкой мыши ветку References и выбрать Library repository... Затем воспользоваться кнопкой Install... Аналогично для деинсталляции, только кнопка Uninstall.


Плейсхолдеры вместо библиотек


На самом деле в References проекта добавляются не библиотеки, а плейсхолдеры (placeholders), которые служат оберткой вокруг библиотеки и позволяют всегда загружать необходимую версию библиотеки для разного оборудования и разных версий TwinCAT.

Там еще много чего вокруг них наворочено, но по большей части для стандартных библиотек они работают автоматически.


Разработка


Для того чтобы создать новую библиотеку необходимо добавить к ветке PLC → Empty PLC Project. После окончания разработки функций библиотеки, достаточно ткнуть правой кнопкой мыши экземпляр PLC-проекта: ветка PLC → <имя проекта> Project, и выбрать Save as library... или Save as library and install... чтобы еще и установить сразу же в локальный репозиторий.


Чуть больше подробностей для разработчиков библиотек можно почерпнуть в статьях Intro PLC Libraries и Library Management.