OpenSCADAWiki: Home Page Uk/Doc/ Sockets ...

Home | Index | Changes | Comments | Users | Registration | Login  Password:  
 
This is an old revision of HomePageUk/Doc/Sockets from 2017-06-28 20:10:23..
English (1 Kb) English
Russian (1 Kb) Российский
 (2 Kb) Переклад

Модуль <Soсkets> підсистеми "Транспорти"

Модуль: Sockets
Ім'я: Сокеты
Тип: Транспорт
Джерело: tr_Sockets.so
Версія: 2.3
Автор: Роман Савоченко, Максим Кочетков
Опис: Надає транспорт заснований на сокетах. Підтримуються інтернет та UNIX сокети. Інтернет сокет використовує TCP, UDP та RAWCAN протоколи.
Ліцензія: GPL

Contents

Вступ

Модуль транспорту Sockets надає до системи підтримку транспортів, заснованих на сокетах. Підтримуються вхідні та вихідні транспорти, основані на інтернет сокетах: TCP, UDP та UNIX. Додати нові вхідні та вихідні сокети можна за посередництвом конфігурації транспортної підсистеми у будь якому конфігураторі системи OpenSCADA.

1. Вхідні транспорти

Сконфігурований та запущений вхідний транспорт відкриває серверний сокет для очікування підключення клієнтів, крім ініціативного підключення. У випадку з UNIX сокетом створюється файл UNIX сокету. Сокети TCP та UNIX є багатопотоковими, тобто при підключені клієнту до сокетів цих типів створюється клієнтський сокет та новий потік, у якому відбувається обслуговування клієнту. Серверний сокет у цей момент переходить до очікування запитів від нового клієнту. Таким чином досягається паралельне обслуговування клієнтів. RAWCAN сокет здійснює прийом CAN кадрів з інтерфейсу згідно налаштованому фільтру.


Кожний вхідний сокет пов'язується з одним з доступних транспортних протоколів, якому передаються вхідні повідомлення. У зв'язку з транспортним протоколом підтримується механізм об'єднання шматків розрізнених при передачі запитів.


Діалог конфігурації вхідного сокету зображено на рис. 1.


Діалог конфігурації вхідного сокету. (108 Kb)
Рис.1. Діалог конфігурації вхідного сокету.

За допомогою цього діалогу можна встановити:

 (2 Kb) Порожнє значення обрання протоколу перемикає транспорт у режим створення асоційованого вихідного транспорту для кожного підключення на цей вхідний.
Режим асоційованих вихідних транспортів для вхідного передбачає наявність деякої зовнішньої для транспорту процедури, яка виконує роль протоколу, та яка має "обходити" всі асоційовані вихідні транспорти, та виконувати запит на читання або запис-читання.
 (2 Kb) Відсутність такої процедури неминуче призведе до росту асоційованих вихідних транспортів у зв'язку відсутності сутності яка зупиняє транспорти із закритими підключеннями та можливістю послідуючого видалення зупинених вихідних транспортів цим вхідним транспортом.
 (2 Kb) Вимикати цю функцію не рекомендується оскільки властивість мереж TCP/IP не гарантує повідомлення серверу про відключення з'єднання, скажемо у випадку зникнення живлення на клієнті. У результаті чого можуть назавжди залишатися відкритими клієнтські підключення, а при досягненні ліміту сервер припинить приймати нові!

Особливості формування адрес вхідних сокетів приведено у таблиці нижче:

