PDF de programación - Entrega 17 - Curso sobre Controladores Lógicos Programables (PLC)

Imágen de pdf Entrega 17 - Curso sobre Controladores Lógicos Programables (PLC)

Entrega 17 - Curso sobre Controladores Lógicos Programables (PLC)gráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 10 de Marzo del 2018)
867 visualizaciones desde el 10 de Marzo del 2018
189,2 KB
12 paginas
Creado hace 14a (18/11/2009)
Curso sobre Controladores Lógicos
Programables (PLC).

Por Ing. Norberto Molinari.

Entrega Nº 17.

Capitulo 4, continuación...

Usando Counters

No se intenta describir la operación o la implementación de ningún contador de alta
velocidad especial, ni manejado por interrupciones que están disponibles en algunos
modelos de controladores. Detalles teniendo en cuenta el uso de estas características
especiales serán encontrados en el manual del hardware del controlador en cuestión.

Counters Estándar

Cada Counter como está implementado en el lenguaje STL puede programarse en
cualquiera de dos formas. El método estándar (a menudo referido como el del counter
incremental) se describirá primero.

Los modelos de controladores que incorporan baterías de respaldo mantienen los
valores de Preselección del Counter, Bits de Estado y Words durante los períodos sin
energía de red. Igualmente con los nuevos equipados con EEPROM/ FLASH ó
NVRAM.

Usando Counters Estándar

Un Counter Estándar es útil para conteo de eventos determinados y llevar luego a cabo una
acción deseada cuando se arribe a la cuenta predefinida.

Los Counters estándar operan de la siguiente forma:

• El valor a ser contado es almacenado en el Counter Preselect (Preselección del

Contador)

• El Counter arranca con lo que:

• Coloca el valor (cero) 0 en la Counter Word (CWn=0)

• Cambia el estado del Counter a activo (Cn=1)

• La cuenta actual puede ser lNCrementada o DECrementada

• Cuando la cuenta actual (CWn) = preselect (CPn) el Estado del Counter (Cn) cambia
a inactivo (Cn=0)

Inicializando el Counter Preselect

Antes que un Counter estándar pueda usarse, el respectivo Counter Preselect debe primero
ser inicializado con un valor correspondiente al número de eventos a ser contado.

Esta inicialización solo necesita ser realizada nuevamente si el valor para actividades de
conteo subsecuentes debe ser cargado. No es necesario cargar de nuevo al Counter
Preselect cada vez que el contador es arrancado.

Counter preselects puede ser cargado con valores absolutos o con el contenido de cualquier
MBO (por Ej. Registro, lnput Word, Flag Word etc.)

Ejemplo:

Inicializando el Counter Preselect con un valor absoluto

IF
THEN

LOAD

TO

I1.0 o cualquier condición deseada ...
V100 cargamos un valor absoluto de 100

Como el número de eventos a contar

CP4 al Counter Preselect 4.

Ejemplo:

Inicializando el Counter Preselects con un valor MBO

IF
THEN
TO

LOAD
CP5

I1.0 o cualquier condición deseada
IW1 lnput Word 1 como el valor de entrada
al Counter Preselect 5

Por medio de la instrucción DEB podríamos usar llaves externas BCD para
establecer la cuenta.

Arrancando un Counter

Arrancar un contador solo requiere de una instrucción SET y especificar que counter debe
arrancarse:

IF
THEN

I1.2 condiciones deseadas

SET C2

activar Counter 2

Siempre que la instrucción Set Cn sea ejecutada, ocurre lo siguiente:

1, La respectiva Counter Word (CWn) es cargada con un cero 0.
2. Cn (Counter Status n = estado del contador) se vuelve activo 1

Si una instrucción para SET un Counter es ejecutada, Y el Counter especificado
está YA activo, el Counter será REARRANCADO y la cuenta actual (en CWn)
será puesta a cero (0).

Consultando el estado de un Counter

