# Интеграция SIMP Light и оборудования WirenBoard

**URL:** <https://support.wirenboard.com/t/integracziya-simp-light-i-oborudovaniya-wirenboard/2495>\
**Category:** Программное обеспечение\
**Created:** [January 31, 2019, 10:41am UTC](https://support.wirenboard.com/t/integracziya-simp-light-i-oborudovaniya-wirenboard/2495 "2019-01-31T10:41:24Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![stskr](https://support.wirenboard.com/user_avatar/support.wirenboard.com/stskr/32/813_2.png) [@stskr](https://support.wirenboard.com/u/stskr)\
**Post date:** [January 31, 2019, 10:41am UTC](https://support.wirenboard.com/t/integracziya-simp-light-i-oborudovaniya-wirenboard/2495/1 "2019-01-31T10:41:24Z")

</div>

Есть такая инструкция:  
[https://support.simplight.ru/knowledge-bases/2/articles/347-nastrojka-shlyuza-modbus-tcp-mqtt-na-wirenboard](https://support.simplight.ru/knowledge-bases/2/articles/347-nastrojka-shlyuza-modbus-tcp-mqtt-na-wirenboard)

Захожу по ссылке и вижу, что для моего устройства в полях Unit ID, Start Address стоят числа, сгенерированные случайным образом (да и в остальных столбцах тоже даные не соответствуют действительности). Так и должно быть?

Думаю, что нет. Скорее всего, некорректно работает маппинг адресов.  
Если я прав, то укажите, пожалуйста, в каких файлах он настраивается.

Нет никакого желания снова перебивать вручную всю таблицу адресов и проставлять нужные галочки, если я это уже один раз сделал в файле шаблона.

> **Код шаблона**
>
> // Configuration options  
> {  
> “device\_type” : “FW-CPM712-E10-01-3-2-2”,  
> “device” : {  
> “name”: “fw-cpm712”,  
> “id”: “fw-cpm712”,  
> “enabled”: true,  
> “slave\_id”: 9,  
> “channels”:  
> [  
> {  
> “name”: “ECU\_Soft\_Version”,  
> “reg\_type”: “input”,  
> “address”: 1,  
> “type”: “value”,  
> “format”: “u16”,  
> “scale”: null,  
> “round\_to”: null,  
> “word\_order”: “”,  
> “max”: null  
> },  
> {  
> “name”: “E\_Head\_Temp\_Set\_Point”,  
> “reg\_type”: “input”,  
> “address”: 10,  
> “type”: “temperature”,  
> “format”: “u16”,  
> “scale”: 0.015625,  
> “round\_to”: 0.1,  
> “word\_order”: “”,  
> “max”: null  
> },  
> {  
> “name”: “Battery\_DC\_Voltage”,  
> “reg\_type”: “input”,  
> “address”: 37,  
> “type”: “value”,  
> “format”: “float”,  
> “scale”: null,  
> “round\_to”: null,  
> “word\_order”: “”,  
> “max”: null  
> },  
> {  
> “name”: “E\_Remote\_Power\_SP”,  
> “reg\_type”: “holding”,  
> “address”: 0,  
> “type”: “range”,  
> “format”: “u16”,  
> “scale”: null,  
> “round\_to”: null,  
> “word\_order”: “”,  
> “max”: 1000  
> },  
> ]  
> }  
> }

---

<div class="post-metadata">

**Author:** ![Kilpio](https://avatars.discourse-cdn.com/v2/letter/k/3ab097/32.png) [@Kilpio](https://support.wirenboard.com/u/Kilpio)\
**Post date:** [January 31, 2019, 12:06pm UTC](https://support.wirenboard.com/t/integracziya-simp-light-i-oborudovaniya-wirenboard/2495/2 "2019-01-31T12:06:51Z")

</div>

stskr, добрый день! Скорее все го у вас все верно.  
Вот фрагмент описания маппинга в Modbus TCP ([https://wirenboard.com/wiki/index.php/Шлюз\_Modbus\_TCP](https://wirenboard.com/wiki/index.php/%D0%A8%D0%BB%D1%8E%D0%B7_Modbus_TCP))  
**Unit ID** и **Start address** - адресные поля Modbus TCP. Определяются хешированием от имени канала; таким образом, одинаковые каналы на разных контроллерах с большой вероятностью будут иметь одинаковые адресные поля. _Замечание:_ Unit ID 1 и 2 зарезервированы за пользователем - никакие каналы не будут автоматически назначены на эти адреса.  
Смотрите, вам не надо ничего перенабивать, достаточно выбрать те каналы, которые будут транслироваться в Modbus TCP и, используя адреса, которые сгенерил контроллер, настроить все в Simplight SCADA.

---

<div class="post-metadata">

**Author:** ![stskr](https://support.wirenboard.com/user_avatar/support.wirenboard.com/stskr/32/813_2.png) [@stskr](https://support.wirenboard.com/u/stskr)\
**Post date:** [January 31, 2019, 12:55pm UTC](https://support.wirenboard.com/t/integracziya-simp-light-i-oborudovaniya-wirenboard/2495/3 "2019-01-31T12:55:21Z")

</div>

А я думал, что **Unit ID** - это адрес устройства и **Start address** - это адрес регистра Modbus TCP. Разве не так?  
Я же писал, что в других полях тоже какая-то ерунда. Маппинг работает неправильно совсем!

А почему не сделать прозрачную трансляцию адресов?  
Вот, например, есть регистр 10 на устройстве Modbus RTU с адресом 9 и он транслируется как регистр 10 по Modbus TCP с адресом 99. Так нельзя сделать?!

Ну я понимаю, что у вас вообще все топики мапятся в регистры Modbus TCP, поэтому и каша получается! Но так неправильно делать категорически!

Сделайте тогда для Modbus-устройств (да и вообще для любых Slave-устройств со своим адресным пространством) отдельный блок регистров!  
И еще я думаю, что у пользователя должна быть возможность как-то управлять этим процессом через веб-интерфейс!

Все топики сортируются только в алфавитном порядке! Это тоже неправильно!  
У меня могут быть разные устройства с разными блоками регистров!  
А вы все это в кучу смешали! Как в этом потом разбираться!  
(Я могу сделать дополнительные префиксы к тегам, чтобы как-то разделить эти группы. Но при этом внутри самой группы будет все равно алфавитная сортировка!)

---

<div class="post-metadata">

**Author:** ![Kilpio](https://avatars.discourse-cdn.com/v2/letter/k/3ab097/32.png) [@Kilpio](https://support.wirenboard.com/u/Kilpio)\
**Post date:** [January 31, 2019, 1:42pm UTC](https://support.wirenboard.com/t/integracziya-simp-light-i-oborudovaniya-wirenboard/2495/4 "2019-01-31T13:42:15Z")

</div>

Станислав, спасибо за замечания! Постараемся учесть в новых версиях.

---

<div class="post-metadata">

**Author:** ![Kilpio](https://avatars.discourse-cdn.com/v2/letter/k/3ab097/32.png) [@Kilpio](https://support.wirenboard.com/u/Kilpio)\
**Post date:** [January 31, 2019, 1:42pm UTC](https://support.wirenboard.com/t/integracziya-simp-light-i-oborudovaniya-wirenboard/2495/5 "2019-01-31T13:42:23Z")

</div>



---

<div class="post-metadata">

**Author:** ![stskr](https://support.wirenboard.com/user_avatar/support.wirenboard.com/stskr/32/813_2.png) [@stskr](https://support.wirenboard.com/u/stskr)\
**Post date:** [January 31, 2019, 1:55pm UTC](https://support.wirenboard.com/t/integracziya-simp-light-i-oborudovaniya-wirenboard/2495/6 "2019-01-31T13:55:58Z")

</div>

А я думал, что **Unit ID** - это адрес устройства и **Start address** - это адрес регистра Modbus TCP. Разве не так?

---

<div class="post-metadata">

**Author:** ![Kilpio](https://avatars.discourse-cdn.com/v2/letter/k/3ab097/32.png) [@Kilpio](https://support.wirenboard.com/u/Kilpio)\
**Post date:** [January 31, 2019, 2:22pm UTC](https://support.wirenboard.com/t/integracziya-simp-light-i-oborudovaniya-wirenboard/2495/7 "2019-01-31T14:22:55Z")

</div>

Оба поля, **Unit ID** и **Start address** — это адресные поля Modbus TCP, не Modbus RTU. В контроллере реализован шлюз, который отображает сообщения из определённых топиков в очереди сообщений MQTT в регистры Modbus TCP, то есть адреса Modbus RTU на этом уровне никак не учитываются.

---

<div class="post-metadata">

**Author:** ![stskr](https://support.wirenboard.com/user_avatar/support.wirenboard.com/stskr/32/813_2.png) [@stskr](https://support.wirenboard.com/u/stskr)\
**Post date:** [January 31, 2019, 2:29pm UTC](https://support.wirenboard.com/t/integracziya-simp-light-i-oborudovaniya-wirenboard/2495/8 "2019-01-31T14:29:09Z")

</div>

Вот на картинке из мануала все выглядит красиво: задан один **Unit ID** = 5 и **Start Address** меняется в диапазоне от 0 до 8 с шагом 2.  
А у меня в этих столбцах какие-то случайные числа. Вот я и хочу понять, почему?!

---

<div class="post-metadata">

**Author:** ![Kilpio](https://avatars.discourse-cdn.com/v2/letter/k/3ab097/32.png) [@Kilpio](https://support.wirenboard.com/u/Kilpio)\
**Post date:** [January 31, 2019, 2:30pm UTC](https://support.wirenboard.com/t/integracziya-simp-light-i-oborudovaniya-wirenboard/2495/9 "2019-01-31T14:30:16Z")

</div>

А это они самим предлагают сделать: “2. Выставить всем единый UNIT ID (в модбасе это называется Slave ID)”

---

<div class="post-metadata">

**Author:** ![stskr](https://support.wirenboard.com/user_avatar/support.wirenboard.com/stskr/32/813_2.png) [@stskr](https://support.wirenboard.com/u/stskr)\
**Post date:** [January 31, 2019, 2:34pm UTC](https://support.wirenboard.com/t/integracziya-simp-light-i-oborudovaniya-wirenboard/2495/10 "2019-01-31T14:34:58Z")

</div>

Ну а я о чем спрашиваю?! Вот у меня таблица из 100 регистров, в каждой строчке 10 полей, которые мне нужно отредактировать вручную, т. к. никакого экспорта/импорта в CSV/Excel у вас не предусмотрено!!! Итого, 1000 операций!  
А если этих регистров будет, например, 1000 и 10 таких устройств, у каждого из которых своя таблица регистров?! Сколько операций нужно сделать?!  
Как вы предлагаете решать эту задачу?!

---

<div class="post-metadata">

**Author:** ![Kilpio](https://avatars.discourse-cdn.com/v2/letter/k/3ab097/32.png) [@Kilpio](https://support.wirenboard.com/u/Kilpio)\
**Post date:** [January 31, 2019, 3:29pm UTC](https://support.wirenboard.com/t/integracziya-simp-light-i-oborudovaniya-wirenboard/2495/11 "2019-01-31T15:29:58Z")

</div>

Если много редактировать, то можно менять значения в файле /etc/wb-mqtt-mbgate.conf  
А затем `service wb-mqtt-mbgate restart`

---

<div class="post-metadata">

**Author:** ![stskr](https://support.wirenboard.com/user_avatar/support.wirenboard.com/stskr/32/813_2.png) [@stskr](https://support.wirenboard.com/u/stskr)\
**Post date:** [February 1, 2019, 7:49am UTC](https://support.wirenboard.com/t/integracziya-simp-light-i-oborudovaniya-wirenboard/2495/12 "2019-02-01T07:49:10Z")

</div>

**Kilpio** , да, мне это как-то в голову не пришло. Но все равно это какой-то извращенный путь получается: перегнать json в csv, открыть в Excel, отредактировать, сохранить в csv, перегнать обратно в json. Это неправильно! Решайте проблему с некорректным маппингом!

---

<div class="post-metadata">

**Author:** ![EvgenyBoger](https://support.wirenboard.com/user_avatar/support.wirenboard.com/evgenyboger/32/188_2.png) [@EvgenyBoger](https://support.wirenboard.com/u/EvgenyBoger)\
**Post date:** [November 1, 2020, 11:56am UTC](https://support.wirenboard.com/t/integracziya-simp-light-i-oborudovaniya-wirenboard/2495/13 "2020-11-01T11:56:09Z")

</div>


