Вы находитесь на странице: 1из 5

Daro Orive, Federico Prez, Fabin Lpez Curso 08-09

Pgina 1 de 5
P Pr r c ct ti ic ca a 8 8
B Bl lo oq qu ue e f fu un nc ci io on na al l c co on n p pa ar r m me et tr ro os s d de e E E/ /S S
1 BUFFER CIRCULAR
Se trata de realizar un mdulo de funcin (FB) con parmetros de entrada
y salida que tenga la funcionalidad de un buffer circular.
Productor
Consumidor
Buffer
circular
Escribe
Lee
Indi ce escri tura: 4
2
1
3
0
15
14
4
5
6 7
8
9
10
11
12
13
Indi ce lectura: 10
Productor
Consumidor
Buffer
circular
Escribe
Lee
Indi ce escri tura: 4 Indi ce escri tura: 4
2
1
3
0
15
14
4
5
6 7
8
9
10
11
12
13
Indi ce lectura: 10 Indi ce lectura: 10

El funcionamiento del buffer es el siguiente:
En el buffer se escriben datos que posteriormente sern ledos.
El acceso al buffer se controla mediante dos punteros:
o Cada vez que se escribe un dato en el buffer se incrementa el
puntero de escritura
o Cada vez que se lee un dato del buffer se incrementa el
puntero de lectura
Los datos se leen en el mismo orden en que se escriben (FIFO)
No se puede leer cuando el buffer est vaco
No se puede escribir cuando el buffer est lleno
Automatizacin de Procesos Industriales Prctica 8
Daro Orive, Federico Prez, Fabin Lpez Curso 08-09
Pgina 2 de 5
1.1 Descri pci n de l a i mpl ement aci n del buf f er

La implementacin del buffer
circular se realizar en un mdulo de
datos en el que la unidad de tipo de
datos es WORD.
En las tres primeras posiciones
se guardar la siguiente informacin:
N Elementos
Puntero lectura
Puntero escritura
DW0
DBD2
DBD6
DW10
...
...
...
M

x
i
m
o

t
a
m
a

o

d
e

b
u
f
f
e
r
...
...
D
a
t
o
s
WORD
N Elementos
Puntero lectura
Puntero escritura
DW0
DBD2
DBD6
DW10
...
...
...
M

x
i
m
o

t
a
m
a

o

d
e

b
u
f
f
e
r
...
...
D
a
t
o
s
N Elementos
Puntero lectura
Puntero escritura
DW0
DBD2
DBD6
DW10
...
...
...
M

x
i
m
o

t
a
m
a

o

d
e

b
u
f
f
e
r
...
...
D
a
t
o
s
WORD

Nmero de elementos existentes en el buffer (que no se han ledo)
Puntero para la operacin de lectura
Puntero para la operacin de escritura
N Elementos
Puntero lectura
Puntero escritura
D
a
t
o
s
Escritura
Lectura WORD
WORD
WORD
N Elementos
Puntero lectura
Puntero escritura
D
a
t
o
s
Escritura
Lectura WORD
WORD
WORD


1.2 Descri pci n del f unci onami ent o

Cuando se activa la entrada Reset, el buffer pasa a estar vaci, es
decir, se inicializan las tres primeras posiciones del buffer:
Nmero de elementos: 0
Puntero de lectura: P#10.0 (primera posicin de los datos en el
buffer: P#10.0 = DW#16#0050)
Puntero de escritura: P#10.0 (primera posicin de los datos en el
buffer: P#10.0 = DW#16#0050)
Cuando se activa la entrada Entrada, despus de comprobar que el
buffer no est lleno, el contenido del Word de entradas Val_In se escribe en
Automatizacin de Procesos Industriales Prctica 8
Daro Orive, Federico Prez, Fabin Lpez Curso 08-09
Pgina 3 de 5
la posicin del buffer indicada por el puntero de escritura, y se incrementa el
puntero de escritura
Cuando se activa la entrada Salida, despus de comprobar que el buffer
no est vaco, el contenido de la posicin relativa del buffer indicado por el
puntero de lectura se copia en la Word de salida Val_out, y se incrementa
el puntero de lectura.

1.3 Parmet ros de E/S del mdul o FBD

Declaracin Nombre Tipo Comentario
in Entrada BOOL Seal para introducir un dato (flanco positivo)
in Salida BOOL Seal para sacar un dato (flanco positivo)
in Reset BOOL Resetea el buffer (nivel)
in Val_In WORD Dato de entrada al buffer (se escribe en el buffer)
in DB_Buffer BLOCK_DB DB en el se realiza el buffer
in Max_Buffer INT Tamao mximo del buffer (en word)
out Buffer_Lleno BOOL Seal de buffer lleno (1 indica lleno)
out Buffer_Vacio BOOL Seal de buffer vaco (1 indica vaco)
out Val_Out WORD Dato de salida del buffer (se lee del buffer)
Declaracin Nombre Tipo Comentario
in Entrada BOOL Seal para introducir un dato (flanco positivo)
in Salida BOOL Seal para sacar un dato (flanco positivo)
in Reset BOOL Resetea el buffer (nivel)
in Val_In WORD Dato de entrada al buffer (se escribe en el buffer)
in DB_Buffer BLOCK_DB DB en el se realiza el buffer
in Max_Buffer INT Tamao mximo del buffer (en word)
out Buffer_Lleno BOOL Seal de buffer lleno (1 indica lleno)
out Buffer_Vacio BOOL Seal de buffer vaco (1 indica vaco)
out Val_Out WORD Dato de salida del buffer (se lee del buffer)


1.4 Mdul o de dat os

Crear un mdulo de datos global, en el que se pueda implementar un
buffer circular de cmo mximo 15 datos de tipo Word. La inicializacin de las
tres primeras posiciones ser, tal como se ve en la figura:

Automatizacin de Procesos Industriales Prctica 8
Daro Orive, Federico Prez, Fabin Lpez Curso 08-09
Pgina 4 de 5
1.5 Rel aci n de ent radas y sal i das

Una vez realizado el FB, realizar una instancia de dicho mdulo para
crear un buffer de 10 registros en el DB 10. Utilizar la siguiente relacin de
parmetros actuales en la llamada:
Parmetro formal Operando actual Comentario
Entrada I 126.0 Seal de introduccin de un dato
Salida I 126.1 Seal de salida de un dato
Reset I 126.2 Resetear el buffer
Val_In IW 124 Dato para escribir en el buffer
DB_Buffer DB 10 Utilizar para el buffer el DB 10
Max_Buffer 10 Tamao del buffer 10 words
Buffer_Lleno Q 124.0 Indicador de buffer lleno
Buffer_Vaco Q 124.1 Indicador de buffer vaco
Val_Out QW 124 Dato ledo del buffer

1.6 Desarrol l o de l a prct i ca

1 Crear el programa de control del buffer circular y probarlo en el equipo de
prcticas utilizando las E/S del equipo.

Visualizar el contenido del Mdulo de datos que implementa el buffer.

Directamente:




Automatizacin de Procesos Industriales Prctica 8
Daro Orive, Federico Prez, Fabin Lpez Curso 08-09
Pgina 5 de 5
Creado una tabla de variables:



2 Probar el programa desarrollado utilizando PLCSim.

Вам также может понравиться