Skip to content

SHIM

ШИМ-объект формирует широтно-импульсную модуляцию: аналоговый выход задаёт скважность, цифровой выход переключается в пределах MinOutputIntervalMs/MaxOutputIntervalMs.

Настройки

ts
export const SHIMObjectSettingsSchema = z.object({
  settings: z.object({
    /** Начальное состояние ШИМ (UNDEFINED/ACTIVE/UNACTIVE). */
    Value: z.nativeEnum(ESHIMObjectInitialValue),
    /** id аналогового выхода. */
    AnalogOutput: z.string(),
    /** id дискретного выхода. */
    DigitalOutput: z.string(),
    /** Интервал расчёта скважности (миллисекунды). */
    SamplingIntervalMs: z.number(),
    /** Минимальный интервал между переключениями выхода (миллисекунды). */
    MinOutputIntervalMs: z.number(),
    /** Максимальный интервал между переключениями выхода (миллисекунды). */
    MaxOutputIntervalMs: z.number(),
    /** Сохранять пользовательские настройки (0/1). */
    SaveUserSettings: z.number(),
  }),
});

Логика и команды

Команда «изменение поля» (CMD_CHANGE_FIELD) у PID и SHIM: при выборе параметра в дропдауне поле «изменить на» сразу заполняется текущим значением этого параметра из настроек объекта-цели. Механика — специализированный адаптер (Additional data команд).

★ — значение по умолчанию (чем предзаполнена форма / что выбрано при создании).

События — когда объект владелец реакции

  • изменение (MSG_STATUS_CHANGED) ★

Действия — когда объект выбран целью действия

настроить (CMD_SETUP)

  • начальное состояние (Value) — список:
    • «оставить без изменений» ★
    • «активно»
    • «неактиво»
  • период модуляции, мс (SamplingIntervalMs) — interval; ★ 10000
  • максимальное время модуляции, мс (MaxOutputIntervalMs) — число; ★ 9000; минимум 1000, максимум 10000
  • минимальное время модуляции, мс (MinOutputIntervalMs) — число; ★ 1000; минимум 0, максимум 9000

изменение поля (CMD_CHANGE_FIELD)

  • поле (field) — список:
    • «период модуляции, мс» ★
    • «минимальное время модуляции, мс»
    • «максимальное время модуляции, мс»
  • изменить на (value) — число; ★ 0

запуск расчётов (CMD_START) ★

  • полей нет: команда без параметров

остановка расчетов (CMD_STOP)

  • полей нет: команда без параметров

обновить (CMD_UPDATE)

  • полей нет: команда без параметров

Условия — когда объект связан в кейсе реакции

  • состояние (State) ★
    • операторы:
      • «находится в состоянии» (eq) ★
      • «не находится в состоянии» (neq)
    • значение — список:
      • «работает» ★
      • «выключен»

Драйвер-линки

★ — поле по умолчанию в новой связи.

Поля объекта для связи с драйвером

ПолеЧт.Зап.
значение ★
период модуляции, мс
минимальное время модуляции, мс
максимальное время модуляции, мс
обновить (служебный канал)
авария (служебный канал)

Связи только на чтение у драйверов: SNMP, PING.

Хранение

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

Mentioned In

None yet.