{"id":7721,"date":"2012-01-27T14:57:07","date_gmt":"2012-01-27T13:57:07","guid":{"rendered":"http:\/\/www.pesadillo.com\/pesadillo\/?p=7721"},"modified":"2012-10-18T15:28:14","modified_gmt":"2012-10-18T14:28:14","slug":"plc-con-pic-16f84","status":"publish","type":"post","link":"https:\/\/www.pesadillo.com\/pesadillo\/?p=7721","title":{"rendered":"PLC CON PIC 16F84"},"content":{"rendered":"<p style=\"text-align: center;\"><a href=\"http:\/\/www.pesadillo.com\/pesadillo\/wp-content\/uploads\/2012\/10\/plc21.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter  wp-image-7727\" title=\"plc2[1]\" src=\"http:\/\/www.pesadillo.com\/pesadillo\/wp-content\/uploads\/2012\/10\/plc21.jpg\" alt=\"\" width=\"619\" height=\"323\" srcset=\"https:\/\/www.pesadillo.com\/pesadillo\/wp-content\/uploads\/2012\/10\/plc21.jpg 1032w, https:\/\/www.pesadillo.com\/pesadillo\/wp-content\/uploads\/2012\/10\/plc21-300x156.jpg 300w, https:\/\/www.pesadillo.com\/pesadillo\/wp-content\/uploads\/2012\/10\/plc21-1024x533.jpg 1024w\" sizes=\"auto, (max-width: 619px) 100vw, 619px\" \/><\/a><\/p>\n<p>Despu\u00e9s de varios a\u00f1os trabajando con aut\u00f3matas comerciales de diferentes fabricantes\u00a0como OMRON, SIEMENS, EBERLY y BOSCH. Decid\u00ed en mi tiempo libre dise\u00f1ar un\u00a0aut\u00f3mata hecho a medida. La idea original tendr\u00eda que cumplir las siguientes premisas:<\/p>\n<p>&#8211; Lenguaje de programaci\u00f3n compatible con el est\u00e1ndar y soportar todo tipo de\u00a0instrucciones, contadores y temporizadores.<br \/>\n&#8211; La memoria del PLC tendr\u00eda que ser no vol\u00e1til para no perder el programa por un\u00a0corte de tensi\u00f3n.<br \/>\n&#8211; La posibilidad del volcado de los programas desde un P.C a poder ser en un<br \/>\nentorno Windows<br \/>\n&#8211; Los componentes del hardware han de ser baratos y f\u00e1ciles de localizar.<br \/>\n&#8211; El numero de entradas y salidas, en un principio 8 E\/S ampliable en el futuro.<br \/>\n&#8211; Alimentaci\u00f3n a 220 V AC o 12V DC de una bater\u00eda.<br \/>\nEl primer paso fue dise\u00f1ar el sistema operativo, el lenguaje de programaci\u00f3n tenia que ser\u00a0sencillo y programar directamente en ensamblador no era una soluci\u00f3n. Despu\u00e9s de algunas<br \/>\npruebas usando un procesador 80C535 y trabajando en ensamblador, vi la posibilidad de<br \/>\nusar las funciones que ofrecen los compiladores para incluir etiquetas y macros en el c\u00f3digo<br \/>\nmaquina del procesador.<br \/>\nLa soluci\u00f3n fue usar \u00abMACROS\u00bb para convertir las instrucciones en ensamblador en\u00a0instrucciones est\u00e1ndar usadas por los aut\u00f3matas comerciales.<\/p>\n<p>De esta manera la lectura por ejemplo de una entrada del aut\u00f3mata se har\u00eda con la\u00a0instrucci\u00f3n IN A,B donde \u00bb IN \u00bb seria el c\u00f3digo de la instrucci\u00f3n, el campo \u00bb A \u00bb<br \/>\nla direcci\u00f3n de la tarjeta de entradas y en campo \u00bb B \u00bb el numero de la entrada f\u00edsica<br \/>\nde la tarjeta \u00bb A \u00bb que deseamos leer. Activar una salida tendr\u00e1 la siguiente sintaxis: OUT A,B<br \/>\nUn temporizador : TIM A,B<br \/>\nUn contador : CNT A,B<br \/>\nY el resto de las instrucciones como: AND , AND_NOT, OR, OR_NOT, LD, LD_NOT,<br \/>\nMOV, SET, RESET etc., siguen la misma l\u00ednea.<\/p>\n<p>La ventaja del uso de las macros es que nos permite llamar a la instrucci\u00f3n con el nombre\u00a0que mas nos guste. El uso de etiquetas nos permite hacer aun mas claros los programas del\u00a0aut\u00f3mata al poder sustituir las direcciones hexadecimales de las entradas\/salidas por un texto\u00a0mas \u00a0descriptivo :<\/p>\n<p>LD Tarjeta_E0,Pulsador_Marcha<br \/>\nOUT Tarjeta_S0,Marcha_motor<\/p>\n<p>Una vez depurado el sistema operativo, prob\u00e9 diferentes formulas para almacenar\u00a0los programas en memoria. El uso de EPROM no era viable ya que habr\u00eda que borrarla\u00a0previamente cada vez que se hiciese una modificaci\u00f3n.<\/p>\n<p>El uso de RAM est\u00e1tica no vol\u00e1til no resulto estable ya que con los cortes de tensi\u00f3n se<br \/>\ncorromp\u00edan los datos. La opci\u00f3n final fue buscar un microprocesador que incluyese<br \/>\nmemoria EEPROM para el sistema operativo y programa PLC y RAM para los datos\u00a0temporales. Los procesadores que mejor se ajustan a estos requerimientos son:<\/p>\n<p>ATMEL 89C4024 y los PIC 16F84 de MICROCHIP .<\/p>\n<p>Las diferencias entre los procesadores son las siguientes:<\/p>\n<p>La familia ATMEL ofrece procesadores con 4K de memoria EEPROM y 128 bits de RAM\u00a0con dos puertos E\/S, los c\u00f3digos maquina son compatibles con intel y muy c\u00f3modos para\u00a0direccionar bits. Sin embargo requiere un hardware de programaci\u00f3n complicado.<\/p>\n<p>El microprocesador PIC16F84 solo ofrece 1K de EEPROM y 64 bits de RAM, el c\u00f3digo\u00a0maquina es un poco menos c\u00f3modo, pero el hardware de programaci\u00f3n es muy sencillo y<br \/>\nexiste mucha documentaci\u00f3n y muchos programas gratuitos en Internet.<\/p>\n<p>La opci\u00f3n final fue el PIC ya que permite integrar el programador dentro del aut\u00f3mata\u00a0usando un hardware muy sencillo, descargar los programas usando el puerto paralelo\u00a0del PC y realizar modificaciones en cuesti\u00f3n de segundos, aun a pesar de su escasa\u00a0capacidad de memoria.<\/p>\n<p>Una vez elegido el procesador, solo quedo buscar el hardware mas adecuados para el resto\u00a0del sistema: Rel\u00e9s de 5V para las salidas, optoacopladores para aislar las entradas, la fuente\u00a0de \u00a0alimentaci\u00f3n y los chips TTL auxiliares.<\/p>\n<p style=\"text-align: left;\">NUCLEO<\/p>\n<p style=\"text-align: center;\"><a href=\"http:\/\/www.pesadillo.com\/pesadillo\/wp-content\/uploads\/2012\/10\/plccpu1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter  wp-image-7722\" title=\"plccpu[1]\" src=\"http:\/\/www.pesadillo.com\/pesadillo\/wp-content\/uploads\/2012\/10\/plccpu1.jpg\" alt=\"\" width=\"555\" height=\"411\" srcset=\"https:\/\/www.pesadillo.com\/pesadillo\/wp-content\/uploads\/2012\/10\/plccpu1.jpg 925w, https:\/\/www.pesadillo.com\/pesadillo\/wp-content\/uploads\/2012\/10\/plccpu1-300x222.jpg 300w\" sizes=\"auto, (max-width: 555px) 100vw, 555px\" \/><\/a><\/p>\n<p>PROGRAMADOR<\/p>\n<p style=\"text-align: center;\"><a href=\"http:\/\/www.pesadillo.com\/pesadillo\/wp-content\/uploads\/2012\/10\/plcprog1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter  wp-image-7723\" title=\"plcprog[1]\" src=\"http:\/\/www.pesadillo.com\/pesadillo\/wp-content\/uploads\/2012\/10\/plcprog1.jpg\" alt=\"\" width=\"555\" height=\"411\" srcset=\"https:\/\/www.pesadillo.com\/pesadillo\/wp-content\/uploads\/2012\/10\/plcprog1.jpg 925w, https:\/\/www.pesadillo.com\/pesadillo\/wp-content\/uploads\/2012\/10\/plcprog1-300x222.jpg 300w\" sizes=\"auto, (max-width: 555px) 100vw, 555px\" \/><\/a><\/p>\n<p style=\"text-align: center;\">ENTRADAS OPTOACOPLADAS<br \/>\n<a href=\"http:\/\/www.pesadillo.com\/pesadillo\/wp-content\/uploads\/2012\/10\/inputs1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter  wp-image-7724\" title=\"inputs[1]\" src=\"http:\/\/www.pesadillo.com\/pesadillo\/wp-content\/uploads\/2012\/10\/inputs1.jpg\" alt=\"\" width=\"556\" height=\"410\" srcset=\"https:\/\/www.pesadillo.com\/pesadillo\/wp-content\/uploads\/2012\/10\/inputs1.jpg 926w, https:\/\/www.pesadillo.com\/pesadillo\/wp-content\/uploads\/2012\/10\/inputs1-300x221.jpg 300w\" sizes=\"auto, (max-width: 556px) 100vw, 556px\" \/><\/a><\/p>\n<p style=\"text-align: center;\">SALIDAS A RELES<br \/>\n<a href=\"http:\/\/www.pesadillo.com\/pesadillo\/wp-content\/uploads\/2012\/10\/reles1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter  wp-image-7725\" title=\"reles[1]\" src=\"http:\/\/www.pesadillo.com\/pesadillo\/wp-content\/uploads\/2012\/10\/reles1.jpg\" alt=\"\" width=\"562\" height=\"415\" srcset=\"https:\/\/www.pesadillo.com\/pesadillo\/wp-content\/uploads\/2012\/10\/reles1.jpg 936w, https:\/\/www.pesadillo.com\/pesadillo\/wp-content\/uploads\/2012\/10\/reles1-300x221.jpg 300w\" sizes=\"auto, (max-width: 562px) 100vw, 562px\" \/><\/a><\/p>\n<p><a href=\"http:\/\/www.pesadillo.com\/pesadillo\/wp-content\/uploads\/2012\/10\/sold_layer1.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-7726\" title=\"sold_layer[1]\" src=\"http:\/\/www.pesadillo.com\/pesadillo\/wp-content\/uploads\/2012\/10\/sold_layer1.gif\" alt=\"\" width=\"416\" height=\"596\" srcset=\"https:\/\/www.pesadillo.com\/pesadillo\/wp-content\/uploads\/2012\/10\/sold_layer1.gif 416w, https:\/\/www.pesadillo.com\/pesadillo\/wp-content\/uploads\/2012\/10\/sold_layer1-209x300.gif 209w\" sizes=\"auto, (max-width: 416px) 100vw, 416px\" \/><\/a><\/p>\n<p>Como se aprecia en las fotos, el aut\u00f3mata consta de tres placas de circuito impreso<br \/>\nmontadas una sobre otra usando separadores.<br \/>\nTodo el cableado externo utiliza conectores.<br \/>\nEn la tarjeta inferior est\u00e1n integrados la fuente de alimentaci\u00f3n, la CPU y el puerto<br \/>\nde programaci\u00f3n. La fuente de alimentaci\u00f3n conmutada regula la tensiones +5V\u00a0 1Amp para la l\u00f3gica digital, para un tensi\u00f3n de entrada comprendida entre 12 y 30 V dc<br \/>\nLa placa central es la de entradas optoacopladas y led\u00b4s de diagnostico. En la\u00a0superior se encuentra el driver que activa los rel\u00e9s de salida\u00a0 ( 1 contacto normalmente abierto\u00a0 y libre de potencial )<\/p>\n<p>El estado de las entradas se visualizan\u00a0 con diodos led verdes y las salidas con diodos led rojos. Las tarjetas est\u00e1n conectadas a trav\u00e9s de un cable plano de 26 pin,<br \/>\nel puerto de comunicaciones es de 9 pin y est\u00e1n implementados en el frontal tres led<br \/>\nde diagnostico y un interruptor de dos posiciones:<br \/>\nEl led verde indica que el PLC esta en modo RUN ejecutando el programa contenido en memoria y parpadea con una cadencia de 0,5 segundos, estando bajo el control del sistema operativo. Si el PLC se cuelga o la memoria EEPROM esta borrada este led deja de parpadear as\u00ed como\u00a0 cuando el interruptor esta en modo STOP\/PROGRAM..<br \/>\nEl led rojo nos informa que el procesador esta en estado de RESET, se activa unos segundos al aplicar tensi\u00f3n al aut\u00f3mata y cuando pasamos el interruptor de dos posiciones<br \/>\ndel modo RUN al modo de programaci\u00f3n STOP\/PROGRAM para volcar programas \u00a0\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 a la memoria del PIC. El led amarillo sirve de diagnostico en los procesos de comunicaci\u00f3n<br \/>\ncon el P.C. se activa al leer, borrar, verificar y grabar la memoria EEPROM del<br \/>\nprocesador PIC16F84.<\/p>\n<p>Fuente:\u00a0<a href=\"http:\/\/inicia.es\/de\/juanmarod\/portada.htm\" target=\"_blank\">http:\/\/inicia.es\/de\/juanmarod\/portada.htm<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Despu\u00e9s de varios a\u00f1os trabajando con aut\u00f3matas comerciales de diferentes fabricantes\u00a0como OMRON, SIEMENS, EBERLY y BOSCH. Decid\u00ed en mi tiempo libre dise\u00f1ar un\u00a0aut\u00f3mata hecho a medida. La idea original tendr\u00eda que cumplir las siguientes premisas: &#8211; Lenguaje de programaci\u00f3n compatible con el est\u00e1ndar y soportar todo tipo de\u00a0instrucciones, contadores y temporizadores. &#8211; La memoria del PLC tendr\u00eda que ser no [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[58,69],"class_list":["post-7721","post","type-post","status-publish","format-standard","hentry","category-electronica","tag-circuitos-electronicos","tag-electronica"],"_links":{"self":[{"href":"https:\/\/www.pesadillo.com\/pesadillo\/index.php?rest_route=\/wp\/v2\/posts\/7721","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.pesadillo.com\/pesadillo\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.pesadillo.com\/pesadillo\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.pesadillo.com\/pesadillo\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.pesadillo.com\/pesadillo\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=7721"}],"version-history":[{"count":3,"href":"https:\/\/www.pesadillo.com\/pesadillo\/index.php?rest_route=\/wp\/v2\/posts\/7721\/revisions"}],"predecessor-version":[{"id":7729,"href":"https:\/\/www.pesadillo.com\/pesadillo\/index.php?rest_route=\/wp\/v2\/posts\/7721\/revisions\/7729"}],"wp:attachment":[{"href":"https:\/\/www.pesadillo.com\/pesadillo\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7721"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.pesadillo.com\/pesadillo\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=7721"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.pesadillo.com\/pesadillo\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=7721"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}