Buenos dias, estoy haciendo un pequeño automatismo de control de 2 variadores de frecuencia comandado por 3 pulsadores START STOP y una velocidad de alistamiento lenta
los 2 variadores de frec comandan cintas transportadoras donde circula material que debe ser contado.
tengo las 2 rutinas de control E/S y de conteo, pero al integrarlas no me doy cuenta que no esta funcionando.
Solcito por favor orientacion, estoy haciendo algo mal y no logro darme cuenta
Porque andan en forma separada y al unificar el codigo no funciona
Muchas Gracias, Diego Use code tags to format code for the forum
Se nota que estas muy influencia por los PLCs.
El tipo de variables que usas es simple conversión de Ladder a un C dentro de lo posible.
Y si quieres hacer algo olvida de usar esto
delay(4000);;digitalWrite(Q4,LOW);
ademas de los errores cometidos como doble ;;
No uses delay(). ve a documentación y lee sobre máquina de estados y el uso de millis().
Eso ultimo debe ser
delay(4000);
digitalWrite(Q4,LOW);
Intenta ilustrarnos para poder ayudarte informando que son las entradas I1 a In, que son las salidas Q1 a Qn etc.
Ponle nombres según lo que esten controlando o el sensor que sean.
De ese modo tienes un código mas ilustrativo.
Si analizas el código veras que este while bloquea el programa hasta que pulsas el botón I4, por lo tanto nunca realizará el otro código, a no ser que pulses el botón.
Te recomiendo que leas el tutorial que hice para leer botones Como NO leer un botón y como SI debemos hacerlo. En tu caso y viendo que vienes del mundo del PLC, en vez de APRETANDOLO o SOLTANDOLO habría que hablar de flanco ascendente o flanco descendente de la entrada.
Tienes que quitarte lo aprendido con PLC (tanto victor como yo sabemos del tema) y comenzar a pensar de manera diferente.
Ahora te pondré un link donde un proceso de PLC fue transformado en otro realizado con Arduino.
Es algo que @victorjam hizo para una forera.
Te vas a abrumar pero quiero que veas cómo un proceso de PLC se transforma en una máquina de estados donde no existen los delays (eso elimínalo de tu repertorio, ya mismo).
Si logras esa conversión en tu mente, entenderás este mundo y verás la similitud con el mundo del PLC:
Tómatelo con calma.
Hay muchos ejemplos mas simples, este es complejo y más aún porque la persona es anciosa en su accionar y genera muchas confusiones para poder entenderla y hacerse entender.
Muchas gracias, desgraciadamente no tengo el nivel para seguir ese proyecto. Si sabes de otro ejemplo de maquinas de estado mas basico para aprender a caminar, te agradecere me guies al link.
I-1 pulsador START arranca el VFD a veloc. nominal
I-2 pulsador STOP
I-3 pulsador Alistamiento ( 1/10 de la velocidad de cinta nominal) programada en el VFD
I-4 sensor fotoelectrico NPN/PNP simulado con un pulsador manual para las pruebas
Q-1 salida a rele marcha VFD
Q-3 salida a rele marcga VFD a 1/10 velocidad nominal
Q-4 buzzer acustico
Aca tienes otro ejemplo, que no se si respondí bien pero al menos te ubica en lo que es una conversión de un código lineal como el tuyo a otro con maquina de estados.
Por lo que veo en lo que describes en el post#6
El problema es relativamente simple.
pin 2 => pulsador START a velocidad nominal o VNom
pin 3 => pulsador STOP
pin 4 => pulsador Alistamiento a 1/10 VNom
pin 6 => sensor fotoelectrico.