---
# System prepended metadata

title: Tasca 1
tags: [AR]

---

---
header-includes: |
  \usepackage{natbib}
  \usepackage{longtable,booktabs}
  \usepackage{amsmath,amssymb}
  \usepackage{lmodern}
  \usepackage{minted}
  \usepackage{parskip}
  \usepackage{url}
  \title{Projecte d'automatització i monitoratge - Estació B4 (10.4.52.170)}
  \assignatura{Sistemes Automàtics i Robotitzats}
  \numpract{Projecte d'automatització i monitoratge - Estació B4 (10.4.52.170)}
  \autor{Artur Blaya \& Andreu Villaró}
  \usepackage{fvextra}
  \DefineVerbatimEnvironment{Highlighting}{Verbatim}{breaklines,commandchars=\\\{\}}
---
###### tags: `AR`
# Tasca 1
Observeu la vostra estació de treball feu una descripció dels sensors i actuadors disponibles: funcionament i principi físic.

## Sensors 
Els sensors capacitius reaccionen davant metalls i no-metalls que en aproximar-se a la superfície activa sobrepassen una determinada capacitat. La distància de connexió respecte a un determinat material és tan major com més elevada sigui la seva constant dielèctrica.

La maqueta disposa dels següents dispositius sensorials:

1. Sensors Capacitius Digitals

Proporcionen un senyal digital i permeten determinar nivells lògics del nivell d'aigua en els dipòsits

- Dipòsit Superior, ALT. LT4.1 LT4.2
- Dipòsit Inferior, BAIX. LT4.3 LT4.4 LT4.5
- Dipòsits Estacions B1, B2 i B3. LTx.4 i LTx.5

2. Sensor Analògic de nivell

Permet mesurar el nivell d'aigua en el dipòsit

- Superior ALT, LT4.5

## Actuadors
Electrovàlvula és una vàlvula que s'actua mitjançant l'electricitat. Consta fonamentalment d'un cos, un grup operador amb un nucli mòbil i una bobina o inductor.  

Funciona segons el principi del camp magnètic creat en l'eix d'un bobinat quant a través d'aquest circula una certa intensitat de corrent, creant un camp magnètic; aquest camp magnètic fa desplaçar un pistó mòbil, que és ferromagnètic, i que fa la funció d'obrir i tancar el pas del cos.

1. Motobomba
Una bomba és una màquina hidràulica generadora que transforma l'energia amb la que s'acciona en energia hidràulica de fluid.

- 2 Motobombes P4.1 P4.2

2. Electrovàlvules
Connecten els circuits d'intercanvi d'aigua entre els dipòsits. Totes les electrovàlvules tenen una vàlvula de bypass manual.

- 9 electrovàlvules NT, V4x1 V4x2 x=1..4 connecten T1, T2, T3, T4-Baix
- 1 electrovàlvula V4.1 permet el pas de T4-Alt T4-Baix

\clearpage
# Tasca 2
Definir unes especificacions de **producció normal [^0]** i representar-ho amb un Unifed Modeling Language (UML)

[^0]: Entendrem com a **producció** normal el funcionament que tindrà la màquina en mode automàtic quan aquesta funciona correctament. Sols cal tindre en compte l'arrencada des d'un estat inicial i l'aturada a aquest estat inicial. 

## Funcionament
L'estació B4 regula el nivell d'aigua de dos dipòsits, per tal que aquest segueixi un cicle d'histèresis. El propòsit d'aquest funcionament és plenament demostratiu, per tal de veure com es pot modificar l'estat d'un procés a base de sensors, actuadors i un PLC.  

Quan activem **START**, el dipòsit alt s'omple fins que s'assoleix el nivell alt que ens dóna el sensor capacitatiu LT2. En aquest moment el dipòsit alt deixa d'omplir-se i comença a buidar-se, fins a arribar al nivell baix que ens dóna el sensor LT1. Un cop en aquest punt torna a l'estat d'omplir-se de la mateixa forma que abans i continua realitzant el cicle periòdicament.  

Aquest funcionament es manté fins a prémer **STOP/START**. Independentment de l'estat en què estigui, quan aquest botó es prem, el dipòsit alt passa a buidar-se fins que està completament buit (ho detectem amb el sensor LT5). Després es tanca la vàlvula deixant el sistema en l'estat d'inici.  

## UML
En la figura \ref{uml} es mostra un diagrama del funcionament de l'estació B4.  
 
![Diagrama UML\label{uml}](https://i.imgur.com/xrOiYCy.png){height=400px}

En la figura \ref{esquema}, es mostra l'esquema de regulació de l'estació.

![Esquema regulació d'Estació B4 \label{esquema}](https://i.imgur.com/EPxoVXO.png){height=400px}


## Vàlvules i Sensors
Les vàlvules, els sensors i l'actuador que hem usat són els següents:

* V41 i V41m - Vàlvules Per buidar T4 Alt
* P4.1 - Motobomba
* LT4.2 LT4.1 - Sensors Digitals per mirar nivell T4 Alt
* LT5 - Sensor Digital capacitat màxima nivell T4 Baix

\clearpage
## Estats
### Inici
Es canviarà d'estat quan s'activi ***START***. 

| Dispositiu  | Estat | 
| ----------- | ----- | 
| V41         | 0   | 
| P4.1        | 0   | 
| LT4.1       | 0   | 
| LT4.2       | 0   | 
| LT5         | 1   | 

### Omplint
A l'omplir-se el dipòsit en algun moment el nivell de l'aigua arribarà a LT4.2 i aquest es posarà a 1. Llavors es canviarà a l'estat Buidant.  


| Dispositiu  | Estat     | 
| ----------- | --------- | 
| V41         | 0       | 
| P4.1        | 1       | 
| LT4.1       | 1       | 
| LT4.2       | 0       | 
| LT5         | 0       | 


### Buidant
En buidar-se el dipòsit de dalt de seguida el sensor LT4.2 es posarà a 0. Més tard quan l'aigua baixi fins a LT4.1 aquest també es posarà a 0. En aquest moment es canviarà a l'estat Omplint.  

| Dispositiu  | Estat     | 
| ----------- | --------- | 
| V41         | 1       | 
| P4.1        | 0       | 
| LT4.1       | 1       | 
| LT4.2       | 0       | 
| LT5         | 0       | 

### Stop
S'arriba a aquest estat quan es polsa ***START/STOP*** en qualsevol altre estat, que no sigui l'inicial. En l'estat d'emergència, el motor es tanca i la vàlvula s'obre. Quan LT5 és 1, significarà que el dipòsit alt està completament buit, i es canviarà a l'estat inicial.


| Dispositiu  | Estat     | 
| ----------- | --------- | 
| V41         | 1         | 
| P4.1        | 0         | 
| LT5         | 0         | 

\clearpage
# Tasca 3
Programar-lo i validar el seu funcionament  

Vam descarregar l'[exemple](https://atenea.upc.edu/pluginfile.php/5090533/mod_page/content/6/MaquetaDistribucio_P1.zip?time=1665480226034) de prova i vam seguir les [instruccions](https://atenea.upc.edu/pluginfile.php/5090533/mod_page/content/6/B4_Activitat1.pdf). Seguidament, vam poder comprovar el funcionament de l'estació. 

\ 

![Estació B4](https://i.imgur.com/78j2bZU.png){height=400px}

\clearpage
# Tasca 4
Realitzar l'automatització completa de la màquina. Cal complir amb les següents especificacions:

* Cal disposar de dos modes de funcionament:  
	* Automàtic: funcionament normal  
	* Manual: cal poder activar un o dos dels actuadors de forma independent sempre que no s'estigui en mode automàtic.  
* Cal contemplar una aturada d'emergència: cal pensar com actuar quan es dona una aturada d'emergència en funció de l'estació de treball.  
* Fer el diagrama UML, implementar-ho i validar-ho.  

## Funcionament
Per tal que el nostre sistema disposi també del mode de funcionament manual hem decidit implementar una màquina d'estat per a gestionar el mode de funcionament. D'aquesta manera disposem de 3 màquines d'estat. Una pel mode automàtic, una altra pel manual, i l'última per a gestionar quina de les dues màquines anteriors controla el sistema.  

Per tal de canviar el mode de funcionament s'ha de complir que l'estat que gestiona el sistema estigui en 0 (estat inicial). Llavors es decidirà el mode de funcionament a parir del valor que tingui el selector de la interfície gràfica. L'usuari pot variar aquest valor des de la mateixa interfície.  

Tant en el mode manual, com en el mode automàtic, l'usuari és el que acaba accionant el sistema mitjançant l'ordre START. En el cas del mode automàtic, aquesta ordre està associada a un polsador, mentre que en el mode manual es fa a partir d'una interfície gràfica.  

## UML
En la figura \ref{uml2} es troba l'UML.

![Diagrama UML de la màquina d'estats per a gestionar el mode de funcionament del sistema. \label{uml2}](https://i.imgur.com/ETc0HTv.jpg){height=400px}


## Aturada de emergència i Stop
Quan s'activa el botó d'aturada d'emergència de l'estació (se'n va la llum), el cas del mode manual, tant en el cas del mode manual, com en el mode automàtic, es manté l'estat en el qual es troba cada mode. En el cas que es trobi en el mode automàtic, i l'estat de buidar-se, si "torna la llum" quan tot el dipòsit està buit, la màquina canviarà a l'estat omplint-se.  

Pel que fa a l'esdeveniment STOP, en el cas del mode manual, aquest esdeveniment fa passar a l'estat 0, en el qual no es pot fer res, ni accionar la vàlvula ni encendre el motor. Per poder tornar a usar el mode manual, cal polsar el botó de la interfície START.  

Pel que fa al mode automàtic, quan hi ha l'esdeveniment STOP, l'estat passa a l'estat Stop, sempre que no es trobi en l'estat inicial. En aquest estat s'atura el motor, i s'obre la vàlvula fins que el dipòsit alt està buit. Després passa a l'estat inicial automàticament, i espera l'esdeveniment START per tornar a començar el cicle.  

## Codi
Vam aprofitar l'exemple de l'estació B4, per tal de tenir definits tots els sensors i actuadors. D'aquesta manera vam poder accedir a aquests des del codi. Les declaracions de l'inici del codi, són necessàries per a poder monitorar els sensors/actuadors que no s'utilitzen directament en el codi.  

El codi està dividit en 3 blocs:
* Màquina d'estats que s'encarrega de canviar el mode de funcionament
* Màquina d'estats del mode automàtic. S'encarrega de canviar la variable d'estat d'aquest mode
* Definició del valor de les sortides depenent del mode de funcionament i l'estat

```
PROGRAM _CYCLIC
	(* ACTUALITZACIÓ ENTRADES *)
	Inici:= START;
	ATURA:= NOT(STOP);
	Nivell_alt:=LT42;
	Nivell_baix:=NOT(LT41);
	Alt_Buit:= LT45;
	niv := NIVELL;

	CASE Mode OF
		0:
			(*MODE AUTOMÀTIC*)
			IF (Mode_selector=1 AND ESTAT=0) THEN
				Mode:=1;
			END_IF
		1:
			(*MODE MANUAL*)
			IF (Mode_selector=0 AND ESTAT_manual=0) THEN
				Mode:=0;
			END_IF
	END_CASE

	(*Mode Automàtic*)
	CASE ESTAT OF
		0:
			IF (Mode=0 AND Inici=TRUE) THEN
				ESTAT:=1;
			END_IF
		1:  
			IF (Mode=0 AND (ATURA = TRUE OR Inici=TRUE)) THEN
				ESTAT:= 3;
			ELSIF (Mode=0 AND Nivell_alt =TRUE) THEN
				ESTAT:=2;
			END_IF	
		2:
			IF (Mode=0 AND (ATURA = TRUE OR Inici=TRUE)) THEN
				ESTAT:=3;
			ELSIF (Mode=0 AND Nivell_baix = TRUE) THEN
				ESTAT := 1;
			END_IF
		3:
			IF (Mode=0 AND Alt_Buit = TRUE) THEN
				ESTAT := 0;
			END_IF
	END_CASE			

	IF (Mode = 0 AND ESTAT = 0) THEN
		V41:=0;
		PUMP41:=0;
	ELSIF (Mode = 0 AND ESTAT = 1) THEN
		V41:=0;
		PUMP41:=30000;
	ELSIF (Mode = 0  AND ESTAT = 2 OR ESTAT = 3)  THEN
		V41:=1;
		PUMP41:=0;	
	ELSIF (Mode = 1 AND ESTAT_manual = 0) THEN
		PUMP41:= 0;
	ELSIF (Mode = 1 AND ESTAT_manual = 1) THEN
		PUMP41:= Motor;
		V41:= Valvula;
	END_IF
END_PROGRAM
```
\clearpage
# Tasca 5
Dissenyar un sistema de monitoratge

El monitoratge ha d'incloure una visualització del procés, es mostri l'evolució d'una variable contínua i s'activi una alarma quan hi ha una aturada d'emergència.

En el nostre monitoratge hem inclòs la visualització del valor de les variables internes del programa, com serien el valor de l'Estat (tant en mode manual com automàtic), el valor lògic que donen els sensors (LT4.1 i LT4.2), i el valor del motor (entre 0 i 32768).

En la part esquerra del VISU hi ha tot el que seria relatiu a les variables d'entrada que controla l'usuari, per exemple per canviar de mode de funcionament, o per a donar valors als actuadors en cas que estiguem en el mode manual. I a la part dreta hi ha tot el que serien les variables de sortida del sistema, és a dir, els valors reals que agafen els actuadors i sensors a temps real.

A més a més, hem incorporat un element de visualització que consisteix en un rectangle que està parcialment pintat en funció de l'aigua que hi ha en el dipòsit de dalt (com la càrrega de la bateria d'un dispositiu mòbil). El sensor que ens dona aquesta informació és el sensor analògic LT4.5. D'aquesta manera podem saber en tot moment quina és la quantitat d'aigua que tenim en cada dipòsit i conèixer els valors dels actuadors i dels sensors en tot moment només utilitzant el sistema de monitoratge.