Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

28/08/2009 #1


PLC con LD-MICRO
Hola a todos, soy Javier soy nuevo en el foro al igual que en la programacion, mi proble es que tengo que controlar un proceso de llenado de botellas y lo tengo pensado hacer con el programa Ld-micro, es este programa contienen las aplicaciones del microcontrolador 16F876 como el camvertidor A/D y modulo de PWM mi problema es que necesito usarlos pero no puedo configurarlos, tambien pretendo introducir una pantalla lcd.

Si alguien lo a utilizado y me podria ayudar se lo agradeceria.

Les dejo el link donde lo encontre el programa:

Torres Electrónico LDmicro: Lógica Ladder para PIC y AVR

Un saludo a todos.
28/08/2009 #2

Avatar de rednaxela

Como así que no los puedes utilizar?, mira ésta página allí hay información (inglés) no es que sea la última versión pero tiene buenos datos, por ahí hay un tutorial y várias versiones de descargar de ld micro(español).

PD: Que es lo que no puedes utilizar o no puedes ejecutar el programa?
01/09/2009 #3


Respuesta: PLC con LD-MICRO
Gracias por la pagina ya la visite, tiene varios ejemplos. Lo que no puedo configurar es el modulo PWM.

Saludos
01/09/2009 #4

Avatar de rednaxela

Respuesta: PLC con LD-MICRO
Mira, de rapidez hice esto pero no estoy seguro si funciona(no estoy en casa), simulalo en proteus y comentas que paso, es algo muy sencillo no se si es lo que buscas.
Archivos Adjuntos
Tipo de Archivo: rar pwm_ladder_no_simulado.rar (808 Bytes, 317 visitas)
15/09/2009 #5


Respuesta: PLC con LD-MICRO
Gracias por tu aporte, lo simule y si funciona, pero tengo una duda: en MOV le das valor a la fuente de 50 para que sirve.

Un saludo y una disculpa por tardar en contestar.
15/09/2009 #6

Avatar de rednaxela

Respuesta: PLC con LD-MICRO
Ese "50" es el ciclo útil --> 50%
02/05/2010 #7


Respuesta: PLC con LD-MICRO
hola amigos ud me pueden ayudar a programa run pic 16f628 con un display lcd atraves del ldmicro por favor

de antemano muchas gracias
12/10/2010 #8


Respuesta: PLC con LD-MICRO
Buenas, necesito saber si alguien de uds tiene alguna rutina con ldmicro y max232 para comunicarme con el puerto serie de mi pc, desde ya muchas gracias.
08/08/2012 #9


hola amigos!!.. un favor, alguien me podia mostrar un ejemplo de como programar en el ldmicro un lcd de 16x2 y de cualquier parametro para que muestre el valor de una entrada analogica?..por favor..
30/08/2014 #10


PLC con LD-MICRO
Buen día, recién conocí y me registre a este foro porque encontre la base de lo que buscaba en un Post de su comunidad, es por eso que decidí registrarme y consultar a la comunidad mi siguiente duda, la cual es acerca del programa LD-Micro, dicho programa lo he empezado a usar desde la semana pasada por una materia de Fundamentos de PLC\'s que me encuentro cursando. Hasta ahorita en mi parecer el programa es muy sencillo y tiene buenos alcances, al menos los suficientes para explorar la programación en escalera, mas sin embargo aún encuentro fallas en mi programación ya que por el momento desconozco como se implementan correctamente las herramientas del programa.

Lo que intento hacer en el program LD-micro con un PIC 16F877 es lo siguiente:

1.- Hacer una lectura ADC (Listo)
2.- Hacer una comparación para evaluar si mi ADC esta sobre el nivel medio del rango que da el ADC (No listo)
3.- Hacer una comparación para evaluar si mi ADC esta bajo el nivel medio del rango que da el ADC (No listo)
4.- Al cumplir los casos 2 o 3 se dará una salida PWM del 100% o 50% respectivamente con una frecuencia de 1kHz (Listo)

Como ven el problema esta en que no se usar los comparadores, el potenciometro que utilizo del PROTEUS me da una variación de voltaje en su salida de 0V a 5V, en el LD micro es así como le he encontrado una posible solución:

Adc
1--------------------------------------------(READ ADC)----
2----[Adc >]---------------------------------{PWM := }----
[ 2 ] {100 MOV}
3----[Adc >]---------------------------------{PWM := }----
[ 2 ] {50 MOV }
PWM
4--------------------------------------------{PWM 1.00 kHz}-

-----[END]--------------------------------------------------

Al simular en el isis el programa me genera una señal PWM que no satisface mis expectativas.
Agradecería mucho una respuesta. Les dejo un archivo rar del programa:
Archivos Adjuntos
Tipo de Archivo: rar Foros electrónica.rar (1,1 KB (Kilobytes), 6 visitas)
30/08/2014 #11

Avatar de torres.electronico

No habia visto nunca este topico y lo mas gracioso, es que cita una pagina antigua mia donde arrancaba a promocionar este sistema que en su moomento era novedoso para todos los que querian aprender automatizacion con un PLC homemade de bajo coste... Bueno, te comento que me ganaste de mano por que no termine de armar el otro topico donde toco justamente una parte a LDmicro, pero vamos a tratar de resolverlo aqui, y cuando termine el otro topico, anexare este mismo topico como una especie de TIP...
Te dejo un ejemplo sencillo donde almacenamos el dato de la lectura del ADC en la variable "Aspeedvar", y luego, hacemos una comparacion y con ella generar una salida PWM variable.
No es muy complejo el programa, asi que podras facilmente anexar las otras lineas a este mismo para genmerar tus dos PWM que querias...saludos

