RTC

Provê acesso ao relógio calendário (RTC) do equipamento: lê a data/hora corrente do driver do RTC ou ajusta o relógio para um valor definido. É um bloco de função (mantém estado entre scans; requer instância).

Biblioteca: IEC_STD · Namespace: IEC · Tipo: bloco de função

Bloco de função

       RTC
      +-----+
IN----|     |---Q
      |     |
PDT---|     |---CDT
      +-----+

A saída Q é uma cópia da entrada IN.

Quando IN = FALSE, CDT fornece o valor corrente da data e hora obtido do driver do RTC do equipamento.

Quando IN muda de FALSE para TRUE, o valor de PDT é salvo pelo bloco. Enquanto IN for TRUE, CDT é igual a PDT acrescido do tempo decorrido desde o instante em que PDT foi salvo.

Nota

As funções e blocos padrão IEC 61131-3 são chamados sem prefixo de namespace (ex.: RTC).

Parâmetros

Nome

Direção

Tipo

Padrão

Faixa / Unidade

Descrição

IN

IN

BOOL

FALSE

—

Em FALSE, lê a data/hora corrente; na transição para TRUE, ajusta o relógio com PDT.

PDT

IN

DT

—

—

Data/hora a carregar no relógio, salva na transição de IN de FALSE para TRUE.

Q

OUT

BOOL

FALSE

—

Cópia da entrada IN.

CDT

OUT

DT

—

—

Data/hora corrente do RTC (IN = FALSE) ou PDT acrescido do tempo decorrido (IN = TRUE).

Observações

  • Com IN = FALSE o bloco apenas lê o relógio; CDT reflete a data/hora corrente do equipamento.

  • O ajuste do relógio ocorre na borda de subida de IN, no instante em que PDT é salvo.

Exemplo

Clique aqui para baixar a tabela de variáveis

Código ST

VAR
    inp_IN  : BOOL; (* Entrada IN *)
    inp_PDT : DT;   (* Entrada PDT *)
    out_Q   : BOOL; (* Saída Q *)
    out_CDT : DT;   (* Saída CDT *)
    my_RTC  : RTC;  (* Instância do bloco de função RTC *)
END_VAR

(* Exemplo de ativação do bloco RTC dentro da POU *)

(* ... *)
inp_IN  := TRUE;                      (* Habilita bloco *)
inp_PDT := DT#2018-12-23-12:42:50;    (* Inicializa data e hora desejada *)
my_RTC(IN := inp_IN, PDT := inp_PDT); (* Ativação da instância do bloco RTC *)
out_Q   := my_RTC.Q;                  (* Obtém parâmetro de saída Q do bloco RTC *)
out_CDT := my_RTC.CDT;                (* Obtém parâmetro de saída CDT do bloco RTC *)
(* ... *)