Название | Версия | Лицензия | Источник | Языки | Автор | Описание |
---|---|---|---|---|---|---|
Библиотека низкоуровневых сенсоров и чипов | 1.4 | GPLv2 | OscadaLibs.db (SQL, GZip) > DAQ.tmplb_LowDevLib | en, uk, ru | Роман Савоченко Аркадий Кысиль (2017) |
Библиотека шаблонов предоставления доступа к данным устройств низкоуровневых шин.
|
Библиотека устройств пользовательских протоколов создана для предоставления доступа к данным устройств низкоуровневых шин, с протоколом достаточно простым для реализации в модуле пользовательского протокола или непосредственно на внутреннем языке подобном на Java.
Названия элементов и их параметров доступны на языках: Английский, Украинский и Российский. Их исходный код написан в языко(человеческий)-независимом режиме с вызовом функции перевода tr() и перевод этих сообщений также доступен Английским, Украинским и Российским.
Для подключения библиотеки к проекту станции OpenSCADA Вы можете получить файл БД как:
$ wget http://oscada.org/svn/trunk/OpenSCADA/data/LibsDB/OscadaLibs.sql $ sqlite3 -init OscadaLibs.sql OscadaLibs.db .exit
Этот загруженный файл вы далее можете разместить в каталоге проекта станции и создать объект базы данных модуля БД "SQLite", зарегистрировав файл базы данных в конфигурации.
Для DAQ-шаблонов, в целом, вам нужно создать представительский объект устройства в модуле Логического Уровня и выбрать соответствующий шаблон из библиотеки шаблонов. Далее, для корректной конфигурации, придерживайтесь специфики шаблона в персональном описании. Концепцию доступа к данным через пользовательский протокол можно изобразить как на рисунке 1.
Как можно видеть с рисунка 1, взаимодействие с устройством происходит через некоторый транспорт на котором они физически базируются. Запрос к транспорту Вы можете отправить:
Прямая работа с выходным транспортом функции string messIO( string mess, real timeOut = 0 ); не предусматривает блокирования транспорта поза вызовом этой функции, а соответственно, для сложных протоколов с посылками ответа более чем в одном пакете, что предусматривает процесс "дожидания", не можно использовать общий транспорт, по которому возможна отправка пакетов различных протоколов или даже один, но в различных задачах (объектах контроллеров). Соответственно, если есть необходимость использования совместного транспорта, то размещайте параметры опроса по протоколу в одном объекте контроллера (задаче) или используйте модуль пользовательского протокола, к которому это замечание не имеет отношения, поскольку он осуществляет такое блокирование на время вызова процедуры обработки, как и остальные модульные протоколы OpenSCADA.
Для размещения реализации протокола тут вы должны выполнить и придерживаться приведенных требований:
1 One Wire by DS9097 (1W_DS9097) |
1.2 | GPLv2 | * | en | |
2 One Wire by DS9097U (1W_DS9097U) |
1.2 | GPLv2 | * | en | Roman Savochenko |
One Wire sensors bus implementing by 1Wire-adapter {DS9097,DS9097U}. Supported direct and parasite powering for the temperature sensors.
Supported 1Wire-devices: DS1820, DS1820/DS18S20/DS1920 (not tested), DS1822 (not tested), DS2413, DS2408, DS2450, DS2438.
Template IOs
Identifier | Parameter | Type | Mode | Attribute | Configuration | Value |
---|---|---|---|---|---|---|
transport | Transport of the One Wire bus, Serial | String | Input | Not attribute | Constant | oneWire |
tmResc | Rescan period, s | Real | Input | Not attribute | Constant | 60 |
power | Power, for temperature | Boolean | Input | Read only | Variable | |
this | Object | Object | Input | Not attribute | Variable | |
f_frq | Function calculate frequency (Hz) | Real | Input | Not attribute | Variable | 1000 |
f_start | Function start flag | Boolean | Input | Not attribute | Variable | 0 |
f_stop | Function stop flag | Boolean | Input | Not attribute | Variable | 0 |
f_err | Function error | String | Input | Not attribute | Variable | 0 |
Configuring and using
3 I2C: PCF8591 (PCF8591) |
1.0 | GPLv2 | * | en | Roman Savochenko |
I2C 8-bit 4xA/D and D/A converter. Connects through a Serial output transport into the I2C mode.
Template IOs
Identifier | Parameter | Type | Mode | Attribute | Configuration | Value |
---|---|---|---|---|---|---|
transport | Transport of the I2C, Serial | String | Input | Not attribute | Constant | i2c |
addr | Device address [0...119] | Integer | Input | Not attribute | Constant | 72 |
vRef | Reference voltage, V | Real | Input | Not attribute | Constant | 3.2 |
ai0 | AI0 | Real | Input | Read only | Variable | |
ai1 | AI1 | Real | Input | Read only | Variable | |
ai2 | AI2 | Real | Input | Read only | Variable | |
ai3 | AI3 | Real | Input | Read only | Variable | |
ao | AO | Real | Input | Full access | Variable | |
f_frq | Function calculate frequency (Hz) | Real | Input | Not attribute | Variable | 1000 |
f_start | Function start flag | Boolean | Input | Not attribute | Variable | 0 |
f_stop | Function stop flag | Boolean | Input | Not attribute | Variable | 0 |
f_err | Function error | String | Input | Not attribute | Variable | 0 |
Configuring and using
4 I2C: PCF8574 (PCF8574) |
1.0 | GPLv2 | * | en | Roman Savochenko |
I2C 8-bit 8DIO. Connects through a Serial output transport into the I2C mode.
Template IOs
Identifier | Parameter | Type | Mode | Attribute | Configuration | Value |
---|---|---|---|---|---|---|
transport | Transport I2C | String | Input | Not attribute | Constant | i2c |
addr | Device address (0, 119) | Integer | Input | Not attribute | Constant | 39 |
di0 | DI0 | Boolean | Input | Read only | Variable | |
di1 | DI1 | Boolean | Input | Read only | Variable | |
di2 | DI2 | Boolean | Input | Read only | Variable | |
di3 | DI3 | Boolean | Input | Read only | Variable | |
di4 | DI4 | Boolean | Input | Read only | Variable | |
di5 | DI5 | Boolean | Input | Read only | Variable | |
di6 | DI6 | Boolean | Input | Read only | Variable | |
di7 | DI7 | Boolean | Input | Read only | Variable | |
do0 | DO0 | Boolean | Output | Full access | Variable | |
do1 | DO1 | Boolean | Output | Full access | Variable | |
do2 | DO2 | Boolean | Output | Full access | Variable | |
do3 | DO3 | Boolean | Output | Full access | Variable | |
do4 | DO4 | Boolean | Output | Full access | Variable | |
do5 | DO5 | Boolean | Output | Full access | Variable | |
do6 | DO6 | Boolean | Output | Full access | Variable | |
do7 | DO7 | Boolean | Output | Full access | Variable | |
f_frq | Function calculate frequency (Hz) | Real | Input | Not attribute | Variable | 1000 |
f_start | Function start flag | Boolean | Input | Not attribute | Variable | 0 |
f_stop | Function stop flag | Boolean | Input | Not attribute | Variable | 0 |
f_err | Function error | String | Input | Not attribute | Variable | 0 |
Configuring and using
5 I2C: ADS101x, ADS111x (ADS111x) |
1.0 | GPLv2 | * | en | Roman Savochenko |
I2C 12/16-bit 4xA/D converter. Connect through a Serial output transport into the I2C mode.
Template IOs
Identifier | Parameter | Type | Mode | Attribute | Configuration | Value |
---|---|---|---|---|---|---|
transport | Transport of the I2C, Serial | String | Input | Not attribute | Constant | i2c |
addr | Device address [0...119] | Integer | Input | Not attribute | Constant | 72 |
range | Range, ±V | Integer numbers selection | Input | Full access | Variable | 2 0;1;2;3;4;5 |
ai0 | AI0 | Real | Input | Read only | Variable | |
ai1 | AI1 | Real | Input | Read only | Variable | |
ai2 | AI2 | Real | Input | Read only | Variable | |
ai3 | AI3 | Real | Input | Read only | Variable | |
f_frq | Function calculate frequency (Hz) | Real | Input | Not attribute | Variable | 1000 |
f_start | Function start flag | Boolean | Input | Not attribute | Variable | 0 |
f_stop | Function stop flag | Boolean | Input | Not attribute | Variable | 0 |
f_err | Function error | String | Input | Not attribute | Variable | 0 |
Configuring and using
6 I2C: MCP4725 (MCP4725) |
1.0 | GPLv2 | * | en | Roman Savochenko |
I2C 12-bit D/A converter. Connect through a Serial output transport into the I2C mode.
Template IOs
Identifier | Parameter | Type | Mode | Attribute | Configuration | Value |
---|---|---|---|---|---|---|
transport | Transport of the I2C, Serial | String | Input | Not attribute | Constant | i2c |
addr | Device address [0...119] | Integer | Input | Not attribute | Constant | 96 |
vRef | Reference voltage, V | Real | Input | Not attribute | Constant | 3.2 |
ao | AO | Real | Input | Full access | Variable | |
f_frq | Function calculate frequency (Hz) | Real | Input | Not attribute | Variable | 1000 |
f_start | Function start flag | Boolean | Input | Not attribute | Variable | 0 |
f_stop | Function stop flag | Boolean | Input | Not attribute | Variable | 0 |
f_err | Function error | String | Input | Not attribute | Variable | 0 |
Configuring and using
7 I2C: BMP180 (BMP180) |
1.0 | GPLv2 | * | en | Roman Savochenko |
I2C Pressure and Temperature sensor. Connecting through a Serial output transport into the I2C mode.
Template IOs
Identifier | Parameter | Type | Mode | Attribute | Configuration | Value |
---|---|---|---|---|---|---|
transport | Transport of the I2C, Serial | String | Input | Not attribute | Constant | i2c |
addr | Device address [0...119] | Integer | Input | Not attribute | Constant | 119 |
oss | Oversampling setting (0...3) | Integer | Input | Not attribute | Constant | 0 |
t | T, °С | Real | Input | Read only | Variable | |
p | P, Pa | Real | Input | Read only | Variable | |
f_frq | Function calculate frequency (Hz) | Real | Input | Not attribute | Variable | 1000 |
f_start | Function start flag | Boolean | Input | Not attribute | Variable | 0 |
f_stop | Function stop flag | Boolean | Input | Not attribute | Variable | 0 |
f_err | Function error | String | Input | Not attribute | Variable | 0 |
Configuring and using
8 I2C: BME280 (BME280) |
1.0 | GPLv2 | * | en | Arcadiy Kisel, Roman Savochenko |
I2C Barometric Pressure, Temperature and Humidity sensor. Connect through a Serial output transport into the I2C mode.
Template IOs
Identifier | Parameter | Type | Mode | Attribute | Configuration | Value |
---|---|---|---|---|---|---|
transport | Transport of the I2C, Serial | String | Input | Not attribute | Constant | i2c |
addr | Device address [0...119] | Integer | Input | Not attribute | Constant | 118 |
oss | Oversampling setting (0...7) | Integer | Input | Not attribute | Constant | 0 |
t | T, °С | Real | Input | Read only | Variable | |
p | P, Pa | Real | Input | Read only | Variable | |
h | H, % | Real | Input | Read only | Variable | |
f_frq | Function calculate frequency (Hz) | Real | Input | Not attribute | Variable | 1000 |
f_start | Function start flag | Boolean | Input | Not attribute | Variable | 0 |
f_stop | Function stop flag | Boolean | Input | Not attribute | Variable | 0 |
f_err | Function error | String | Input | Not attribute | Variable | 0 |
Configuring and using
9 I2C: SHT3x (SHT3x) |
1.0 | GPLv2 | * | en | Roman Savochenko |
Digital Temperature and Humidity Sensor for the models: SHT30
Template IOs
Identifier | Parameter | Type | Mode | Attribute | Configuration | Value |
---|---|---|---|---|---|---|
transport | Transport of the I2C, Serial | String | Input | Not attribute | Constant | i2c |
addr | Device address [0...119] | Integer | Input | Not attribute | Constant | 68 |
H | Humidity | Real | Input | Read only | Variable | |
T | Temperature | Real | Input | Read only | Variable | |
f_frq | Function calculate frequency (Hz) | Real | Input | Not attribute | Variable | 1000 |
f_start | Function start flag | Boolean | Input | Not attribute | Variable | 0 |
f_stop | Function stop flag | Boolean | Input | Not attribute | Variable | 0 |
f_err | Function error | String | Input | Not attribute | Variable | 0 |
Configuring and using
10 I2C: DS1307,DS3231 (DS3231) |
1.1 | GPLv2 | * | en | Roman Savochenko |
I2C RTC chips DS1307,DS3231 with Temperature sensor and calibration for DS3231. Connects through a Serial output transport into the I2C mode.
Template IOs
Identifier | Parameter | Type | Mode | Attribute | Configuration | Value |
---|---|---|---|---|---|---|
transport | Transport of the I2C, Serial | String | Input | Not attribute | Constant | i2c |
addr | Device address [0...119] | Integer | Input | Not attribute | Constant | 119 |
mode | Mode | Integer numbers selection | Input | Full access | Variable | 0
0;1 |
tm | Date and time, YYYY-MM-DDTHH:mm:SS | String | Input | Full access | Variable | |
pSQW | Enable SQUARE-WAVE OUTPUT | Boolean | Input | Full access | Variable | |
pSQWf (dynamically updated) |
SQUARE-WAVE OUTPUT frequency | Integer | Input | Full access | Variable | |
agOff (dynamically created for DS3231) |
Aging offset, [-128...127] | Integer | Input | Full access | Variable | |
t (dynamically created for DS3231) |
T, °С | Real | Input | Read only | Variable | |
p32k (dynamically created for DS3231) |
Enable 32768Hz | Boolean | Input | Full access | Variable | |
f_frq | Function calculate frequency (Hz) | Real | Input | Not attribute | Variable | 1000 |
f_start | Function start flag | Boolean | Input | Not attribute | Variable | 0 |
f_stop | Function stop flag | Boolean | Input | Not attribute | Variable | 0 |
f_err | Function error | String | Input | Not attribute | Variable | 0 |
Configuring and using
11 I2C: AT24C{32|64} (AT24CXX) |
1.0 | GPLv2 | * | en | Roman Savochenko |
Provides operations with EEPROM memory based on I2C chips AT24C32 (4KB) and AT24C64 (8KB). Supported random reading and writing.
Output user protocol's XML request structure
<{cmd} addr="{ChipAddr}" off="{MemOffset}" size="{ReadSize}" err="1:Error">{ReadWriteSeq}</{cmd}>
Configuring and using
req = SYS.XMLNode("read"); req.setAttr("ProtIt","AT24CXX").setAttr("addr",87).setAttr("off",1000).setAttr("size",20).setText("My message"); req = SYS.XMLNode("write"); req.setAttr("ProtIt","AT24CXX").setAttr("addr",87).setAttr("off",1000).setText("Stored data");
12 GPIO: DHT11,22 (DHT) |
1.0 | GPLv2 | * | en | Roman Savochenko |
Digital Temperature and Humidity Sensor for models: DHT11, DHT12, AM2302, AM2320, ... . The module designed for the sensors connect through GPIO, mostly it's Raspberry PI BCM2835 GPIO.
Conditions: Exclusively realtime planing in the priority 199 (FIFO-99).
Template IOs
Identifier | Parameter | Type | Mode | Attribute | Configuration | Value |
---|---|---|---|---|---|---|
addr | GPIO address with functions mode(), get() and put(), mostly it's BCM2835 | String | Input | Not attribute | Constant | DAQ.GPIO.io.pi |
pin | IO pin number of the GPIO | Integer | Input | Not attribute | Constant | 17 |
tries | Tries [1...5] | Integer | Input | Not attribute | Constant | 2 |
dev | Device (0-DHT11, 1-DHT22) | Integer | Input | Not attribute | Constant | 1 |
t | T, °С | Real | Input | Read only | Variable | |
h | H, % | Real | Input | Read only | Variable | |
f_frq | Function calculate frequency (Hz) | Real | Input | Not attribute | Variable | 1000 |
f_start | Function start flag | Boolean | Input | Not attribute | Variable | 0 |
f_stop | Function stop flag | Boolean | Input | Not attribute | Variable | 0 |
f_err | Function error | String | Input | Not attribute | Variable | 0 |
Configuring and using
13 GPIO: MAX6675 (MAX6675) |
0.1 | GPLv2 | * | en | Arcadiy Kisel |
Cold-Junction-Compensated K-Thermocouple-to-Digital Converter (0°C to +1024°C). The module designed for the sensors connect through softSPI by GPIO, mostly it's Raspberry PI BCM2835 GPIO.
Conditions: Exclusively realtime planing in the priority 199 (FIFO-99).
Template IOs
Identifier | Parameter | Type | Mode | Attribute | Configuration | Value |
---|---|---|---|---|---|---|
addr | GPIO address with functions mode(), get() and put(), mostly it's BCM2835 | String | Input | Not attribute | Constant | DAQ.GPIO.io.pi |
pin_cs | CS pin number of the GPIO | Integer | Input | Not attribute | Constant | 8 |
pin_sclk | SCLK pin number of the GPIO | Integer | Input | Not attribute | Constant | 11 |
pin_miso | MISO pin number of the GPIO | Integer | Input | Not attribute | Constant | 9 |
t | T, °С | Real | Output | Read only | Variable | |
f_frq | Function calculate frequency (Hz) | Real | Input | Not attribute | Variable | 1000 |
f_start | Function start flag | Boolean | Input | Not attribute | Variable | 0 |
f_stop | Function stop flag | Boolean | Input | Not attribute | Variable | 0 |
f_err | Function error | String | Input | Not attribute | Variable | 0 |
Configuring and using
14 GPIO|I2C: 1602A(HD44780) (1602A) |
1.0 | GPLv2 | * | en | Roman Savochenko |
LCD Module 1602A, STN, BLUB, 16 Character x 2 Line, 5 x 8 Dots, by the direct (Raspberry PI BCM2835 GPIO) or I2C (PCF8574) wiring.
Conditions: Default planing policy but realtime one preferred.
Template IOs
Identifier | Parameter | Type | Mode | Attribute | Configuration | Value |
---|---|---|---|---|---|---|
transport | Transport of the I2C, Serial (i2c) or GPIO address with function put(), mostly it's BCM2835 (DAQ.GPIO.io.pi) |
String | Input | Not attribute | Constant | i2c |
addr | I2C device address [0...119] | Integer | Input | Not attribute | Constant | 39 |
RS | GPIO Pin: Reset | Integer | Input | Not attribute | Constant | 7 |
E | GPIO Pin: Enable | Integer | Input | Not attribute | Constant | 8 |
D4 | GPIO Pin: Data4 | Integer | Input | Not attribute | Constant | 25 |
D5 | GPIO Pin: Data5 | Integer | Input | Not attribute | Constant | 24 |
D6 | GPIO Pin: Data6 | Integer | Input | Not attribute | Constant | 23 |
D7 | GPIO Pin: Data7 | Integer | Input | Not attribute | Constant | 18 |
ln1 | Line 1 | String | Input | Full access | Variable | |
ln2 | Line 2 | String | Input | Full access | Variable | |
f_frq | Function calculate frequency (Hz) | Real | Input | Not attribute | Variable | 1000 |
f_start | Function start flag | Boolean | Input | Not attribute | Variable | 0 |
f_stop | Function stop flag | Boolean | Input | Not attribute | Variable | 0 |
f_err | Function error | String | Input | Not attribute | Variable | 0 |
Configuring and using
Libs/LowLevelDevices/ru - GFDL | February 2022 | OpenSCADA 1+r2802 |