Skip to content

MODBUS

Драйвер MODBUS — интеграция с контроллерами по протоколу Modbus: настройка соединения и привязка объектов к регистрам.

Настройки драйвера

ts
export const MODBUSSettingsSchema = z.object({
  settings: z.object({
    /** IP-адрес MODBUS-устройства. */
    IP: nonEmptyString(t("shared_text.ip_required")),
    /** Порт MODBUS-устройства (стандартно 502). */
    Port: nonEmptyString(t("shared_text.port_required")),
    /** Таймаут ожидания ответа (миллисекунды). */
    Timeout: z.number(),
    /** Тип MODBUS-соединения (TCP/RTU). */
    Type: z.nativeEnum(MODBUStypes),
  }),
});

Настройки связи по доступу

Настройки всегда хранятся в БД целиком — доступ связи (чтение/запись) определяет только видимость полей в редакторе и состав запроса, уходящего на контроллер.

НастройкаЧт.Зап.
регистр
адрес регистра
адрес устройства
интервал опроса, сек
частота опроса
тип значения
номер бита
очередь

Типы

ts
export interface IMODBUSDriverSettingsProps {
  /** интервал опроса, секунд */
  [EDriverSettingsType.INTERVAL]: string;
  /** частота опроса, секунд */
  [EDriverSettingsType.REPEAT_SEC]: string;
  /** адрес устройства (slave id) в MODBUS-сети */
  [EDriverSettingsType.SLAVEID]: string;
  /** тип регистра (coil/discrete input/holding/input); строка — свободные ключи импорта */
  [EDriverSettingsType.REGISTER]: EMODBUSRegister | string;
  /** адрес регистра */
  [EDriverSettingsType.ADDRESS]: string;
  /** исторически и строкой (дефолты/импорт), и числом (UI LibInputNumber) */
  [EDriverSettingsType.BIT]: string | number;
  /** тип значения регистра (int16/float/...); строка — свободные ключи импорта */
  [EDriverSettingsType.APPLICATION_TAGS]: EMODBUSRegister | string;
  /** отправка в составе интервальной очереди (WRITE-линк) */
  [EDriverSettingsType.INTER_SEND]: boolean;
}

Хранение

Сохраняется в таблице project_objects через RepositoryObject (Dexie).

Mentioned In

None yet.