OPC UA
OPC UA драйвер
Зависимости проекта
Предварительные условия
Логирование
Логирование по умолчанию выполняется в файл
/var/log/opc_driver/opc_driver.log
Пользователь, запускающий программу, должен обладать правами на запись в этот файл.
Параметром запуска -l
можно изменить имя файла. Каталог записи логов изменить нельзя.
Файл конфигурации
Драйвер читает конфигурацию из файла по умолчанию
/etc/driver.json
либо из файла, указанного параметром запуска -c
.
Описание конфигурации см. ниже.
Пример конфигурационного файла расположен в каталоге config
./config/driver.json
Простейший эмулятор OPC UA сервера
При разработке использовался эмулятор OPC UA сервера в докере, который устанавливается и
запускается командами
docker pull iotechsys/opc-ua-sim:1.2
docker run --rm --name opc-ua-sim -p 49947:49947 iotechsys/opc-ua-sim:1.2 -l /example-scripts/simulation.lua
Параметры запуска
- -c - используется указанный файл конфигурации (полный путь) вместо файла по умолчанию
- -d - выводить в журнал отладочную информацию
- -l - выводить логи в указанный файл вместо файла по умолчанию
- -v - выводить логирование в указанный файл вместо файла по умолчанию
Пример запуска с параметрами
./_bin/opc_driver -d -v -c /etc/opc_driver/config/opc_driver.json
Описание конфигурации
Файл driver.json соответствует требованиям к файлам конфигурации драйверов нового поколения. Ниже приведены требования к
каждой из секций со стороны драйвера.
mqtt
Обязательна. Авторизация пока не реализована.
Пример:
"mqtt": {
"port": 1883,
"url": "localhost"
}
port.connection
Обязательна.
type: "opc.ua". Другие типы игнорируются.
tcp: обязательна. Авторизация пока не реализована
enabled: по умолчанию true. Если false, порт игнорируется.
poll_interval: по умолчанию 60. Интервал опроса в секундах.
Пример:
"connection": {
"enabled": true,
"poll_interval": 60,
"rto": 2000,
"sto": 2000,
"type": "opc.ua",
"tcp": {
"url": "opc.tcp://10.4.2.115",
"port": 54000
}
}
port.devices
Обязательна. Содержит описания устройств ОРС сервера.
name: обязательна. Используется в топике сообщений.
cname: обязательна. По ней ищется набор параметров.
sid: обязательна. Идентификатор пространства имен параметров ОРС сервера.
enabled: по умолчанию true. Если false, игнорируется.
Пример:
{
"name": "PD_SIMULATOR",
"sid": 1,
"cname": "simulator"
}
port.parameters.config
Обязательна. Содержит описания параметров ОРС сервера и связь с устройствами.
cname: обязательна. По ней ищется связь с устройствами.
channels: обязательна. Содержит описания параметров.
port.parameters.channels
Массив параметров. Каждый параметр описывается следующими атрибутами.
name: обязательно. Используется в топике сообщений.
node_id: обязательно. Имя узла на ОРС сервере.
enabled: по умолчанию true. Если false, игнорируется.
value_type: не обязательно, если не планируется писать данные в параметр OPC-сервера. При чтении используются метаданные с сервера. В дальнейшем,
при смене типа опроса на бинарный, может быть востребовано.
В настоящее время используются типы: bit, i8, u8, i16, u16, i32, u32, i64, u64, str, float32, float64, date_time
Использование других стандартных атрибутов пока не реализовано.
Пример:
{
"name": "Saw",
"node_id": "PN_SIMULATOR.PD_SIMULATOR.Saw",
"value_type": "float32"
}