Facultad de Ciencias UASLP AUTÓMATAS PROGRAMABLES EL RELOJ DE TIEMPO REAL DEL PLC S7-200 Carlos Canto Q . Facultad de Ciencias UASLP AUTÓMATAS PROGRAMABLES EL RELOJ DE TIEMPO REAL OPERACIÓN LEER RELOJ DE TIEMPO REAL READ_RTC • La operación Leer reloj de tiempo real lee la hora y fecha actuales del reloj y carga ambas en un búfer de 8 bytes (que comienza en la dirección T). RTC READ_RTC EN ENO BUFFER “T” T Carlos Canto Q . VB400 aaaa VB401 mm mm VB402 dd dd VB403 hh hh VB404 min min VB405 ssss VB406 0000 VB407 nd nd año mes día hora. min segs Num. de día Facultad de Ciencias UASLP AUTÓMATAS PROGRAMABLES EL RELOJ DE TIEMPO REAL OPERACIÓN AJUSTAR RELOJ DE TIEMPO REAL SET_RTC SET_RTC EN La operación Ajustar reloj de tiempo real escribe en el reloj la hora y fecha actuales que están cargadas en un búfer de 8 bytes (que comienza en la dirección T). ENO T Buffer T RTC Carlos Canto Q SET_RTC SET_RTC VB400 aaaa VB401 mm mm VB402 dd dd VB403 hh hh VB404 min min VB405 ss ss VB406 0000 VB407 nd nd . Facultad de Ciencias UASLP AUTÓMATAS PROGRAMABLES EL RELOJ DE TIEMPO REAL Todos los valores de la fecha y la hora se deben codificar en BCD (p.ej., 16#97 para el año 1997). Utilice los siguientes formatos de datos: Año/mes aamm aa: 0 a 99 mm: 1 a 12 Día/hora ddhh dd: 1 a 31 hh: 0 a 23 Minutos/segundos mmss mm: 0 a 59 ss: 0 a 59 Día de la semana dd: 0 a 7 1 = Domingo 0 = desactiva el día de la semana (permanece 0) El reloj de tiempo real se inicializa con la siguiente fecha y hora tras un corte de alimentación prolongado o una pérdida de memoria: Carlos Canto Q . Fecha: 01-Ene-90 Hora: 00:00:00 Día de la semana: Domingo Facultad de Ciencias UASLP AUTÓMATAS PROGRAMABLES INSTRUCCIONES DE COMPARACIÓN La operación 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 comparación es verdadera. IN1 ==B IN2 Carlos Canto Q . Facultad de Ciencias UASLP AUTÓMATAS PROGRAMABLES INSTRUCCIONES DE CONVERSION BCD-ENTERO-BCD BCD_I EN ENO IN OUT I_BCD EN ENO IN OUT Carlos Canto Q . La operación 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 válido de IN está comprendido entre 0 y 9999 BCD. La operación 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 válido de IN está comprendido entre 0 y 9999 enteros. Facultad de Ciencias UASLP Ejemplo1: AUTÓMATAS PROGRAMABLES Se desea implementar un programa que realice lo siguiente: Al accionarse la entrada I0.0 Si el año es 2005 se activará la salida Q0.0 si estamos en el mes de abril se accionará Q0.1 Si es el día lunes (2), se acciona la salida Q0.2 Si es el día lunes (2), y son las 12:50 se acciona la salida Q0.3. 1) 2) 3) 4) El buffer T VB400 Año VB401 Mes VB402 Día VB403 Hora VB404 Minuto VB405 Segundo VB406 Milisegundo VB407 Día de la semana Network1 I0.0 Leer Reloj READ_RTC EN ENO T VB400 Network 2 Compara año 2004 VB400 Q0.0 >=B 4 Network 3 Compara mes de Abril VB401 Q0.1 >=B 4 Network 4 Compara día 1 VB407 Q0.2 >=B 2 Network 5 Compara día 1 a las 12:50 VB407 >=B 2 VB403 >=B 16#12 VB404 >=B 16#50 Q0.3 Todos los valores de la fecha y hora se deben de codificar en BCD. Carlos Canto Q . Facultad de Ciencias UASLP AUTÓMATAS PROGRAMABLES Eejemplo2: Se desea corregir el año del reloj de tiempo real I2.1 READ_RTC EN VB400 T Carga byte del año al Acumulador 0 MOV_B EN VB400 IN OUT AC0 BUFFER “T” INC_W EN AC0 IN OUT AC0 IN OUT READ_RTC EN VB400 Carlos Canto Q . T VB400 VB401 VB402 VB403 VB404 VB405 VB406 VB407 0404 0505 0202 1010 3030 0202 0000 0404 año 2004 mes mayo día 02 10 hrs. AC0 30 min 20 segs miercoles AC0 0404 +1 Incrementa año +1 0505 Regresa byte de AC0 al buffer MOV_B EN AC0 Pasa el RTC al Buffer que empieza en VB400 RTC VB400 RTC Actualiza ActualizaRTC RTC VB400 VB401 VB402 VB403 VB404 VB405 VB406 VB407 0505 0505 0202 1010 3030 2020 0000 0404 Facultad de Ciencias UASLP Ejemplo3: I2.1 READ_RTC EN T VB400 AUTÓMATAS PROGRAMABLES se requiere que un motor conectado en la salida Q0.0 se prenda todos los domingos del año en curso a las 2 pm, que se mantenga prendido por 35 minutos y después se apague. MOV_B ; Cargar la hora enBCD al AC0 EN VB403 IN AC0 EN IN VB404 EN IN OUT AC0 ; Convertir valor de la hora en BCD a entero (16 bits) y dejar en AC0 BCD_I OUT AC0 MOV_B EN IN AC1 OUT AC1 ; Convertir los minutos de BCD a entero (16 bits) y dejar en AC1 BCD_I OUT AC1 >=B 35 AC1 ; si ya han transcurrido 35 minutos apagar motor M0.1 AC0 VB407 ==B 14 ==B 1 Carlos Canto Q ; Cargar los minutos en BCD a AC1 . Q0.0 M0.1 ; si es domingo y son las 14 horas prender motor en Q0.0 y mantener prendido .