У меня есть маленький гаджет типа raspberry pi, работающий под Linux. Я использую uModbus , чтобы он действовал как сервер Modbus, чтобы он мог предоставлять данные и контрольные точки для более крупной системы ПЛК.
Мое устройство является шлюзом для ряда подузлов. Давайте представим, например, что это микродатчики данных о погоде. Для каждого из них устройство собирает данные о давлении, влажности, температуре и скорости ветра. Число подузлов является переменным, но может достигать 100. Возможно, что в какой-то момент может быть добавлено одно или два дополнительных значения к тому, что могут считывать датчики.
Чтобы объединить эти значения в регистры Modbus, я могу выбрать порядок по первому подузлу или второму подузлу.
Первая схема подузла может выглядеть примерно так:
baseAddress = 01000 + (subnodeIndex * 10)
А затем отдельные значения для каждого подузла просто смещаются от этого.
Вторая схема подузла будет назначать baseAddress для каждого типа значения (например, температура начинается с 00100, влажность с 00300 и т. Д.).
Есть ли веская причина предпочитать одну схему другой? Или есть схема, по которой я скучаю? Похоже, что в банковских значениях есть смысл использовать преимущества чтения одного блока, но в то же время, оставляя место для будущего расширения, поощряется некоторая форма заполнения между значениями.