AUTMATAS PROGRAMABLES Facultad de Ciencias UASLP Carlos Canto Q. La operacin Leer reloj de tiempo real lee la hora y fecha actuales del reloj y carga ambas en un bfer de 8 bytes (que comienza en la direccin T). READ_RTC EN T ENO OPERACIN LEER RELOJ DE TIEMPO REAL READ_RTC EL RELOJ DE TIEMPO REAL Carlos Canto Q. AUTMATAS PROGRAMABLES Facultad de Ciencias UASLP BUFFER T RTC aa aa mm mm dd dd hh hh min min ss ss 00 00 nd nd VB400 VB401 VB402 VB403 VB404 VB405 VB406 VB407 ao da hora. min segs mes Num. de da SET_RTC EN T ENO OPERACIN AJUSTAR RELOJ DE TIEMPO REAL SET_RTC La operacin Ajustar reloj de tiempo real escribe en el reloj la hora y fecha actuales que estn cargadas en un bfer de 8 bytes (que comienza en la direccin T). EL RELOJ DE TIEMPO REAL Carlos Canto Q. AUTMATAS PROGRAMABLES Facultad de Ciencias UASLP aa aa mm mm dd dd hh hh min min ss ss 00 00 nd nd VB400 VB401 VB402 VB403 VB404 VB405 VB406 VB407 RTC SET_RTC SET_RTC Buffer T AUTMATAS PROGRAMABLES Facultad de Ciencias UASLP Carlos Canto Q. El reloj de tiempo real se inicializa con la siguiente fecha y hora tras un corte de alimentacin prolongado o una prdida de memoria: Fecha: 01-Ene-90 Hora: 00:00:00 Da de la semana: Domingo Todos los valores de la fecha y la hora se deben codificar en BCD (p.ej., 16#97 para el ao 1997). Utilice los siguientes formatos de datos: Ao/mes aamm aa: 0 a 99 mm: 1 a 12 Da/hora ddhh dd: 1 a 31 hh: 0 a 23 Minutos/segundos mmss mm: 0 a 59 ss: 0 a 59 Da de la semana dd: 0 a 7 1 = Domingo 0 = desactiva el da de la semana (permanece 0) EL RELOJ DE TIEMPO REAL La operacin Comparar byte se utiliza para comparar dos valores: IN1 e IN2. Las comparaciones incluyen: IN1 = IN2, IN1 >= IN2, IN1 <= IN2, IN1 > IN2, IN1 < IN2, o IN1 <> IN2. Las comparaciones de bytes no llevan signo.En KOP, el contacto se activa si la comparacin es verdadera. IN1 IN2 = = B INSTRUCCIONES DE COMPARACIN Carlos Canto Q. AUTMATAS PROGRAMABLES Facultad de Ciencias UASLP La operacin Convertir de BCD a entero convierte el valor BCD de entrada (IN) en un valor de entero y carga el resultado en la variable indicada por OUT. El margen vlido de IN est comprendido entre 0 y 9999 BCD. BCD_I EN IN ENO OUT I_BCD EN IN ENO OUT INSTRUCCIONES DE CONVERSION BCD-ENTERO-BCD Carlos Canto Q. AUTMATAS PROGRAMABLES Facultad de Ciencias UASLP La operacin Convertir de entero a BCD convierte el valor entero de entrada (IN) en un valor BCD y carga el resultado en la variable indicada por OUT. El margen vlido de IN est comprendido entre 0 y 9999 enteros. Da de la semana VB407 Milisegundo VB406 Segundo VB405 Minuto VB404 Hora VB403 Da VB402 Mes VB401 Ao VB400 Al accionarse la entrada I0.0 1) Si el ao es 2005 se activar la salida Q0.0 2) si estamos en el mes de abril se accionar Q0.1 3) Si es el da lunes (2), se acciona la salida Q0.2 4) Si es el da lunes (2), y son las 12:50 se acciona la salida Q0.3. El buffer T Todos los valores de la fecha y hora se deben de codificar en BCD. READ_RTC EN ENO T VB400 I0.0 Leer Reloj VB400 >=B 4 VB407 >=B 2 VB401 >=B 4 VB407 >=B 2 VB403 >=B 16#12 VB404 >=B 16#50 Compara ao 2004 Compara mes de Abril Compara da 1 Compara da 1 a las 12:50 Network1 Network 2 Network 3 Network 4 Network 5 Q0.0 Q0.1 Q0.2 Q0.3 Carlos Canto Q. AUTMATAS PROGRAMABLES Facultad de Ciencias UASLP Ejemplo1: Se desea implementar un programa que realice lo siguiente: Eejemplo2: Se desea corregir el ao del reloj de tiempo real RTC Actualiza RTC Actualiza RTC mes mayo BUFFER T RTC 04 04 05 05 02 02 10 10 30 30 02 02 00 00 04 04 VB400 VB401 VB402 VB403 VB404 VB405 VB406 VB407 ao 2004 da 02 10 hrs. 30 min 20 segs miercoles 05 05 +1 +1 AC0 Incrementa ao 05 05 05 05 02 02 10 10 30 30 20 20 00 00 04 04 VB400 VB401 VB402 VB403 VB404 VB405 VB406 VB407 Regresa byte de AC0 al buffer 04 04 AC0 Carga byte del ao al Acumulador 0 Pasa el RTC al Buffer que empieza en VB400 READ_RTC EN T VB400 MOV_B EN IN OUT VB400 AC0 INC_W EN IN OUT AC0 AC0 MOV_B EN IN OUT VB400 AC0 READ_RTC EN T VB400 I2.1 Carlos Canto Q. AUTMATAS PROGRAMABLES Facultad de Ciencias UASLP se requiere que un motor conectado en la salida Q0.0 se prenda todos los domingos del ao en curso a las 2 pm, que se mantenga prendido por 35 minutos y despus se apague. AUTMATAS PROGRAMABLES Facultad de Ciencias UASLP Carlos Canto Q. READ_RTC EN T VB400 MOV_B EN IN OUT BCD_I EN IN OUT MOV_B EN IN OUT BCD_I EN IN AC1 VB403 AC0 AC0 AC0 VB404 I2.1 AC1 AC1 OUT AC0 14 ==B ==B VB407 1 M0.1 Q0.0 35 >=B M0.1 AC1 ; Cargar la hora enBCD al AC0 ; Convertir valor de la hora en BCD a entero (16 bits) y dejar en AC0 ; Cargar los minutos en BCD a AC1 ; Convertir los minutos de BCD a entero (16 bits) y dejar en AC1 ; si es domingo y son las 14 horas prender motor en Q0.0 y mantener prendido . ; si ya han transcurrido 35 minutos apagar motor Ejemplo3: