Aunque supongo que ya lo conocereis os pongo un proyecto de PLC con un 16f648.
http://host.nigde.edu.tr/muzam/UZAM_PLC_with_PIC16F648A.htmYo tambien tengo interes en diseñar uno del tipo Simatic-200 o 300 de Siemens tampoco me gustan sus lenguages de programacion sobre todo FUP y KOP, el SCL un poco mas y el AWL el que mas, aunque es poco versatil, para mi.
Mi idea es hacerlo basado en un 16f887 (8KB, 36 I/O, 8Mz....) este seria para empezar, de entrenamiento digamos.
Con tres reg. de desplazamiento hacer 24 entradas (todas optoacopladas al igual que las salidas) que se controlarian con 6 pines (clock y datos) 5 entradas analogicas (este PIC lleva 14) dos reg. de desplazamiento con strobe para 8 salidas digitales ( optoacopladas y con salida a transistor, IGBT, MOSFET...) controladas por 5 pines, 2 de clock dos de datos y una para el strobe comun para los dos reg. y un PIC 12f617 (6 I/O, 2KB,)para 4 salidas analogicas, para realizar el PWM para sacar 0-10V.Esto seria lo que lleva mas o menos un 300 pequeño de Siemens.
Decir que la CPU 314 en la que me estoy basando lleva una targeta de 128KB adicional.
La programacion, es donde tengo mas dudas, se podria hacer con macros que se traducirian al lenguage ensamblador de Microchip. Atmel, Freescale etc. Tambien se podrian programar directamente en C y en BASIC, tal y como hacen los de Siemens con el SCL, este tambien es de alto nivel pero basado en PASCAL.
Con las fuentes hay que tener mucho cuidado por las cargas inductivas, ambiente con ruido etc, yo aqui me decantaria por fuentes convencionales, con trafo, puente, una buena armadura de condensadores y bobina para filtrar todo, seria una a 24V 2A y la otra a 5 o 3.3V.
Despues esta todo el tema de comunicaciones, profibus, modbus, hart, etc, aqui hay que cumplir con los protocolos establecidos (nos va a tocar estudiar un poco jejej)
Bueno ya me direis que os parece, espero que le saqueis defectos que tendra muchos.
Saludos