Para utilizar contadores de forma útil, es necesario poder determinar cuando la
cuenta preseleccionada ha sido alcanzada.

Conteo de Eventos

Una vez que el counter ha sido activado (SET), la cuenta actual es mantenida
en la respectiva Counter Word, la que puede ser actualizada usando tanto la
instrucción INC CWn como la DEC CWn.

Deteniendo un Counter

Un counter puede ser detenido (desactivado) en cualquier momento con la instrucción
RESET Cn. Cuando la instrucción RESET Cn sea ejecutada el Bit de estado del Counter
(Counter Status Bit) (Cn) sea 0 (cero). El contenido de la Counter Word permanece sin
cambiar.

En Programas o Steps que contienen múltiples Sentencias que serán procesadas en paralelo
(modo barrido), cada vez que la parte condicional de una Sentencia es evaluada como
verdadera, las instrucciones programadas en la parte ejecutiva serán ejecutadas. Esto debe
ser considerado para evitar ejecuciones múltiples descontroladas de instrucciones que
incluyan SET TIMER o INC / DEC Counter Word, SHL, etc.

El lenguaje STL no usa 'disparo por flancos'...las condiciones son evaluadas por
verdaderas cada vez que son procesadas sin importar sus estados previos.

Ejemplos

Counter Estándar

El primer ejemplo se presenta usando un counter estándar en conjunción con la
estructura Step para evitar lNCrementos múltiples descontrolados en los Steps
10 y 15.

Un botón pulsador se usa para comenzar un ciclo de máquina. El ciclo arrancará una
rampa y contará las botellas que pasan por un sensor. Una vez que 25 botellas hayan
pasado el sensor, la rampa es detenida, y un mecanismo posiciona corchos de cierre
en cada botella. Finalmente todos los corchos son presionados en las botellas 2 veces
durante un segundo cada uno,

STEP 1
THEN

STEP 5
IF
THEN

RESET
RESET
RESET
RESET
LOAD
TO
LOAD
TO
LOAD
TO

SET
SET

contador de botellas
contador de pulsadas

Encendido
C0
C1
O1.0 apagar rampa
O1.1 apagar presión de corchos
V25 cuántos para contar
CP0 preselección counter 0
V2
CP2 preselección counter 2
V100 100 x .01s = 1 segundo
TP0 Timer 0 Preselect
Esperar botón de Marcha
I1.0 Botón de Marcha
C0
activar contador
O1.0 arrancar rampa

cuántas pulsadas

JMP TO

50

OTHRW
IF

N

THEN

JMP TO

10

STEP 50

Comenzar contando botellas
I1.1 una botella fue sensada
CW0 incrementar contador de

Botellas
25 botellas ya ?
C0 hemos hecho todo,

entonces...

O1.0 detener rampa
C2

activar contador de
pulsadas
salir lazo de conteo
sino

I1.1 esperar por la última

botella contada, Que se
mueva fuera del sensor
y seguir contando
25 botellas fueron
contadas

O1.1 Presionar los corchos
T2

arrancar Timer de
presionado

CW2 contar este presionado
Timer espera 1 segundo
tiempo finalizado

T2
O1.1 detener el presionando

hecho ?
corchos presionados 2
Veces
volver a Step 5
presionar de nuevo

C2

5
50

STEP 10
IF
THEN

STEP 15
IF

N

INC

THEN

RESET
SET

THEN

SET
SET

INC

STEP 60
IF
THEN

STEP 70
IF

N
RESET

N

THEN
OTHRW

JMP TO
JMP TO

El próximo ejemplo es un contador estándar en una sección de programa tipo paralelo en la
que la estructura del Step no es usada para evitar lNCrementos múltiples e incontrolados
del counter. Por lo tanto se usa una solución alternativa mediante un Flag.

El programa espera por el Botón de Marcha, y entonces cicla un cilindro entre las
posiciones completamente extendida y completamente 100 veces.

