320 likes | 706 Views
PROGRAMACIÓN AVANZADA DE PLC’s. MOV, FUN(21). LA INSTRUCCIÓN MOV REALIZA EL MOVIMIENTO DE UN DATO DE 16 BIT, DESDE UN CANAL A OTRO. EL CONTENIDO DEL CANAL FUENTE S SE TRANSFIERE AL CANAL DESTINO D. LAS ÁREAS DE DATOS UTILIZABLES EN LA TRANSFERENCIA SON :. — S:#, IR, SR, HR, TIM, CNT.
E N D
PROGRAMACIÓN AVANZADA DE PLC’s Soporte Técnico
MOV, FUN(21) • LA INSTRUCCIÓN MOV REALIZA EL MOVIMIENTO DE UN DATO DE 16 BIT, DESDE UN CANAL A OTRO. • EL CONTENIDO DEL CANAL FUENTE S SE TRANSFIERE AL CANAL DESTINO D. • LAS ÁREAS DE DATOS UTILIZABLES EN LA TRANSFERENCIA SON : — S:#, IR, SR, HR, TIM, CNT — D: IR, HR Soporte Técnico
EJEMPLO. EMBOTELLADORA • EL MOTOR M1 ESTARÁ EN MARCHA HASTA QUE LA FOTOCÉLULA F1 DETECTE F1 E1 • CUANDO F1 DETECTE, COMENZARÁ A LLENARSE LA BOTELLA AL ACTIVARSE LA ELECTROVÁLVULA E1 • CUANDO LA BOTELLA PESE LO DESEADO, SE ACTIVARÁ E1 Y DESPUÉS DE 3 SEGUNDOS, LA CINTA SE PONDRÁ EN MARCHA HASTA QUE LA FOTOCÉLULA F1 VUELVA A DETECTAR. M1 4 / 20 mA ENTRADAS F1 : 0000 CÉLULA DA CARGA: ENTRADA ANALÓGICA SALIDAS M1 : 1000 E1 : 1001 Soporte Técnico
SFT, FUN(10) /1 • LA INSTRUCCIÓN SFT REALIZA LA FUNCIÓN DE REGISTRO DE DESPLAZAMIENTO EN SERIE • EL DESPLAZAMIENTO AFECTA A LOS BITS, EN SENTIDO DEL MENOS SIGNIFICATIVO AL MÁS SIGNIFICATIVO • IN= ENTRADA DE DATOS. EL ESTADO DE ESTA ENTRADA SE INTRODUCE EN EL • REGISTRO DE DESPLAZAMIENTO CON EL FLANCO ASCENDENTE DEL IMPULSO • DE RELOJ. • SP= IMPULSO DEL RELOJ. EL FLANCO ASCENDENTE CREA EL DESPLAZAMIENTO • DE LOS DATOS, SI RT 0 • RT= RESET. SU FLANCO ASCENDENTE DETERMINA EL RESET DEL CANAL (O • CANALES) SOBRE LOS QUE SE PRODUCE EL DESPLAZAMIENTO • B , E= PRIMER Y ÚLTIMO CANAL DEL ÁREA DE DATOS SOBRE LA QUE SE • PRODUCE EL DESPLAZAMIENTO Soporte Técnico
SFT, FUN(10) /2 • SI COMO CANALES DE DESPLAZAMIENTO SE UTILIZAN LOS DEL ÁREA HR, EN CASO DE FALLO DE ALIMENTACIÓN LOS DATOS SE MANTIENEN 0000 IN SFT LD 0000 0001 CP LD 0001 05 LD 0002 0002 R SFT (10) 05 06 06 CH 05 0 1 2 3 14 15 DATOS ESTE DATO SE PIERDE 0 1 2 3 CH 06 14 15 Soporte Técnico
EJEMPLO. APLICACIÓN FUNCIÓN SFT • SE TIENE UNA LÍNEA DE SUMINISTRO DE BOTELLAS. • SOBRE LA LÍNEA EXISTEN 10 PUESTOS QUE PUEDEN EN UN MOMENTO DADO CONTENER BOTELLA. • LA PRESENCIA DE BOTELLA EN UN PUESTO SE DETECTA CON UN SENSOR. CON OTRO SENSOR SE DETERMINA SI LA BOTELLA ES BUENA O MALA. • SEGÚN LA NATURALEZA DE CADA BOTELLA ÉSTA ES RECHAZADA O NO. Soporte Técnico
ENTRADAS RESET 0007 PRESENCIA 0001 BUENA/MALA0002 START 0003 STOP 0004 EMERGENCIA 0005 EJEMPLO. APLICACIÓN FUNCIÓN SFT • LA LÍNEA ACCIONADA POR UN MOTOR, ES CONTROLADA CON UN PULSADOR DE START, UNO DE STOP Y UNO DE EMERGENCIA. • ANTE UNA FALTA DE ALIMENTACIÓN, LA MÁQUINA DEBE PODER CONTINUAR CORRECTAMENTE CON EL PROCESO CUANDO LA ALIMENTACIÓN VUELVE, PREVIO START. • UN PULSADOR ACTÚA DE RESET DE LA LÍNEA: (MOTOR OFF, NINGUNA BOTELLA BUENA SOBRE LA LÍNEA). SALIDAS START MOTOR 1000 RECHAZADOR 1001 AUX 1002 CLOCK HR0000 Soporte Técnico
EJEMPLO. APLICACIÓN FUNCIÓN SFT SENSOR DE PRESENCIA EN PUESTO SENSOR “BUENA / MALA” RECHAZADOR 0 1 2 3 4 5 6 7 8 9 1 1 0 0 0 1 0 1 0 1 Soporte Técnico
LS3 IZQ PS1 LS1 LS4 LS2 A DCHA LS5 B EJEMPLO. BRAZO ROBOT START 0000 LS1 0001 LS2 0002 LS3 0003 LS4 0004 LS5 0005 PS1 0006 RTRANSPORTADORA 1000 GIRO DERECHA 1001 GIRO IZQUIERDA 1002 SUBIR 1003 BAJAR 1004 COGER 1005 SOLTAR 1006 0 1 2 3 4 5 6 7 8 CICLO DE TRABAJO Soporte Técnico
BSET D I F RELLENAR BLOQUE, FUN(71) @FUN(71) • FUNCIÓN: TRANSFIERE EL DATO CONTENIDO EN UN CANAL (O CONSTANTE) A UN GRUPO DE CANALES ESPECIFICADOS. D= DATO I= CANAL INICIAL F= CANAL FINAL Soporte Técnico
#2345 #2345 #2345 RELLENAR BLOQUE, FUN(71) @FUN(71) 3200 BSET #2345 DM10 DM20 DM10 #2345 DM11 DM20 Soporte Técnico
MOVER BLOQUE, FUN(70) @FUN(70) • FUNCIÓN: TRANSFIERE DATOS DE VARIOS CANALES CONSECUTIVOS A OTROS CANALES TAMBIÉN CONSECUTIVOS XFER N= Nº CANALES N O= CANAL ORIGEN O D= CANAL DESTINO D Soporte Técnico
MOVER BLOQUE, FUN(70) @FUN(70) 3300 XFER #4 LR00 HR04 LR 0000 3456 HR 0400 3456 LR 0001 5629 HR 0401 5629 LR 0002 5894 HR 0402 5894 LR 0003 8974 HR 0403 8974 Soporte Técnico
MSG N MENSAJE, FUN(46) @FUN(46) • FUNCIÓN: LEE LOS DATOS ASCII CONTENIDOS EN OCHO CANALES (16 CARACTERES) Y LOS VISUALIZA EN EL DYSPLAY DEL DISPOSITIVO DE PROGRAMACIÓN N= CANAL DE COMIENZO NOTA: EL ÚLTIMO CARÁCTER DEBE SER OD Soporte Técnico
MENSAJE DE LONGITUD DOBLE, FUN(47) @FUN(47) • FUNCIÓN: LEE LOS DATOS ASCII CONTENIDOS EN DIECISEIS CANALES (32 CARACTERES) Y LOS VISUALIZA EN EL DYSPLAY DEL DISPOSITIVO DE PROGRAMACIÓN (CONSOLA O INTERFACE RS232) LMSG N= CANAL DE COMIENZO N D= CANAL DE DESTINO D NOTA: EL ÚLTIMO CARÁCTER DEBE SER OD Soporte Técnico
CONTADOR REVERSIBLE, FUN(12) • FUNCIÓN: CONTADOR REVERSIBLE. CUENTA ENTRE CERO Y SV DE ACUERDO CON LOS CAMBIOS EN DOS CONDICIONES DE EJECUCIÓN, LA ENTRADA DE CON TAJE ADELANTE (II) Y LA DE CONTAJE ATRÁS (DI) II CNTR12 N= Nº CANAL DE COMIENZO DI N # (000 A 511) R SV= VALOR SELECCIONADO SV IR, SR, AR, DM, HR, LR, # Soporte Técnico
EJEMPLO. SECUENCIA DE MENSAJE EN CONSOLA DE PROGRAMACIÓN • APLICACIÓN:Utilizar la instrucción MSG para mostrar mensajes en la consola de programación PRO-27. • La instrucción MSG permite mostrar un mensaje de hasta 16 caracteres sobre el display de la consola de programación. En este caso el programa deberá hacer posible el desplazamiento de un mensaje de 32 caracteres por el display, a izquierda o a derecha según voluntad del usuario e incluso poder detenerlo. Soporte Técnico
CANAL HEX ASCII DM10 4F4D OM DM11 524F RO DM12 4E20 N DM13 454C EL DM14 4543 EC DM15 5452 TR DM16 4F4E ON DM17 4943 IC DM18 5320 S DM19 4C45 LE DM20 2053 S DM21 414C AL DM22 5544 UD DM23 4120 A DM24 484F HO DM25 4C41 LA EJEMPLO. SECUENCIA DE MENSAJE EN CONSOLA DE PROGRAMACIÓN • El mensaje estará contenido en los DM’s del 10 al 25 en formato ASCII de la siguiente forma: • ORDEN DE PARADA DE MENSAJE: Entrada 0000. • SENTIDO DE DESPLAZAMIENTO DEL MENSAJE: Entrada 1 • FRECUENCIA DE DESPLAZAMIENTO: Base de tiempo constante. Soporte Técnico
DIRECCIONAMIENTO INDIRECTO • Cuando para un operando se especifica el área dde DM, se puede utilizar una dirección indirecta. • Para diferenciar el direccionamiento de DM indirecto se coloca un • asterisco delante de DM : *DM • Cuando se especifica una dirección indirecta de DM, el canal DM designado contendrá la dirección del canal DM que contiene el dato que se utilizará como operando de la instrucción. • Cuando se utilice direccionamiento indirecto, la dirección del canal deseado debe estar en BCD y debe especificar un canal comprendido en área de DM. Soporte Técnico
DIRECCIONAMIENTO INDIRECTO • Normalmente la variable especificada por una cierta instrucción es tal que la instrucción opera con el dato especificado en la variable especificada. TIM00 DM0011 #0432 DM0011 EN ESTE CASO SV = 432 • El direccionamiento indirecto permite especificar un dato por la dirección de DM donde ése dato está contenido (la dirección es la variable). TIM00 *DM0011 #0432 DM0011 #0432 DM0432 EN ESTE CASO SV = 1547 Soporte Técnico
DIRECCIONAMIENTO INDIRECTO Ejemplo: Canal Contenido DM 0000 4C59 MOV(21) DM 0001 1111 *DM 0001 Dirección indirecta DM 0002 F35A Indica DM 1111. LR 00 DM 1111 5555 5555 movido a LR 00. DM 1112 2506 DM 1113 D541 Si se designa *DM 0001 como primer operando y LR 00 como segundo operando de MOV(21), los contenidos de DM0001 son 1111 y DM 1111 contiene 5555, el valor 5555 será movido a LR 00. Soporte Técnico
DIRECCIONAMIENTO INDIRECTO EJEMPLO ALMACENAR LA TEMPERATURA EN UN HORNO CADA 15 SEG. Y DURANTE 2 HRS., TIEMPO DE DURACIÓN DEL PROCESO. DATOS • Tº ENTRADA ANALÓGICA: CANAL 101 • INICIO DATOS: DM 0001 Soporte Técnico
STC / CLC, FUN 40 / 41 • FUNCIÓN: ESTAS INSTRUCCIONES GESTIONAN EL FLAG DE ACARREO, O FLAG CY. ELFLAG CY SE UTILIZA EN LAS OPERACIONES MATEMÁTICAS, PARA DETECTAR: • EXISTENCIA DE OVERFLOW EN EL RESULTADO DE UNA SUMA • (ADD) • EXISTENCIA DE RESULTADO NEGATIVO EN UNA SUBSTRACCIÓN • (SUB) LD 0000 STC(40) LD NOT 0000 CLC(41) LD 1904 OUT 1000 Soporte Técnico
ADD, FUN(30) /1 • LA INSTRUCCIÓN ADD EJECUTA LA SUMA ENTRE DOS DATOS DE 16 BIT (CANALES Y/O CONSTANTES) EN FORMATO BCD • AL RESULTADO SE LE SUMA EL ACARREO SUMANDO 1 SI CY= ON • LOS PARÁMETROS DE LAS INSTRUCCIONES SON 3: • A1,A2 = SUMANDOS (#, IR, SR, HR, TIM, CNT) • R = RESULTADO (IR, HR) = A1+A2+CY LD 0000 STC(40) ADD(30) A1 HR00 #0001 A2 HR00 R Soporte Técnico
ADD, FUN(30) /2 • EN EL CASO DE ACARREO (CY = 1), LA SUMA DE LOS DOS SUMANDOS HA SUPERADO EL LÍMITE 9999. EL RESULTADO EFECTIVO ES ENTONCES 10000+R • EN EL CASO DE SUMA CON 8 O MÁS CIFRAS BCD, (SUMA COMBINADA) SE DEBERÁ RESETEAR CY SÓLO PARA LA PRIMERA SUMA. • SI EL RESULTADO DE LA OPERACIÓN SUMA ES = 0, ENTONCES EL FLAG EQ = 1 • SI LOS SUMANDOS NO ESTÁN EN FORMATO BCD, LA OPERACIÓN NO SE EJECUTA Y ENTONCES ER = 1 Soporte Técnico
SUB, FUN(31) /1 • LA INSTRUCCIÓN SUB EJECUTA LA SUBSTRACCIÓN DE DOS DATOS DE 16 BIT EN FORMATO BCD • AL RESULTADO SE LE RESTA EL ACARREO O BIEN SE LE SUMA -1 SI CY = ON • LOS PARÁMETROS DE LA INSTRUCCIÓN SON 3: • Mi = MINUENDO (#, IR, SR, HR, TIM, CNT) • Su = SUSTRAENDO (#, IR, SR, HR, TIM, CNT) • R = RESULTADO (IR, HR) = Mi - Su - CY LD 0000 STC(40) SUB(31) Mi #0100 Su 00 05 R Soporte Técnico
DATOS RESULTADO CY EQ Mi > Su R= Mi - Su 0 0 Mi = Su R= 0 0 1 0 Mi < Su R= Mi + (10000-Su) 1 SUB, FUN(31) /2 • SEGÚN LOS VALORES QUE TENGAN Mi Y Su, SE TIENEN LOS SIGUIENTES CASOS: • SI Mi Y Su NO ESTÁN EN EL FORMATO BCD, LA OPERACIÓN NO SE EJECUTA, Y ER = 1 Soporte Técnico
MULTIPLICACIÓN BCD, FUN(32) @FUN(32) • FUNCIÓN: MULTIPLICA EL CONTENIDO DE LOS DATOS ESPECIFICADOS EN LA INSTRUCCIÓN (EN BCD) Y EL RESULTADO SE TRANSFIERE A UN REGISTRO. MUL A, B = CANALES /CONSTANTES A R = REGISTRO RESULTADO B C Soporte Técnico
MULTIPLICACIÓN BCD, FUN(32) @FUN(32) 3300 MUL 10 #0021 DM100 0034 CH 10 X 0021 = 714 DM100= (CH 10) X 21 Soporte Técnico
DIVISIÓN BCD, FUN(33) @FUN(33) • FUNCIÓN: DIVIDE EL CONTENIDO DE LOS DATOS ESPECIFICADOS EN LA INSTRUCCIÓN (EN BCD) Y EL RESULTADO SE TRANSFIERE A DOS REGISTROS (COCIENTE Y RESTO). A = DIVIDENDO DIV B = DIVISOR A R = COCIENTE B R+1 = RESTO C A, B = CANAL / CONSTANTE Soporte Técnico
DIVISIÓN BCD, FUN(33) @FUN(33) 3300 DIV 10 #4 LR10 133 CH 10 (CH 10) = (LR 10) X 4 + LR 11 4 33 LR 10 1 LR 11 Soporte Técnico
EJEMPLO DE PROGRAMACIÓN SUMA DE DATOS DE HASTA 8 DÍGITOS • APLICACIÓN: SE TRATA DE SUMAR DOS DATOS QUE PUEDEN TENER UNA LONGITUD DE HASTA 8 DÍGITOS. • ESTE PROGRAMA PUEDE LLEVARSE A CABO UTILIZANDO DIRECTAMENTE LA INSTRUCCIÓN DE SUMA DE DOBLE LONGITUD PERO LO HAREMOS USANDO LA INSTRUCCIÓN ADD NORMAL. • LOS DATOS A SUMAR SON LOS SIGUIENTES: • DATO A: 4 DÍGITOS MAYORES DM1 4 DÍGITOS MENORES DM0 • DATO B: 4 DÍGITOS MAYORES DM3 4 DÍGITOS MENORES DM2 • EL RESULTADO SE GUARDARÁ EN : • DÍGITO NUM 9 DM6 • 4 DÍGITOS MAYORES DM5 • 4 DÍGITOS MENORES DM4 • El programa debe poder detectar si alguno de los datos A o B no está en formato BCD. Utilizar el CARRY en las instrucciones suma. Soporte Técnico