# Терминология

### Плагин

Плагин (plugin) - подключаемый jar-файл, хранящийся по умолчанию в `jar/plugin`. При запуске `jar/core/jroboplc.jar` выполняется проверка доступных к использованию плагинов, загрузка плагинов и создание модулей.

### Модуль

Модуль (module) - основной программный компонент, из которых состоит работающее приложение. Модули создаются на стадии загрузки программы, объединяются в задачи и, после старта системы, выполняют определенную им работу.

### Тег

Тег (tag) - именованная переменная, содержащаяся в модуле, значение в которой может быть считано или изменено другим модулем . Модуль может иметь любое количество тегов, включая нулевое. При помощи тегов модули взаимодействуют как между собой, так и с внешним миром.

### Тип тега

Тип тега (tag type) - тип данных значения тега. Поддерживаются следующие типы данных:

- `bool` - логический
- `int` - целочисленный, знаковый, размерность 32 бит
- `long` - целочисленный, знаковый, размерность 64 бит
- `double` - вещественный, знаковый, размерность 64 бит
- `string` - строковый

### Флаг тега

Флаг тега (tag flag) - обозначает специфическое свойство тега. Каждый тег может иметь любое количество флагов. Поддерживаются следующие флаги тегов:

- `autosave` - значение тега необходимо сохранять
- `hidden` - тег не предназначен для показа удаленным клиентам
- `external` - тег содержит значение, запрошенное с удаленного сервера
- `status` - тег меняет свой статус в зависимости от состояния модуля (`good` или `bad`)

### Статус тега

Статус тега (tag status) - актуальность значения тега, определяемая состоянием модуля, владеющего тегом. Существуют два статуса тега:

- `good` - значение тега актуально
- `bad` - значение тега не актуально

### Канал

Канал (channel) - тег строкового типа, значением которого является имя другого тега. Используется для динамического связывания входов и выходов периферийных модулей с модулями управления.

### Адрес

Адрес (address) - тег, имя которого является значением канала. Адресом может являться любой тег.