UNIX | UNIX:{ім'я}:{режим} де:Тип сокета|АдресTCP/UDP|TCP:{адрес}:{порт}UDP:{адрес}:{порт} где:
  • адрес — Адрес, с которым выполняется соединение. Допускаются как символьное так и IP представление адреса.
  • порт — Сетевой порт, с которым выполняется соединение. Возможно указание символьного имени порта (в соответствии с /etc/services). Пример: "TCP:127.0.0.1:7634" — соединится с портом 7634 на хосте 127.0.0.1.
  • RAWCAN|RAWCAN:{интерфейс}:{маска}:{идентификатор} где:
  • интерфейс — имя CAN интерфейса;
  • маска, идентификатор — маска и идентификатор CAN кадров. Пример: "RAWCAN:can0:0:0" — принимать все CAN кадры на интерфейсе can0. Отправка CAN фреймов в транспорт осуществляется в виде структуры struct can_frame. Размер структуры - 16 байт. 4 байта - идентификатор, 4 байта длина, 8 байт данные. Пример: 15 CD 5B 07 08 00 00 00 11 12 13 14 15 16 17 18 Идентификатор - 123456789 dec = 0x75BCD15 hex ->15 CD 5B 07 (если нужен расширенный - 0x80 добавить в последнем байте) длина - 08 00 00 00 восемь байт данные - 11 12 13 14 15 16 17 18
  • UNIX|UNIX:{имя} где:
  • имя — имя файла UNIX сокета. Пример: "UNIX:/tmp/oscada" — соединится с UNIX-сокетом через файл /tmp/oscada.||
  • Тип сокету Адреса
    TCP

    TCP:{адреса}:{порт}:{режим}
    де:

    • адреса — Адреса, на якій відкривається сокет. Має бути одним з адрес хосту. Якщо нічого не вказано, то сокет буде доступний на всіх інтерфейсах хосту. Допускається як символьне, так й IP представлення адреси.
    • порт — Мережевий порт, на якому відкривається сокет. Можливе вказання символьного імені порту (відповідно до /etc/services).
    • режим — режим роботи вхідного сокету:
      • '0' — Примусово розривати з'єднання після сеансу прийом-відповідь.
      • '1' — Не розривати з'єднання, тільки з урахуванням параметрів KeepAlive.
      • '2' — Ініціативне підключення. Включає режим ініціативи підключення цього вхідного транспорту до віддаленого хосту (адреса замість локального) та перехід у режим очікування запитів від цього хосту. Значення "Keep alive час очікування (сек.)" використовується як таймаут перепідключення даного транспорту за відсутності активності, з метою відновлення можливо втраченого підключення.

    Приклад: "TCP::10001:1" — TCP-сокет доступний на всіх інтерфейсах, відкритий на порту 10001 та з'єднання не розриває.

    UDP

    UDP:{адреса}:{порт}
    де:

    • адреса — теж що у TCP;
    • порт — теж що у TCP.

    Приклад: "UDP:localhost:10001" — UDP-сокет доступний тільки на інтерфейсі "localhost" та відкритий на порту 10001.

    RAWCAN

    RAWCAN:{інтерфейс}:{маска}:{ідентифікатор}
    де:

    • інтерфейс — ім'я CAN інтерфейсу;
    • маска, ідентифікатор — маска та ідентифікатор для фільтрації CAN кадрів.

    Приклад: "RAWCAN:can0:0:0" — приймати всі CAN кадри на інтерфейсі can0.

    #


    Переклад

    2. Исходящие транспорты

    Сконфигурированный и запущенный исходящий транспорт открывает соединение с указанным сервером. При разрыве соединения исходящий транспорт отключается. Для возобновления соединения транспорт нужно снова запустить.


    Главная вкладка страницы конфигурации исходящего сокета изображёна на рис.2.


    Головна вкладка сторінки конфігурації вихідного сокету. (90 Kb)
    Рис.2. Главная вкладка страницы конфигурации исходящего сокета.

    С помощью этого диалога можно установить:

    • Состояние транспорта, а именно: "Статус", "Запущен" и имя БД, содержащей конфигурацию.
    • Идентификатор, имя и описание транспорта.
    • Адрес транспорта. Формат адреса описан в таблице ниже.
    • Состояние, в которое переводить контроллер при загрузке: "Запущен".
    • Максимальный размер сегмента (MSS), для ограничения размера отправляемых пакетов (сегментов TCP) на плохих каналах связи. Установить в 0 для снятия пользовательского ограничения размера.
    • Временные интервалы соединения в формате: "conn:next[:rep]". Где:
      • conn — максимальное время ожидания ответа соединения, в секундах;
      • next — максимальное время ожидания продолжения ответа, в секундах;
      • rep — минимальный таймаут ожидания повтора запроса, в секундах.

    Адреса исходящих сокетов различного типа формируются следующим образом:
    #

    Ссылки

    Referring pages: HomePageUk/Doc
    HomePageUk/Doc/DAQ
    HomePageUk/Doc/OPCUA
    HomePageUk/Doc/Serial
    HomePageUk/Function
    HomePageUk/Using/PLC/firmware
    HomePageUk/Using/SmartHouse

     
    There are no files on this page.[Display files/form]
    There is no comment on this page. [Display comments/form]