Yo tambien soy un "dominguero"!! Simplemente me pongo como usuario de una caja negra, y que pediria para poder hacer la mayoria de las cosas. Por ejemplo, para pasar de Grafcet a programacion, con tener un if, operaciones logicas y variables, no necesito mas (para cosas normales).
Ej:
state=(state==1 && Input1) ? 2 : state; //Si estado=1 y Input1=ON, entonces estado=2, si no es asi, no hago nada.
state=(state==2 && !Input1) ? 1 : state; //Si estado=2 u Input1=OFF, entonces estado=1, si no es asi, no hago nada.
....
output1=(state==1) ? 1:0; //Si estado=1, entonces output1=ON, si no output1=OFF
Pero claro, esto ya es cosa de cada uno.... Yo he hecho cosas asi con ECU's comerciales para procesar canales periodicos en "tiempo real" en que solo te dejaban 5 variables por canal y una funcion del estilo if (se llamaba choose). Lo importante es saber aprender a "pensar", que es lo importante/dificil de transmitir a los alumnos, no??
Simplemente hay que prohibir la funcion delay!!! je,je,je
Lo decia porque cuanto mejor-sofisticado sea tu PLC, mas dificil sera para los alumnos pasar a Arduino dejando fuera tu "corePLC". A parte de esto, es un proyecto muy bonito!!

Nota.- ni enyes ni acentos