IEC 60870 Client
Поддерживаются как производитель, так и потребитель
Компонент клиента IEC 60870-5-104 обеспечивает доступ к серверам IEC 60870 с использованием реализации Eclipse NeoSCADA .
Пользователям Maven необходимо добавить следующую зависимость для pom.xmlэтого компонента:
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-iec60870</artifactId>
<version>x.x.x</version>
<!-- use the same version as your Camel core version -->
</dependency>URI format
Синтаксис URI endpoint следующий:
<span style="color: rgb(0,0,0);">iec60870-client:host:port/00-01-02-03-04</span>
Адрес информационного объекта закодирован в пути в синтаксисе, указанном выше. Обратите внимание, что всегда используется полный 5-октетный формат адреса. Неиспользуемые октеты должны быть заполнены нулями.
Экземпляр соединения идентифицируется частью URI, содержащей хост и порт, а также всеми параметрами из группы «id». Если встречается новый идентификатор соединения, параметры соединения будут оценены, и экземпляр соединения будет создан с этими параметрами.
Note
Если два URI указывают одно и то же соединение (хост, порт, …), но с разными параметрами соединения, то не определено, какие из этих параметров будут использованы. Окончательные параметры соединения будут оценены в следующем порядке:
-
Если присутствует, будет использован параметр connectionOptions
-
В противном случае, экземпляр defaultConnectionOptions копируется и настраивается в следующих шагах
-
Применяются protocolOptions, если они присутствуют
-
Применяются dataModuleOptions, если они присутствуют
-
Применяются все явные параметры соединения (например, timeZone)
Configuring Options
Компоненты настраиваются на двух отдельных уровнях:
-
component level
-
edpoint level
Configuring Component Options
На уровне компонента задаются основные и общие настройки, которые впоследствии наследуются endpoints. Это самый высокий уровень конфигурации.
Например, компонент может иметь настройки безопасности, учетные данные для аутентификации, URL-адреса для сетевых подключений и т. д.
Некоторые компоненты имеют всего несколько параметров, в то время как у других их может быть много. Поскольку компоненты обычно имеют предварительно настроенные значения по умолчанию, которые используются в большинстве случаев, вам может понадобиться настроить только несколько параметров компонента или вообще ничего не настраивать.
Компоненты можно настроить с использованием:
-
Component DSL.
-
Конфигурационного файла (application.properties, *.yaml files, etc).
-
Напрямую в Java code.
Configuring Endpoint Options
Обычно больше времени уходит на настройку endpoints, так как они обладают множеством параметров. Эти параметры позволяют настроить поведение endpoint в соответствии с вашими потребностями. Кроме того, параметры делятся на категории в зависимости от того, используется ли endpoint как потребитель (from), как производитель (to) или в обеих ролях.
Настройка endpoints чаще всего выполняется непосредственно в URI endpoint в виде параметров пути и запроса. Также вы можете использовать Endpoint DSL и DataFormat DSL как типобезопасный способ настройки endpoints и форматов данных в Java.
Хорошей практикой при настройке параметров является использование Property Placeholders.
Property placeholders предоставляют несколько преимуществ:
-
Помогают избежать использования жестко закодированных URL-адресов, номеров портов, конфиденциальной информации и других настроек.
-
Позволяют вынести конфигурацию за пределы кода.
-
Делают код более гибким и удобным для повторного использования.
Component properties
Acknowledge Window
-
Параметр W -- Окно подтверждения (Acknowledgment window).
-
По умолчанию: 10
-
Тип: short
Adsu Address Type
-
Размер общего адреса ASDU. Может быть либо SIZE_1, либо SIZE_2.
Возможные значения:
-
SIZE_1
-
SIZE_2
-
-
По умолчанию:
-
Тип: ASDUAddressType
Cause Of Transmission Type
-
Тип причины передачи. Может быть либо SIZE_1, либо SIZE_2.
Возможные значения:
-
SIZE_1
-
SIZE_2
-
-
По умолчанию:
-
Тип: CauseOfTransmissionType
Cause Source Address
-
Тип: Определяет, следует ли включать адрес источника.
-
По умолчанию:
-
Тип: byte
Connection Id
-
Идентификатор, группирующий экземпляры соединений.
-
По умолчанию:
-
Тип: String
Connection Timeout
-
Тип: Таймаут в миллисекундах для ожидания установления клиентом соединения.
-
По умолчанию: 10000
-
Тип: int
Data Module Options
-
Параметры модуля данных.
-
По умолчанию:
-
Тип: DataModuleOptions
Ignore Background Scan
-
Определяет, следует ли игнорировать фоновые сканирующие передачи.
-
По умолчанию: true
-
Тип: boolean
Ignore Daylight Saving Time
-
Определяет, следует ли игнорировать или учитывать DST.
-
По умолчанию: false
-
Тип: boolean
Information Object Address Type
-
Размер информационного адреса. Может быть SIZE_1, SIZE_2 или SIZE_3.
Возможные значения:
-
SIZE_1
-
SIZE_2
-
SIZE_3
-
-
По умолчанию:
-
Тип: InformationObjectAddressType
Max Unacknowledged
-
Параметр K -- Максимальное количество неподтверждённых сообщений.
-
По умолчанию: 15
-
Тип: short
Protocol Options
-
Параметры протокола.
-
По умолчанию:
-
Тип: ProtocolOptions
Time Zone
-
Часовой пояс для использования. Может быть любая строка часового пояса Java.
-
По умолчанию: UTC
-
Тип: TimeZone
Timeout1
-
Таймаут T1 в миллисекундах.
-
По умолчанию: 15000
-
Тип: int
Timeout2
-
Таймаут T2 в миллисекундах
-
По умолчанию: 10000
-
Тип: int
Timeout3
-
Таймаут T3 в миллисекундах.
-
По умолчанию: 20000
-
Тип: int
Uri Path
-
Обязательное поле - адрес информационного объекта.
-
По умолчанию:
-
Тип: ObjectAddress
Component advanced properties
Bridge Error Handler
-
Предоставляет возможность связать потребителя с маршрутизатором Error Handler Camel. Это позволяет обрабатывать исключения (если возможно), возникающие при получении входящих сообщений потребителем Camel, в виде сообщений, передаваемых в маршрутизатор Error Handler.
Важно: Это возможно только в том случае, если сторонний компонент позволяет Camel получать уведомления о возникших исключениях. Некоторые компоненты обрабатывают исключения только внутренне, из-за чего использование bridgeErrorHandler становится невозможным. В некоторых случаях мы можем доработать компонент Camel, чтобы интегрировать его со сторонним компонентом и сделать такую возможность доступной в будущих выпусках. По умолчанию потребитель использует org.apache.camel.spi.ExceptionHandler для обработки исключений, которые логируются с уровнем WARN или ERROR и игнорируются.
-
По умолчанию: false
-
Тип: boolean
Exception Handler
-
Позволяет потребителю использовать собственный ExceptionHandler.
Обратите внимание, что если включена опция bridgeErrorHandler, то эта настройка не используется. По умолчанию потребитель обрабатывает исключения, которые логируются с уровнем WARN или ERROR и игнорируются.
-
По умолчанию:
-
Тип: ExceptionHandler
Exchange Pattern
-
Определяет шаблон взаимодействия, который применяется, когда потребитель создает новый обмен (exchange).
Возможные значения:
-
InOnly
-
InOut
-
-
По умолчанию:
-
Тип: ExchangePattern