OpenSCADA

Модули/Sockets

This page is a translated version of the page Modules/Sockets and the translation is 55% complete.

English • ‎mRussian • ‎Українська
Модуль Имя Версия Лицензия Источник Языки Платформы Тип Автор Описание
Sockets Сокеты 4.8 GPL2 tr_Sockets.so en,uk,ru,de x86,x86_64,ARM Транспорт Роман Савоченко
  Максим Кочетков (2014)
Предоставляет транспорт основанный на сокетах. Поддерживаются сетевые и UNIX сокеты. Сетевой сокет поддерживает TCP, UDP и RAWCAN протоколы.

Модуль предоставляет в программу поддержку транспортов, основанных на сокетах. Поддерживаются входные и выходные транспорты, основанные на сетевых сокетах TCP, UDP, UNIX и RAWCAN.

Добавить новые входные и выходные сокеты можно посредством конфигурации транспортной подсистемы в любом конфигураторе OpenSCADA.

Contents

1 Входные транспорты

Сконфигурированный и запущенный входной транспорт открывает серверный сокет для ожидания соединения клиентов, кроме инициативного подключения. В случае с UNIX сокетом создаётся файл UNIX сокета. Сокеты TCP и UNIX являются многопоточными, т.е. при подключении клиента к сокетам данных типов создаётся клиентский сокет и новый поток, в котором производиться обслуживание клиента. Серверный сокет, в этот момент, переходит к ожиданию запросов от нового клиента. Таким образом достигается параллельное обслуживание клиентов. RAWCAN сокет осуществляет прием CAN кадров из интерфейса согласно настроенному фильтру.

Each input transport is associated with one or several available transport protocols, to which input messages are transmitted. Together with the transport protocols, the mechanism of combining fragmented pieces when sending requests is supported.

Read about the passive acquisition mechanism and initiative connections you can in the corresponding part of the "Data acquisition in OpenSCADA" document.

Fig.1. The generic configuration dialogues of the input socket.

Using the main dialog you can set:

At.png Empty value of the protocols selection switches the transport mode to creating the associated output transports for each connection ID read from to that input.

Using the additional dialog you can set:

At.png Disabling this feature is not recommended because the TCP/IP network property does not guarantee the server notification about the disconnection, say in the event of a power failure on the client. As a result, the opened client connections can remain forever, and when the limit is reached the server will stop accepting new ones!

Features of the formation of the input socket address are given in the table below:

Socket type Address
TCP

[TCP:]{addr}[:{port}[,{port2}[,{portN}]][:{mode}[:{IDmess}]]]
where:

  • addr – address for socket to be opened, empty or "*" address opens socket for all interfaces. There may be as the symbolic representation as well as IPv4 "127.0.0.1" or IPv6 "[::1]".
  • port, port2, portN – network ports on which the socket is sequential opened (at busy the first ones), indication of the character name of the port, according to /etc/services is available.
  • mode – mode of the input socket working:
    • 0 — force closing the connection after the session reception-response.
    • 1(default) — do not close, only by the KeepAlive parameters.
    • 2 — initiative connection. Enables the mode of connecting this input transport to remote host (address instead of local) and switching to the listening state of this host. The "Keep alive timeout" value is used as the timeout of the re-connection of this transport in the absence of activity in order to restore the possibly lost connection.
  • IDmess — identification message of the initiative connection — the mode 2.

Example: "TCP::10001:1" — the TCP socket is available on all interfaces, opened on port 10001 and the connection does not break.

UDP

UDP:{addr}:{port}
where:

  • addr — the same as in the TCP;
  • port — the same as in the TCP.

Example: "UDP:localhost:10001" — the UDP-socket is only available on the "localhost" interface and opened on the port 10001.

RAWCAN

RAWCAN:{if}:{mask}:{id}
where:

  • if — name of the CAN interface;
  • mask, id — mask and identifier of filtering the CAN frames.

Example: "RAWCAN:can0:0:0" — is receiving all CAN frames at the interface "can0".

UNIX

UNIX:{name}:{mode}
where:

  • name — file name of the UNIX socket;
  • mode — the same as in the TCP.

Example: "UNIX:/tmp/oscada:1" — UNIX-socket is available through the file "/tmp/oscada" and it doesn't close the connection.

RAWCAN имеет некоторые особенности в формировании посылки, а именно:

2 Выходные транспорты

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

Транспорт поддерживает прямое определение нескольких адресов сервера и обработку всех IP-адресов в которые резолвится символьный адрес, что позволяет строить вертикальное резервирование непосредственно транспортом, который будет автоматически подключаться к первому доступному серверу.

Fig.2. The generic configuration dialogues of the output socket.

Using the main dialog you can set:

Using the additional dialog you can set:

Can be prioritatile specified into the address field as the second global argument, as such "localhost:123||5:1".
Can be prioritatile specified into the address field as the third global argument, as such "localhost:123||5:1||3".

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

Тип сокета Адрес
TCP/UDP

[TCP:]{addr}[,{addrN}]:{port}
UDP:{addr}[,{addrN}]:{port}
где:

  • addr — адрес к которому осуществляется подключение. Допускаются как символьное, так и IPv4 "127.0.0.1" или IPv6 "[::1]" представление адреса.
  • port — сетевой порт к которому осуществляется подключение. Возможно указание символьного имени порта согласно /etc/services.

Пример: "TCP:127.0.0.1:7634" — соединится с портом 7634 на хосте 127.0.0.1.

RAWCAN

RAWCAN:{if}:{mask}:{id}
где:

  • if — имя CAN интерфейса;
  • mask, id — маска и идентификатор CAN кадров.

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

UNIX

UNIX:{name}
где:

  • name — имя файла UNIX сокета.

Пример: "UNIX:/tmp/oscada" — соединится с UNIX-сокетом через файл "/tmp/oscada".

RAWCAN имеет некоторые особенности в формировании посылки, а именно:

Modules/Sockets/ru - GFDLMarch 2024OpenSCADA 0.9.7