Sin el uso del Flag, un programa de barrido lNCrementaría el counter en cada
barrido (scan) del programa más que en cada vez que el cilindro fue
nuevamente extendido.

STEP 1
IF
THEN LOAD
TO OW1

RESET
LOAD
TO

STEP 2
IF

SET

C0

AND
AND
AND N
AND N

inicialización 1 vez solamente

I1.0 Botón de marcha apretado
V0

todas las outputs a apagado

F3.0 borrar Flag 3.0
V100 inicializar timer
CP0 Hacer un contador de ciclo

de 100
arrancar el counter
sección principal de barrido

y el Counter 0 está activo

I1.1 Cilindro retraído
C0
F3.0 para detectar flanco
O1.0 válvula para extender

cilindro apagada

O1.0 comenzar a extender Cilindro
F3.0 perfecto para ver una nueva

extensión

I1.2 cilindro está extendido ,
F3.0 nuevo flanco
CWO contar el ciclo
F3.0 actualizar control de

flancos

O1.0 comenzar retraer cilindro
C0
TO 1 comenzar todo de nuevo

100 cuentas fueron hechas

THEN SET
SET

IF

AND
THEN INC

RESET

RESET
N

IF
THEN JMP

Contadores INCREMENTALES / DECREMENTALES

Además de usar los contadores previamente descriptos (Estándar) el lenguaje STL, a través
del uso de Operandos Multibit, es posible crear counters (contadores) comúnmente
denominados como Up / Down, ARRIBA / ABAJO (increméntales / decrementales) que se
pueden armar con cualquier Operando Multibit tal como la Counter Word, Registros, etc.
A diferencia de Counters estándar, no hay necesidad de inicialización un counter preselect
y no existe Bit dedicado al estado del contador. Por ello tampoco son aplicables las
instrucciones SET / RESET.

Los Steps siguientes son requeridos para usar este tipo de contador:

inicializar el apropiado MBO


• El MBO pude ser lNCrementado o DECrementado
• El MBO puede ser comparado a un valor o a otro MBO

Ejemplo:

Usando un Registro como Counter

En el siguiente ejemplo un proceso es arrancado y corre hasta que 100 partes
de buena calidad son producidas.

STEP 10
IF
THEN

STEP 20

IF

THEN

IF


LOAD
TO
SET

esperar por la señal de Marcha

I1.0 Botón de Marcha
V100 número a producir
R50 Registro 50 es el contador
O1.1 Arrancar la máquina

mirar por cualquier parte
en él área de calidad
(I1-1
listo para verificar
I2.3 ) calidad es buena

DEC R50 1 buena,1 menos para hacer

AND

JMP TO

AND N

THEN

NOP

STEP 30

THEN

OTHRW

STEP 40

THEN

IF

RESET
JMP TO
NOP

IF
N
JMP TO

continuar en Step 30
listo para verificar

30
(I1.1
I2.3 ) calidad bien sensor

perdidos = mal
no cuenta las malas

ver si ya tenemos las 100

(R50
= V0 ) trabajo terminado
O1.1 detener la máquina
10 volver al comienzo
o si no está hecho, seguir

esperar por la última parte
para mover

I1.1 área de calidad limpia
20

seguir corriendo / verificando

Usando Registros

Aquí se explica el concepto de Registro, como se ha implementado en los Controladores
Programables de Festo.

Los controladores Programables de Festo que pueden programarse usando el lenguaje STL
poseen todos Registros de 16 Bit. La cantidad exacta de estos Registros varía de acuerdo al
modelo . Estos Registros son Operandos Multibit y pueden usarse para almacenar números
en el rango de:


0 - 65535 Enteros sin Signo
• +/- 32767 Enteros con signo

Si el modelo de contr
  • Links de descarga
http://lwp-l.com/pdf9394

Comentarios de: Entrega 17 - Curso sobre Controladores Lógicos Programables (PLC) (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad