Sokol-M1+Modbus: Difference between revisions

m
no edit summary
(Created page with "thumb|317x317px|Sokol-M1 + Modbus = <big>'''General information'''</big> = When working with the '''Sokol-M1 station''', data can be retrieved not only '''via GSM or a direct USB''' connection, but also by polling using '''third-party software and various RS-485 converters.''' Below are '''instructions''' for '''<u>configuring, connecting, and polling the station</u>''' using an '''RS-485''' interface converter, as well as for polling...")
 
mNo edit summary
 
(4 intermediate revisions by the same user not shown)
Line 42: Line 42:


[[File:STATION KEY INSERT.png|center|frameless|661x661px]]
[[File:STATION KEY INSERT.png|center|frameless|661x661px]]
<blockquote>'''<u>Опрос станции по Modbus без внешнего источника питания невозможен. Убедитесь, что станция подключена к внешнему источнику.</u>'''</blockquote>Цоколевка разъема питания '''8-25 VDC'''
<blockquote>'''<u>It is not possible to poll the station via Modbus without an external power source. Make sure the station is connected to an external power source.</u>'''</blockquote>Power supply pinout '''8-25 VDC'''
{| class="wikitable"
{| class="wikitable"
|'''Номер контакта'''
|'''Contact number'''
|'''Цепь'''
|'''Line'''
|'''Цвет провода'''
|'''Wire color'''
|-
|-
|1
|1
| +12
| +12
|коричневый
|brown
|-
|-
|2
|2
|GND
|GND
|синий
|blue
|}
|}
[[File:Power supply Sokol-M1.png|center|frameless|730x730px]]
[[File:Power supply Sokol-M1.png|center|frameless|730x730px]]


== '''Modbus подключение станции''' ==
== '''Modbus station connection''' ==
После этого вам необходимо подключить станцию к преобразователю '''RS-485''' (например: '''C200M2 или Bolid'''), ко входу '''Modbus''' станции. Вы можете использовать '''любой другой''' преобразователь '''RS-485''' соблюдая распиновку. Распиновка провода '''Modbus''' станции следующая: Цоколевка разъема '''Mоdbus'''
Next, you need to connect the station to an '''RS-485''' '''converter''' (such as the '''C200M2 or Bolid''') via the station’s '''Modbus''' input. You can use '''any other RS-485 converter,''' provided you follow the pinout. The pinout for the station’s Modbus cable is as follows.
 
'''<u>Modbus connector pinout:</u>'''
{| class="wikitable"
{| class="wikitable"
|'''Номер контакта'''
|'''Contact number'''
|'''Цепь'''
|'''Line'''
|'''Цвет провода'''
|'''Wire color'''
|-
|-
|1
|1
|A
|A
|желто-зеленый
|yellow-green
|-
|-
|2
|2
|B
|B
|коричневый
|brown
|-
|-
|3
|3
|GND
|GND
|синий
|blue
|}
|}
<blockquote>''<u>Возможна альтернативная распиновка:</u>''
<blockquote>''<u>An alternative pinout is possible:</u>''


* ''<u>Оранжевый - Линия А;</u>''
* ''<u>Orange - Line A;</u>''
* ''<u>Белый - Линия Б;</u>''
* ''<u>White - Line B;</u>''
* ''<u>Бело-зеленый - GND (земля)</u>''
* ''<u>White-green - GND (ground)</u>''</blockquote>
</blockquote>
[[File:Modbus pinout Sokol-M1.png|center|frameless|736x736px]]
[[File:Modbus pinout Sokol-M1.png|center|frameless|736x736px]]


== '''Распиновка и подключение преобразователей RS-485 (С200М2)''' ==
== '''Pinout and Connection of RS-485 Converters (C200M2)''' ==
Для корректной работы станции через преобразователь '''RS-485 C200M2 или Bolid''' необходимо убедиться в правильности '''подключения проводов''' и соблюдении '''распиновки.''' Также необходимо установить '''корректные драйверы''' для определения преобразователей в системе компьютера.
To ensure the station operates correctly via the '''C200M2 or Bolid RS-485 converter''', you must verify that the '''wires are connected correctly''' and that the '''pinout is correct'''. You must also install the '''correct drivers''' so that the converters are recognized by the computer system.