Código:
LDmicro export text
for 'Microchip PIC16F877 40-PDIP', 8.000000 MHz crystal, 10.0 ms cycle time


LADDER DIAGRAM:

   ||                                                   ||
   ||                                      Aspeedvar    ||
 1 ||-------------------------------------{READ ADC}----||
   ||                                                   ||
   ||                                                   ||
   ||                                                   ||
   ||                                                   ||
   || [Aspeedvar >=]    [Aspeedvar <]   {duty  :=    }  ||
 2 ||-[ 250        ]----[ 300       ]---{ 25      MOV}--||
   ||                                                   ||
   ||                                                   ||
   ||                                                   ||
   ||                                                   ||
   || [Aspeedvar >=]    [Aspeedvar <]   {duty  :=    }  ||
 3 ||-[ 500        ]----[ 550       ]---{ 50      MOV}--||
   ||                                                   ||
   || [Aspeedvar >=]    [Aspeedvar <]   {duty  :=    }  ||
   ||-[ 750        ]----[ 800       ]---{ 75      MOV}--||
   ||                                                   ||
   ||                                                   ||
   ||                                                   ||
   ||                                                   ||
   || [Aspeedvar >=]                    {duty  :=    }  ||
 4 ||-[ 1023       ]--------------------{ 100     MOV}--||
   ||                                                   ||
   ||                                                   ||
   ||                                                   ||
   ||                                                   ||
   ||                                        duty       ||
 5 ||-----------------------------------{PWM 1.00 kHz}--||
   ||                                                   ||
   ||                                                   ||
   ||                                                   ||
   ||------[END]----------------------------------------||
   ||                                                   ||
   ||                                                   ||


E/S ASIGNACIÓN:

  Nombre                     | Tipo               | Pata
 ----------------------------+--------------------+------
  Aspeedvar                  | entrada adc        | 2
  duty                       | salida PWM         | 16
30/08/2014 #12


Muchas gracias ahora entiendo que mi ADC va de 0 a 1024 y que mi PWM va de 0 a 255 , Una pregunta: si quiero igualar mis valores de ADC con los del PWM puedo realizar una división de mi lectura entre 4 con la instrucción de dividir?
31/08/2014 #13

Avatar de torres.electronico

no podrias pasar de word a un solo byte con la division, ya que es una division de 16 bits... En ese caso, lo que podes hacer es pasarlo a dos bytes... Antes de que me olvide, vamos a corregir algo... no va de 0 a 1024... va de 0 a 1023 (el cero se cuenta )
31/08/2014 #14


Muchas gracias por la corrección, word es un tipo de longitud no? , debo estudiar más esa parte jaja la desconozco, creo que esto se debe a que programo PIC's en MikroC y hasta ahorita no he necesitado entender tanto de registros, recomienda que aprenda ensamblador?, si es así sabrá de algun software con el que se programe ensamblador o como se hace? , habrá alguna fuente o libro que recomiendes?

De nuevo le agradezco la ayuda.

Por cierto no se si estas preguntas sean adecuadas para el Post ya que deja a un lado LD-Micro, disculpe es la primera vez que utilizo un foro.
31/08/2014 #15

Avatar de torres.electronico

word es el formato que le damos a la variable... Este formato, es la resolucion del dato que almacenamos, y hay varios tipos de almacenamiento de variables (bit-byte-word-long)...
vamos a mezclar un poco las cosas par que puedas entender la parte del DAC de 10 bits que trabaja LDmicro...
Tomando el ejemplo citado anteriormente, y ya sabiendo que estamos trabajando en 10 bits,la configuracion interna del micro dice:

ADCON1 = %00001110 ;configuración de las funciones de los pines de los puertos del A/D
significa:
Bit 7: 1 es justificación a la izquierda.
Bit 6-4: no se usan.
Bit 3-0: solo un canal analógico, V de referencia + es VDD y V de referencia – es VSS.

Ahora vamos a la practica; Tomemos como ejemplo el ADC de los micros de la series 16F873/76/77 que se puede trabajar en 8 o 10 bits.
El valor leído por el puerto analogico debe ser multiplicado por la resolución para obtener el valor analógico que se está capturando.
Por ejemplo:

Valor Analogico= ADCIN x ADC_resolución

donde

ADC_resolucion= Vref/2numbits
Vref/1024 (en caso de ser 10bits - 0 a 1023)
Vref/256 (en caso de ser 8 bits - 0 a 255)

tomando como ejemplo una referencia de 4,88v , mas simplificado seria algo asi

ADC_resolucion= 4,88/1024 = 0,004765625 osea 4,7mV

o sea, si el sensor trabaja de 0 a 5V (4,88V), cada paso ira de 4,7 en 4,7 milivoltios. Si deseas hacer la inversa, un regla de tres te ayudara facilmente a saber cualquier incognita...

Por ejemplo Vref = 0,004765625 * 1024 = 4,88V

Para aplicarlo en un proyecto, ya tenemos los datos mas relevantes... Vref y ADC_resolucion, entonces la operacion seria:

ADCIN 0, LECTURAadc
TEMP1 = 488 * LECTURAadc ; (4,88v * LECTURAadc)

En breve, veo de armarte un ejemplo completo en el otro topico...ahi anoche ya arranque a subir un tutorial sobre el manejo y programacion...saludos
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.