Pesquisar perguntas frequentes
Como fazer a leitura e escrita no RTC do M340 e M580
As variáveis %SW50 a %SW53 contém os valores de RTC do M340 e M580. Segue abaixo exemplo de código em texto estruturado para leitura e escrita do RTC no M340 e M580:
(*Inicio do código*)
(*------------------------------------------------------------------------------------*)
%S50:=UNLOCK;
(*------------------------------------------------------------------------------------*)
(*Fim do codigo*)
Criar as variáveis:
RTC_DIA -> INT
RTC_MES -> INT
RTC_ANO -> INT
RTC_HORA -> INT
RTC_MINUTO -> INT
RTC_SEGUNDO -> INT
UNLOCK -> BOOL
Quando UNLOCK = 0, o valores são lidos do RTC e copiados para RTC_DIA, RTC_MES, etc...
Quando UNLOCK =1, os valores de RTC_DIA, RTC_MES, etc, deixam de ser atualizados. Neste momento é possivel inserir os novos valores
Quando UNLOCK muda de 1 para 0, o RTC assume os novos valores e continua a contagem (desde que os novos dados sejam válidos)
(*Inicio do código*)
(*------------------------------------------------------------------------------------*)
(*Leitura dos valores do RTC)
IF UNLOCK = 0 THEN
IF UNLOCK = 0 THEN
RTC_DIA:=BCD_TO_INT(%SW52 AND 16#00FF);
RTC_MES:=BCD_TO_INT(SHR(%SW52,8));
RTC_ANO:=BCD_TO_INT(%SW53);
RTC_HORA:=BCD_TO_INT(SHR(%SW51,8));
RTC_MINUTO:=BCD_TO_INT(%SW51 AND 16#00FF);
RTC_SEGUNDO:=BCD_TO_INT(SHR(%SW50,8));
END_IF;
(*Escrita dos valores no RTC*)
IF UNLOCK = 1 THEN
%SW52:=(SHL(INT_TO_BCD(RTC_MES),8))+ INT_TO_BCD(RTC_DIA);
%SW53:=INT_TO_BCD(RTC_ANO);
%SW51:=(SHL(INT_TO_BCD(RTC_HORA),8))+ INT_TO_BCD(RTC_MINUTO);
%SW50:=(SHL(INT_TO_BCD(RTC_SEGUNDO),8));
END_IF;
%S50:=UNLOCK;
(*------------------------------------------------------------------------------------*)
(*Fim do codigo*)
Criar as variáveis:
RTC_DIA -> INT
RTC_MES -> INT
RTC_ANO -> INT
RTC_HORA -> INT
RTC_MINUTO -> INT
RTC_SEGUNDO -> INT
UNLOCK -> BOOL
Quando UNLOCK = 0, o valores são lidos do RTC e copiados para RTC_DIA, RTC_MES, etc...
Quando UNLOCK =1, os valores de RTC_DIA, RTC_MES, etc, deixam de ser atualizados. Neste momento é possivel inserir os novos valores
Quando UNLOCK muda de 1 para 0, o RTC assume os novos valores e continua a contagem (desde que os novos dados sejam válidos)