'''<u>[https://www.fmeter.ru/download/_ftp/escort_c-200m/%D0%94%D1%80%D0%B0%D0%B9%D0%B2%D0%B5%D1%80%20%D0%B4%D0%BB%D1%8F%20C-200M2.zip?v=150323104902 Драйверы для преобразователя C200M2]</u>'''
'''<u>[https://www.fmeter.ru/download/_ftp/escort_c-200m/%D0%94%D1%80%D0%B0%D0%B9%D0%B2%D0%B5%D1%80%20%D0%B4%D0%BB%D1%8F%20C-200M2.zip?v=150323104902 Drivers for the C200M2 Converter]</u>'''


После '''корректной установки''' драйверов преобразователь будет отображаться в разделе диспетчер устройств '''<u>в следующем виде:</u>'''
Once the drivers have been '''installed correctly''', the converter will appear in Device Manager '''<u>as follows:</u>'''[[File:Device manager C200M2 displayed name.png|center|frameless|607x607px]]
[[File:Device manager C200M2 displayed name.png|center|frameless|607x607px]]




Распиновка и цвет изоляции проводов преобразовтеля '''C200M2:'''
Pinout and wire colors for the '''<u>C200M2 converter:</u>'''
[[File:C200M2 converter pinout.png|center|frameless|539x539px]]
[[File:C200M2 converter pinout.png|center|frameless|539x539px]]
[[File:C200M2 + Sokol-M1 wires.jpg|center|frameless|732x732px]]
[[File:C200M2 + Sokol-M1 wires.jpg|center|frameless|732x732px]]


== '''Распиновка и подключение преобразователей RS-485 (BOLID)''' ==
== '''Pinout and Connection of RS-485 Converters (BOLID)''' ==
'''<u>[https://bolid.ru/production/s2000-usb.html#download Bolid C2000-USB - ссылка на скачивание драйверов.]</u>'''
'''<u>[https://bolid.ru/production/s2000-usb.html#download Bolid C2000-USB - link to download drivers.]</u>'''


