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> | <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''' == | ||
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> | <blockquote>''<u>An alternative pinout is possible:</u>'' | ||
* ''<u> | * ''<u>Orange - Line A;</u>'' | ||
* ''<u> | * ''<u>White - Line B;</u>'' | ||
* ''<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]] | ||
== ''' | == '''Pinout and Connection of RS-485 Converters (C200M2)''' == | ||
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 | '''<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>''' | ||
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]] | |||
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]] | ||
== ''' | == '''Pinout and Connection of RS-485 Converters (BOLID)''' == | ||
'''<u>[https://bolid.ru/production/s2000-usb.html#download Bolid C2000-USB - | '''<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. | |||
[[ | |||
[[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> | '''<u>Pinout of the BOLID converter:</u>''' | ||
[[File:BOLID pinout.png|center|frameless|550x550px]] | [[File:BOLID pinout.png|center|frameless|550x550px]] | ||
= ''' | = '''Example of a Modbus station request''' = | ||
You can poll the station using this '''<u>command</u>''' via '''<u>any program designed for this purpose.</u>''' | |||
Via the '''RS-485 interface''', using '''Modbus''', you can poll the station with the following parameters/settings: | |||
Protocol - '''LLS''' | |||
Data rate - '''19200 kbps''' | |||
Data size - '''8 bits''' | Data size - '''8 bits''' | ||
Parity check: '''None''' | |||
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 | |||
'''<u>Request command: 01 03 00 00 00 5A C5 F1</u>''' | |||
''' | '''01''' – address | ||
''' | '''03''' – code of the command | ||
''' | '''00 00''' – the register number starting from which the number of registers is requested | ||
'''00 | '''00 5А''' – number of registers requested '''(5A – 90 registers)''' | ||
''' | '''С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]] | |||
'''<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 ( | '''<u>01 (address) 03 (command) B4 (number of bytes – 180 or 90 registers)</u>''' | ||
# 82 80 – | # 82 80 – '''firmware (82-1.3.0) and device type + register bank number + sensor error status (Technical information for device developers)''' | ||
# 00 00 - | # 00 00 - the upper 16 bits of UNIX TIME | ||
# 00 00 - | # 00 00 - the lower 16 bits of UNIX TIME | ||
# 09 A1 - | # 09 A1 - temperature: unsigned; resolution 0.01 degrees, i.e., 09A1 – 2465 or 24.65°C | ||
# 27 1D - | # 27 1D - Atmospheric pressure is dimensionless; resolution 10Pa; 271K – 10,013 Pa | ||
# 00 19 - | # 00 19 - relative humidity: unsigned; resolution 1%; 19–25% | ||
# 00 00 - | # 00 00 - wind speed unsigned; resolution 0.01 m/s | ||
# 01 01 - | # 01 01 - Wind direction: unsigned; resolution: 1 degree; 101–257° | ||
# 00 1D - | # 00 1D - Precipitation level (unsigned); resolution 0.1 mm; 2.9 | ||
# 00 00 - | # 00 00 - Ultraviolet radiation level (unsigned); resolution 0.01 W/m² | ||
# 00 92 - | # 00 92 - Illuminance level: unsigned; resolution: 1 lux; 92–146 | ||
# 00 00 - | # 00 00 - Wind speed measured by the UZ anemometer is unsigned; resolution 0.01 m/s | ||
# 00 00 - | # 00 00 - The wind direction reading from the UZ anemometer is unsigned; resolution: 1 degree. | ||
# 00 00 - | # 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 - | # 00 00 - Solar radiation: unsigned; resolution 1 W/m². The pyrheliometer must have the IP address 181 | ||
# 00 00 - | # 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 - | # 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 - | # 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 - | # 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 - | # 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 - | # 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 - | # 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 - | # 00 00 - Particulate matter 2.5 μm unsigned; resolution | ||
# 00 00 - | # 00 00 - Particulate matter 10 μm unsigned; resolution 00 00 | ||
# 00 00 - | # 00 00 - CO2 level unsigned; resolution | ||
# 00 00 - | # 00 00 - CO level unsigned; resolution | ||
# 00 00 - | # 00 00 - NO level unsigned; resolution | ||
# 00 00 - | # 00 00 - NO2 level unsigned; resolution | ||
# 00 00 - | # 00 00 - SO2 level unsigned; resolution | ||
# 00 00 - | # 00 00 - H2S level unsigned; resolution | ||
# 00 00 - | # 00 00 - HCN level unsigned; resolution | ||
# 00 00 - | # 00 00 - NH3 level unsigned; resolution | ||
# 00 00 - | # 00 00 - CH2O level unsigned; resolution | ||
# 00 00 - | # 00 00 - Sokol-DS: accumulated precipitation amount, unsigned value (must be divided by 1000) | ||
# 00 00 - | # 00 00 - Sokol-DS; service parameters | ||
# 00 00 - | # 00 00 - (Sokol SVC1) Microwave sensor, distance to the nearest object in cm. | ||
# 00 00 - | # 00 00 - (Sokol SVC1) Microwave sensor, distance to the farthest object in cm. | ||
# 00 00 - | # 00 00 - reserve 5 | ||
# 00 00 - | # 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>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]] | ||
'''<u>Request the 10 registers following the 5th</u>''' | |||
''' | '''Request:''' | ||
'''<u>01 03 00 05 00 0A D5 CC</u>''' | '''<u>01 03 00 05 00 0A D5 CC</u>''' | ||
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 | 00 0А – Request to return 10 registers | ||
'''<u>D5 CC – checksum (byte order reversed)</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 | 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 - | 00 00 - Precipitation level (unsigned); resolution 0.1 mm; 2.9 | ||
00 00 - | 00 00 - Ultraviolet radiation level (unsigned); resolution 0.01 W/m² | ||
00 8D - | 00 8D - Illuminance level: unsigned; resolution: 1 lux; 92–146 | ||
00 00 - | 00 00 - Wind speed measured by the UZ anemometer is unsigned; resolution 0.01 m/s | ||
00 00 - | 00 00 - The wind direction reading from the UZ anemometer is unsigned; resolution: 1 degree. | ||
00 00 - | 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 - | 00 00 - Solar radiation: unsigned; resolution 1 W/m². The pyrheliometer must have the IP address 181 | ||
'''<u>81 FF – | '''<u>81 FF – checksum</u>''' | ||
= ''' | = '''Useful links''' = | ||
'''[https://docs.google.com/document/d/1iw94kPgIUvSKXPNKiFgnPNRrkLLWsRIv/edit | '''[https://docs.google.com/document/d/1iw94kPgIUvSKXPNKiFgnPNRrkLLWsRIv/edit Analysis of a Modbus station request string (RUS)]''' | ||
'''[https://rutube.ru/video/a6b0352076af28222bd0a9f9e5ea675d/?playlist=718716 | '''[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)]''' | ||