July 20, 2015

TcCOM модули в TwinCAT 3

TcCOM TwinCAT 3 модуль:
  • Может работать внутри системы реального времени.
  • Может быть написан на C/C++/ST/...
  • По сути COM-объект с заданным интерфейсом.
  • Всегда идет вместе с описанием "TwinCAT Module Class" -- это .tmc файл c XML форматированием.
  • Каждый экземпляр модуля описывается в "TwinCAT Module Instance" -- это .tmi файл, содержащий как минимум: Object Id, Object Name, Type Name, GUID, инициализации параметров, и т. п.
  • Не зависит от других модулей.
  • Может содержать как одну, так и несколько функций

Модуль обязан поддерживать:


Машина состояний EthreCAT


  • INIT → PREOP (IP) -- модуль загружается в память.
  • PREOP → SAFEOP (PS) -- выделение или захват ресурсов (например, памяти).
  • SAFEOP → OP (SO) -- связь с другими модулями.
  • OP → SAFEOP (OS) -- отключение от других модулей.
  • SAFEOP → PREOP(SP) -- освобождение ресурсов.
  • PREOP → INIT (PI) -- модуль освобождает занятую им же память.


Способы коммуникации


  • Маппинг переменных области данных:
    - гарантирует целостность данных;
    - разрабатываются на любых языках программирования;
    - данные доступны только внутри цикла задачи.
  • Маппинг указателей на переменные области данных:
    - только для C/C++;
    - целостность данных не гарантируется;
    - возможен прямой доступ к данным извне цикла задачи.
  • Вызов интерфейсов других COM-объектов:
    - множество нюансов и трудностей на пути реализации.
  • Коммуникация через ADS-клиент/сервер:
    - самый универсальный, но не самый быстрый.

Полный вебинар на английском языке "TwinCAT 3 modules: idea and realization".

No comments

Post a Comment

Note: Only a member of this blog may post a comment.