Установите необходимые драйвера, в зависимости от вашей операционной системы.
Install the necessary drivers, depending on your operating system.
[[Файл:Bolid_2000_Драйвера.png|link=https://wikiru.fmeter.ru/index.php/%D0%A4%D0%B0%D0%B9%D0%BB:Bolid_2000_%D0%94%D1%80%D0%B0%D0%B9%D0%B2%D0%B5%D1%80%D0%B0.png|center|frameless|367x367px]]
 
После корректной установки драйверов преобразователь будет отображаться в COM-Портах в '''<u>следующем виде:</u>'''
[[File:Bolid 2000 Drivers.png|center|frameless|367x367px]]
 
 
Once the drivers have been installed correctly, the converter will appear in the '''COM Ports''' '''<u>as follows:</u>'''
[[File:Device manager driver name.png|center|frameless|676x676px]]
[[File:Device manager driver name.png|center|frameless|676x676px]]




'''<u>Диспетчер устройств, название драйвера BOLID:</u>'''
'''<u>Pinout of the BOLID converter:</u>'''
[[File:BOLID pinout.png|center|frameless|550x550px]]
[[File:BOLID pinout.png|center|frameless|550x550px]]


= '''Пример опроса станции по Modbus''' =
= '''Example of a Modbus station request''' =
Производить опрос станции при помощи '''<u>команды</u>''' можно через '''<u>любую приспособленную для этого программу</u>'''.
You can poll the station using this '''<u>command</u>''' via '''<u>any program designed for this purpose.</u>'''


По интерфейсу '''RS-485,''' через '''Modbus''' можно производить опрос станции используя следующие характеристики/настройки:
Via the '''RS-485 interface''', using '''Modbus''', you can poll the station with the following parameters/settings:


Протокол - '''LLS'''
Protocol - '''LLS'''


Скорость передачи данных - '''19200 kbps'''
Data rate - '''19200 kbps'''


Data size - '''8 bits'''
Data size - '''8 bits'''


Проверка на четность: '''отсутствует'''
Parity check: '''None'''


Стоп-биты - '''1'''
Stop bits - '''1'''


As an example of a request, we will use the '''[https://drive.google.com/file/d/10i7v4TZ9-JDJYPAh-9JSh4x6vkM93BVV/view?usp=sharing Terminal.exe]''' program


В качестве примера опроса мы будем использовать программу '''[https://drive.google.com/file/d/10i7v4TZ9-JDJYPAh-9JSh4x6vkM93BVV/view?usp=sharing Terminal.exe]'''


'''<u>Request command: 01 03 00 00 00 5A C5 F1</u>'''


'''<u>Команда опроса: 01 03 00 00 00 5A C5 F1</u>'''
'''01''' – address


'''01''' – адрес
'''03''' – code of the command


'''03''' – код команды
'''00 00''' – the register number starting from which the number of registers is requested


'''00 00''' – номер регистра, начиная с которого запрашивается количество регистров
'''00 ''' – number of registers requested '''(5A – 90 registers)'''


'''00 5А''' – количество запрашиваемых регистров '''<u>(5А –  90 регистров)</u>'''
'''С5 F1''' – '''CRC-16 Modbus''' with byte order reversed;
[[File:Example of the polling Sokol-M1 with the Terminal soft.png|center|thumb|590x590px|In the Terminal app the "$" symbol is used as a separator]]


'''С5 F1''' – '''CRC-16 Modbus''' с обратным порядком байтов;
[[File:Example of the polling Sokol-M1 with the Terminal soft.png|center|thumb|590x590px|In the Terminal app the "$" symbol is used as a separator]]




'''<u>Ответ:</u>'''
'''<u>Answer:</u>'''


<u>01</u> <u>03</u> <u>B4</u> <u>82 80</u> <u>00 00</u> <u>00 00</u> <u>09 A1</u> <u>27 1D</u> <u>00 19</u> <u>00 00</u> <u>01 01</u> <u>00 1D</u> <u>00 00</u> <u>00 92</u> <u>00 00</u> <u>00 00</u> <u>00 00</u> <u>00 00</u> <u>00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00</u> <u>00 00</u> <u>00 00</u> <u>00 00</u> <u>00 00</u> <u>00 00</u> <u>00 00</u> <u>00 00</u> <u>00 00</u> <u>00 00</u> <u>00 00</u> <u>00 00</u> <u>00 00</u> <u>00 00</u> <u>00 00</u> <u>00 00</u> <u>00 00</u> <u>00 06</u> <u>01 10</u> <u>0E 03</u>
<u>01</u> <u>03</u> <u>B4</u> <u>82 80</u> <u>00 00</u> <u>00 00</u> <u>09 A1</u> <u>27 1D</u> <u>00 19</u> <u>00 00</u> <u>01 01</u> <u>00 1D</u> <u>00 00</u> <u>00 92</u> <u>00 00</u> <u>00 00</u> <u>00 00</u> <u>00 00</u> <u>00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00</u> <u>00 00</u> <u>00 00</u> <u>00 00</u> <u>00 00</u> <u>00 00</u> <u>00 00</u> <u>00 00</u> <u>00 00</u> <u>00 00</u> <u>00 00</u> <u>00 00</u> <u>00 00</u> <u>00 00</u> <u>00 00</u> <u>00 00</u> <u>00 00</u> <u>00 06</u> <u>01 10</u> <u>0E 03</u>


'''<u>01 (адрес) 03 (команда) B4 (кол-во байт – 180 или 90 регистров)</u>'''
'''<u>01 (address) 03 (command) B4 (number of bytes – 180 or 90 registers)</u>'''


# 82 80 – прошивка (82-1.3.0) и тип устройства+номер банка регистров+наличие ошибки в работе сенсоров (подробнее в 90-м регистре)
# 82 80 – '''firmware (82-1.3.0) and device type + register bank number + sensor error status (Technical information for device developers)'''
# 00 00  - старшие 16 разрядов UNIX TIME
# 00 00  - the upper 16 bits of UNIX TIME
# 00 00  - младшие 16 разрядов UNIX TIME
# 00 00  - the lower 16 bits of UNIX TIME
# 09 A1 - температура  беззнаковое; разрешение 0,01 град, т.е. 09A1 – 2465 или 24.65°С
# 09 A1 - temperature: unsigned; resolution 0.01 degrees, i.e., 09A1 – 2465 or 24.65°C
# 27 1D -  атмосферное давление  беззнаковое; разрешение 10Ра; 271D 10013 т.е. 100130 Па
# 27 1D -  Atmospheric pressure is dimensionless; resolution 10Pa; 271K 10,013 Pa
# 00 19 -  относительная влажность  беззнаковое; разрешение 1%; 19 – 25%
# 00 19 -  relative humidity: unsigned; resolution 1%; 19–25%
# 00 00 - скорость ветра  беззнаковое; разрешение 0.01 m/s
# 00 00 - wind speed  unsigned; resolution 0.01 m/s
# 01 01 - направление ветра   беззнаковое; разрешение 1 град; 101 – 257°
# 01 01 - Wind direction: unsigned; resolution: 1 degree; 101–257°
# 00 1D - Уровень осадков беззнаковое; разрешение 0.1 мм; 2.9
# 00 1D - Precipitation level (unsigned); resolution 0.1 mm; 2.9
# 00 00 - Уровень ультрафиолетового излучения беззнаковое; разрешение 0.01 W/m2
# 00 00 - Ultraviolet radiation level (unsigned); resolution 0.01 W/
# 00 92 - Уровень освещенности беззнаковое; разрешение 1 lux; 92 - 146
# 00 92 - Illuminance level: unsigned; resolution: 1 lux; 92–146
# 00 00  - скорость ветра УЗ анемометра беззнаковое; разрешение 0.01 m/s
# 00 00  - Wind speed measured by the UZ anemometer is unsigned; resolution 0.01 m/s
# 00 00 - направление ветра УЗ анемометра беззнаковое; разрешение 1 град.
# 00 00 - The wind direction reading from the UZ anemometer is unsigned; resolution: 1 degree.
# 00 00 - Расстояние до препятствия (снежный покров) беззнаковое; разрешение 1 см. ДГВ должен иметь сетевой адрес 160
# 00 00 - The distance to the obstacle (snow cover) is unsigned; resolution is 1 cm. The DGV must have the network address 160
# 00 00 - Солнечная радиация  беззнаковое; разрешение 1 Вт/м2. Пиргелиометр должен иметь сетевой адрес 181
# 00 00 - Solar radiation: unsigned; resolution 1 W/. The pyrheliometer must have the IP address 181
# 00 00  - БМВД1
# 00 00  - BMVD1
# 00 00
# 00 00
# 00 00
# 00 00
Line 172: Line 175:
# 00 00
# 00 00
# 00 00
# 00 00
# 00 00 - БМВД2
# 00 00 - BMVD2
# 00 00
# 00 00
# 00 00
# 00 00
Line 179: Line 182:
# 00 00
# 00 00
# 00 00
# 00 00
# 00 00 - БМВД3
# 00 00 - BMVD3
# 00 00
# 00 00
# 00 00
# 00 00
Line 186: Line 189:
# 00 00
# 00 00
# 00 00
# 00 00
# 00 00 - БМВД4
# 00 00 - BMVD4
# 00 00
# 00 00
# 00 00
# 00 00
Line 193: Line 196:
# 00 00
# 00 00
# 00 00
# 00 00
# 00 00 - БМВД5
# 00 00 - BMVD5
# 00 00
# 00 00
# 00 00
# 00 00
Line 200: Line 203:
# 00 00
# 00 00
# 00 00
# 00 00
# 00 00 - БМВД6
# 00 00 - BMVD6
# 00 00
# 00 00
# 00 00
# 00 00
Line 214: Line 217:
# 00 00
# 00 00
# 00 00
# 00 00
# 00 00 - БМВД8
# 00 00 - BMVD8
# 00 00
# 00 00
# 00 00
# 00 00
Line 221: Line 224:
# 00 00
# 00 00
# 00 00
# 00 00
# 00 00 - Пыль 2,5 мкм  беззнаковое; разрешение
# 00 00 - Particulate matter 2.5 μm  unsigned; resolution
# 00 00 - Пыль 10 мкм  беззнаковое; разрешение 00 00
# 00 00 - Particulate matter 10 μm  unsigned; resolution 00 00
# 00 00 - уровень СО2  беззнаковое; разрешение
# 00 00 - CO2 level  unsigned; resolution
# 00 00 - уровень СО  беззнаковое; разрешение
# 00 00 - CO level  unsigned; resolution
# 00 00 - уровень NO  беззнаковое; разрешение
# 00 00 - NO level  unsigned; resolution
# 00 00  - уровень NO2  беззнаковое; разрешение
# 00 00  - NO2 level  unsigned; resolution
# 00 00 - уровень SO2  беззнаковое; разрешение
# 00 00 - SO2 level  unsigned; resolution
# 00 00  - уровень H2S  беззнаковое; разрешение
# 00 00  - H2S level  unsigned; resolution
# 00 00 - уровень HCN  беззнаковое; разрешение
# 00 00 - HCN level  unsigned; resolution
# 00 00 - уровень NH3  беззнаковое; разрешение
# 00 00 - NH3 level  unsigned; resolution
# 00 00 - уровень CH2O  беззнаковое; разрешение
# 00 00 - CH2O level  unsigned; resolution
# 00 00 - резерв 1
# 00 00 - Sokol-DS: accumulated precipitation amount, unsigned value (must be divided by 1000)
# 00 00 - резерв 2
# 00 00 - Sokol-DS; service parameters
# 00 00 - резерв 3
# 00 00 - (Sokol SVC1) Microwave sensor, distance to the nearest object in cm.
# 00 00 - резерв 4
# 00 00 - (Sokol SVC1) Microwave sensor, distance to the farthest object in cm.
# 00 00 - резерв 5
# 00 00 - reserve 5
# 00 00 - резерв 2
# 00 00 - reserve 2
# 00 06 - флаги выгрузки черного ящика
# 00 06 - black box download flags
# 01 10 - events
# 01 10 - '''events (Technical information for device developers)'''


'''<u>0E 03 – CRC-16 modbus</u>'''
'''<u>0E 03 – CRC-16 modbus</u>'''


 
If you '''<u>specify a different register in the command</u>''' as the '''<u>starting point for the data to be unloaded</u>''', and '''<u>specify a different number of registers to be requested</u>''', the response will contain '''<u>fewer registers.</u>'''
Если в '''команде''' указать '''<u>другой регистр, начиная с которого нужно выгрузить данные</u>''', и указать '''<u>другое количество запрашиваемых регистров</u>''', то в ответе будет содержаться '''<u>меньшее количество регистров.</u>'''




'''<u>Например:</u>'''
'''<u>Example:</u>'''
[[File:Polling of the Sokol-M1 with the Terminal soft 2.png|center|frameless|606x606px]]
[[File:Polling of the Sokol-M1 with the Terminal soft 2.png|center|frameless|606x606px]]
Запрос '''10 регистров''', следующих за '''5-м'''
'''<u>Request the 10 registers following the 5th</u>'''


'''<u>Запрос:</u>'''
'''Request:'''


'''<u>01 03 00 05 00 0A D5 CC</u>'''
'''<u>01 03 00 05 00 0A D5 CC</u>'''




01 – адрес


03 – команда
01 – address
 
03 – command
 
00 05 – Request to return registers starting from the 5th; that is, the response will include registers starting from the 6th


00 05 запрос выдать регистры после 5-го, т.е. в ответе будут регистры начиная с 6го
00 Request to return 10 registers


00 0А запрос выдать 10 регистров
'''<u>D5 CC checksum (byte order reversed)</u>'''


D5 CC – контрольная сумма (обратный порядок байтов)




'''<u>Ответ:</u>'''
'''<u>Answer:</u>'''


'''<u>01 03 14 00 19 00 00 01 01 00 00 00 00 00 8D 00 00 00 00 00 00 00 00 81 FF</u>'''
'''<u>01 03 14 00 19 00 00 01 01 00 00 00 00 00 8D 00 00 00 00 00 00 00 00 81 FF</u>'''


01 адрес
01 -  address


03 команда
03 - command


14 количество байт – 20, т.е 10 регистров
14 - number of bytes – 20, i.e., 10 registers


00 19 - влажность
00 19 - humidity


00 00  - скорость ветра
00 00  - wind speed


01 01 - направление ветра
01 01 - wind direction


00 00 - Уровень осадков беззнаковое; разрешение 0.1 мм; 2.9
00 00 - Precipitation level (unsigned); resolution 0.1 mm; 2.9


00 00 - Уровень ультрафиолетового излучения беззнаковое; разрешение 0.01 W/m2
00 00 - Ultraviolet radiation level (unsigned); resolution 0.01 W/


00 8D - Уровень освещенности беззнаковое; разрешение 1 lux; 92 - 146
00 8D - Illuminance level: unsigned; resolution: 1 lux; 92–146


00 00 - скорость ветра УЗ анемометра беззнаковое; разрешение 0.01 m/s
00 00 - Wind speed measured by the UZ anemometer is unsigned; resolution 0.01 m/s


00 00 - направление ветра УЗ анемометра беззнаковое; разрешение 1 град.
00 00 - The wind direction reading from the UZ anemometer is unsigned; resolution: 1 degree.


00 00 - Расстояние до препятствия (снежный покров) беззнаковое; разрешение 1 см. ДГВ должен иметь сетевой адрес 160
00 00 - The distance to the obstacle (snow cover) is unsigned; resolution is 1 cm. The DGV must have the network address 160


00 00 - Солнечная радиация  беззнаковое; разрешение 1 Вт/м2. Пиргелиометр должен иметь сетевой адрес 181
00 00 - Solar radiation: unsigned; resolution 1 W/. The pyrheliometer must have the IP address 181


'''<u>81 FF – контрольная сумма</u>'''
'''<u>81 FF – checksum</u>'''


= '''Полезные ссылки''' =
= '''Useful links''' =
'''[https://docs.google.com/document/d/1iw94kPgIUvSKXPNKiFgnPNRrkLLWsRIv/edit Разбор строки опроса станции по Modbus]'''
'''[https://docs.google.com/document/d/1iw94kPgIUvSKXPNKiFgnPNRrkLLWsRIv/edit Analysis of a Modbus station request string (RUS)]'''


'''[https://rutube.ru/video/a6b0352076af28222bd0a9f9e5ea675d/?playlist=718716 Подключение станции по Modbus (ВИДЕО)]'''
'''[https://rutube.ru/video/a6b0352076af28222bd0a9f9e5ea675d/?playlist=718716 Connecting the station via Modbus (VIDEO) (RUS)]'''


'''[https://rutube.ru/video/41aaa276f25b198b8043a09d451f1b88/?playlist=718716 Подключение питания станции (ВИДЕО)]'''
'''[https://rutube.ru/video/41aaa276f25b198b8043a09d451f1b88/?playlist=718716 Connecting the Station to Power supply (VIDEO) (RUS)]'''