UNPKG

@libs-scripts-mep/reles-daq

Version:

Biblioteca que auxilia no acionamento de relés do DAQ

101 lines (70 loc) 6.49 kB
- [Gerenciamento de Relés e Alimentação do DAQ](#gerenciamento-de-relés-e-alimentação-do-daq) - [Instalando](#instalando) - [Desinstalando](#desinstalando) - [Relés](#relés) - [Importação](#importação) - [Comportamento](#comportamento) - [Métodos de Gerenciamento de Relés](#métodos-de-gerenciamento-de-relés) - [Observers, Sincronização e Segurança](#observers-sincronização-e-segurança) - [Alimentação](#alimentação) - [Importação](#importação-1) - [Métodos para Controle da Alimentação](#métodos-para-controle-da-alimentação) - [Observers, Sincronização e Segurança](#observers-sincronização-e-segurança-1) # Gerenciamento de Relés e Alimentação do DAQ Biblioteca para controle de relés e alimentação do DAQ, com features para segurança. ## Instalando Abra o terminal, e na pasta do script, execute: ``` npm i @libs-scripts-mep/reles-daq ``` ## Desinstalando Abra o terminal, e na pasta do script, execute: ``` npm uninstall @libs-scripts-mep/reles-daq ``` ## Relés ### Importação ```js import { Relays } from "@libs-scripts-mep/reles-daq/relays.js" ``` ### Comportamento - Ao inicializar, o método `init()` desliga todos os relés, popula o set `disabledRelays` e inicializa os `onChange()` dos relés, garantindo a sincronização inicial. Através dos Sets `enabledRelays` e `disabledRelays` e os atrelando aos `onChange()`, a biblioteca sempre está atualizada com os relés ligados e desligados, ou seja, mesmo que as saídas sejam manipuladas diretamente na tela do PVI, os buffers sempre estarão sincronizados; - Existe validação dos relés informados, caso não estejam no set `validRelays`, uma exceção será lançada; - Para uma maior performance e aproveitando os métodos nativos de comparação entre sets, a biblioteca não irá enviar comandos de ligar ou desligar um relé que já está no estado desejado. EX: se for solicitado o acionamento dos relés 1, 2 e 3, mas os relés 1 e 2 já constam no set `enabledRelays`, apenas o relé 3 será acionado. ### Métodos de Gerenciamento de Relés A biblioteca fornece os métodos abaixo para acionamento dos relés. Informações adicionais estão documentadas via JSDoc. | Método | Descrição | | ------------------------ | ---------------------------------------------------------------- | | `enable(relays, delay)` | Liga os relés informados | | `disable(relays, delay)` | Desliga os relés informados | | `set(relays, delay)` | Altera os buffers para manter ligados apenas os relés informados | | `clear(delay)` | Desliga todos os relés | ### Observers, Sincronização e Segurança - A biblioteca possui os seguintes observers para os relés: | Observer | Método de Adição | Aplicação | | ------------------------------- | --------------------------------------------------- | ---------------------------------------------------------- | | `ChangeObserver` | Não é possível, o observer é criado automaticamente | Atualização e sincronização dos buffers | | `ProhibitedCombinationObserver` | `Relays.addProhibitedCombination()` | Segurança: verificação de combinações proibidas | | `TimeoutObserver` | `Relays.addTimeout()` | Segurança: configura um tempo limite para um relé acionado | - Na inicialização da biblioteca, o método `init()` cria uma nova propriedade chamada `observers` dentro de cada objeto de saída relé, que é um array que irá armazenar observers e que já contém um `ChangeObserver` adicionado; - Observers são notificados via `onChange()`, que invoca o método `change()` de cada um; - Um observer é adicionado apenas aos relés de interesse, portanto a notificação apenas ocorre quando a mudança é nestes relés. EX: Se um `TimeoutObserver` for adicionado ao relé 1, apenas as mudanças do relé 1 serão capazes de notificá-lo. Desta forma, não é obrigatório que todos os relés possuam todos os observers, tornando a execução mais flexível e eficiente; - Se for necessário criar novos observers, basta que ele possua um método `change()`, sendo que pode ser incorporado à biblioteca ou também pode ser apenas um observer local e específico de um projeto. ## Alimentação ### Importação ```js import { Power } from "@libs-scripts-mep/reles-daq/power.js" ``` ### Métodos para Controle da Alimentação A biblioteca fornece os métodos abaixo para controle da alimentação. Informações adicionais estão documentadas via JSDoc. | Método | Descrição | | --------------------- | --------------------------------------------------------------------------------------------------- | | `set(voltage, delay)` | Altera a tensão de alimentação para a tensão informada. Passar voltage como 0 desliga a alimentação | | `aux(state, delay)` | Liga ou desliga a auxiliar 220V | ### Observers, Sincronização e Segurança - De modo semelhante aos relés, a biblioteca notifica os observer no método `onChange()` da saída de alimentação; - A biblioteca possui o seguinte observer: | Observer | Método de Adição | Aplicação | | --------------------------- | ------------------------------ | ----------------------------------------- | | `ProhibitedVoltageObserver` | `Power.addProhibitedVoltage()` | Segurança: verificação de tensão proibida | - O observer `ProhibitedVoltageObserver` desliga a alimentação e lança uma exceção caso a tensão seja alterada para um valor proibido. EX: em um script para um produto 12V, é possível configurar as tensões de 24V, 110V e 220V como proibidas. Caso, via script ou interface do PVI, alguma destas tensões seja acionada, o observer irá atuar e cortar a alimentação, o que pode evitar danos ao produto.