Hola a todos!

Este es un ascensor desde arduino comunicado a través de visual basic, y tengo que hacer un scada en Visual. El ejercicio es el siguiente:

Automatizar un ascensor en un edificio de cuatro plantas. Para ello dispone de los siguientes elementos:
1. Pulsadores de llamada esterior (PE1, PE2 ,PE3 y PE4) para solicitar el ascensor, uno por cada planta.
2. Pulsadores de destino dentro de la cabina (PI1, PI2 ,PI3 y PI4) .
3. Diodos (D1, D2, D3 y D4) para indicar la presencia o ausencia del ascensor, uno por cada planta.
4. Diodos (D5 y D6) para indicar puerta abierta y puerta cerrada

La secuencia de control es la siguiente:
1. Para acceder al ascensor el usuario presiona el pulsador de llamada desde el exterior en la planta en la que se encuentre.
2. Si el ascensor está en la planta desde la que se le llama, se abrirá la puerta para permitir que entren las personas que lo quieran usar.
3. Si el ascensor está en otra planta, sin abrir las puertas, procederá a desplazarse a la planta desde la que se le llama, para una vez en ella, proceder a abrir las puertas y de este modo permitir la entrada de las personas que lo quieran utilizar.
4. Los usuarios una vez dentro de la cabina, podrán seleccionar la planta a la que desean ir siendo posible una única selección (otra versión con varios destinos).
5. Cuando se cierren las puertas, el ascensor procederá a desplazarse hasta la planta seleccionada, abrirá las puertas para dejar salir a las personas que lo deseen, volverá a cerrar sus puertas y
quedará listo para un nuevo uso.
6. Si quedara alguna persona dentro, esta podrá seleccionar una nueva planta una vez que el ascensor a comenzado a abrir sus puertas, para una vez cerradas de nuevo desplazarse hasta el
nuevo destino.
• ALARMA
1. La actuación sobre el pulsador interior (A) indicará que las personas que van dentro de la cabina han detectado una situación anómala o de peligro y por tanto el ascensor se detendrá de inmediato,
esté donde esté.
2. Mientras el ascensor se encuentra en alarma, ninguna orden exterior podrá ser obedecida.
3. Únicamente se sale de la situación de Alarma de Cabina, actuando de nuevo sobre el pulsador "A" o sobre cualquier pulsador de planta ode apertura de puerta. La respuesta del ascensor en este punto será llevar a la cabina a la planta inmediatamente inferior al punto donde se encuentray abrir las puertas"

y el código de Arduino es este:

Código:
// Ascensor
int pe1=0;
int pe2=1;
int pe3=2;
int pe4=3;
int pi1=4;
int pi2=5;
int pi3=6;
int pi4=7;
int d1=8;
int d2=9;
int d3=10;
int d4=11;
int d5=12;
int d6=13;
int A=14;
int m1=15;
int m2=16;
int otras=17;
int cont=0;
int f0=0; //activar alarma
int f1=0; //piso al que queremos ir
int f2=0; // piso donde estamos
int f3=0; //abrir ascensor al llegar al piso
int f4=0; //condiion mismo piso

void setup()
{
pinMode(pe1,INPUT);
pinMode(pe2,INPUT);
pinMode(pe3,INPUT);
pinMode(pe4,INPUT);
pinMode(pi1,INPUT);
pinMode(pi2,INPUT);
pinMode(pi3,INPUT);
pinMode(pi4,INPUT);
pinMode(d1,INPUT);
pinMode(d2,INPUT);
pinMode(d3,INPUT);
pinMode(d4,INPUT);
pinMode(d5,OUTPUT);
pinMode(d6,OUTPUT);
pinMode(A,INPUT);
pinMode(otras,INPUT);
pinMode(m1,OUTPUT);
pinMode(m2,OUTPUT);
f1=1;
digitalWrite(d6,HIGH);

}

void loop()
{
//Activar alarma
if(digitalRead(A==HIGH)&&(cont==0))
{
f0=1;
while(digitalRead(A==LOW))
{
cont=1;
while(cont==5)
{
cont++;
}
}
}
//Desactivara alarma
if((digitalRead(A==HIGH)||digitalRead(otras==HIGH) )&&(cont!=0))
{
f0=0;
}
//Vaciar ascensor despues de alarma
if((f0==0)&&(cont!=0))
{
while(digitalRead(d1==HIGH)||digitalRead(d2==HIGH) ||digitalRead(d3==HIGH)||digitalRead(d4==HIGH))
{
digitalWrite(m2,HIGH);
}
digitalWrite(m2,LOW);
cont=0;
digitalWrite(d6,LOW);
delay(1000); //tiempo para abrir puertas
digitalWrite(d5,HIGH);
delay(10000); // tiempo de espera puertas abiertas
digitalWrite(d5,LOW);
delay(1000); // tiempo para cerrar puertas
digitalWrite(d6,HIGH);
}
///////////////////////////////////////////////////////////Ascensor llamar y ubicacion
//llamar piso 1
if(digitalRead((pe1==HIGH)||digitalRead(pi1==HIGH) )&&(f0==0))
{
f1=1;
if(d1==HIGH)
{
f4=1;
}
}
//llamar piso 2
if(digitalRead((pe2==HIGH)||digitalRead(pi2==HIGH) )&&(f0==0))
{
f1=2;
if(d2==HIGH)
{
f4=1;
}
}
//llamar piso 3
if(digitalRead((pe3==HIGH)||digitalRead(pi3==HIGH) )&&(f0==0))
{
f1=3;
if(d3==HIGH)
{
f4=1;
}
}
//llamar piso 4
if(digitalRead((pe4==HIGH)||digitalRead(pi4==HIGH) )&&(f0==0))
{
f1=4;
if(d4==HIGH)
{
f4=1;
}
}
//ascensor piso 1
if(digitalRead(d1==HIGH))
{
f2=1;
}
//ascensor piso 2
if(digitalRead(d2==HIGH))
{
f2=2;
}
//ascensor piso 3
if(digitalRead(d3==HIGH))
{
f2=3;
}
//ascensor piso 4
if(digitalRead(d4==HIGH))
{
f2=4;
}
//subir y bajar
while((f0==1)||(f2==f3))
{
//subir
if(f1>f2)
{
digitalWrite(m1,HIGH);
f3=1;
}
//bajar
if(f1<f2)
{
digitalWrite(m2,HIGH);
f3=1;
}
}
//parar motores
digitalWrite(m1,LOW);
digitalWrite(m2,LOW);
if((f2==f3)&&((f3==HIGH)||(f4==HIGH)))
{
digitalWrite(d6,LOW);
delay(1000); //tiempo para abrir puertas
digitalWrite(d5,HIGH);
delay(10000); // tiempo de espera puertas abiertas
digitalWrite(d5,LOW);
delay(1000); // tiempo para cerrar puertas
digitalWrite(d6,HIGH);
f3=0;
f4=0;
}
}
y también pongo como tendría que ser el Scada mas o menos. Tengo dudas a la hora de asignar los datos en Visual, ya que estoy comenzando, y todo lo que he buscado son Visual, sin comunicaciones en arduino...

Gracias a todos por vuestra paciencia y compresión a la hora de ayudar a personas como nosotros.

Un abrazo