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.
 
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?
 
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.
 

Adjuntos

  • pwm_ladder_no_simulado.rar
    808 bytes · Visitas: 427
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.
 
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..
 
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:
 

Adjuntos

  • Foros electrónica.rar
    1.1 KB · Visitas: 40
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
 
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?
 
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 ) ;)
 
Muchas gracias por la corrección, word es un tipo de longitud no? :confused: , 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.
 
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
 
Ya monté mi hardware en PCB con el PIC16F628 7 entradas digitales y 4 salidas a reles, un puerto RS232...pero no se como testear el puerto serial.
¿alguien tiene un ejemplo simple como la de enviar un caracter cuando una entrada digital este activa?
 
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.

LDMicro es un lenguaje muy limitado lejos de facilitar las cosas las complica.. existen lenguajes de programación de alto nivel fáciles de aprender como C o BASIC tu proyecto se desarrollaría con poquísimas líneas de código. ..

Lenguajes como LDMICRO FLOWCODE PARSIC NIPLE son malos y no vale la pena dedicarse mucho a ellos.. créeme
 
Atrás
Arriba