Autor Tema: PLC thinget  (Leído 44393 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8109
Re: PLC thinget
« Respuesta #15 en: 01 de Marzo de 2015, 02:16:49 »
http://www.pakplc.com/download/XCPPro_user_manual.pdf

Busca la palabra  "timer" , por ahi tal ves te sirva.

Desconectado cosmic

  • PIC16
  • ***
  • Mensajes: 175
Re: PLC thinget
« Respuesta #16 en: 01 de Marzo de 2015, 12:59:33 »
Gracias. :-/ Si, anoche me puse a eso, por que ya la habia visto, pero no estoy muy seguro como funciona y se configura
en el diagrama.
Logre hacerlo correr, pero no he podido saber como detenerlo cuando termine la cuenta.
 :oops:

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8109
Re: PLC thinget
« Respuesta #17 en: 01 de Marzo de 2015, 14:42:31 »
Algo que bloquee la entrada a ese timer es lo unico que se me ocurre. Realmente no se muy bien de esto solo hice muy pocos programas en ladder pero como vi que posteabas y no conseguias una solucion decidi buscar algo y tratar de ayudarte. Asi que no puedo ayudarte en mucho.

Desconectado cosmic

  • PIC16
  • ***
  • Mensajes: 175
Re: PLC thinget
« Respuesta #18 en: 01 de Marzo de 2015, 15:06:57 »
Gracias amigo ahí voy, luchandole :-/
Espero que si alguien sabe me de una mano, el ingles no es mi fuerte, por eso
el manual no me ayuda mucho y traducir estos manuales no resulta muy entendible.. :(

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8109
Re: PLC thinget
« Respuesta #19 en: 01 de Marzo de 2015, 15:28:10 »
Gracias. :-/ Si, anoche me puse a eso, por que ya la habia visto, pero no estoy muy seguro como funciona y se configura
en el diagrama.
Logre hacerlo correr, pero no he podido saber como detenerlo cuando termine la cuenta.
 :oops:

OUT+Timer number+blank+timing hour

OUT para ponerlo en la salida + el numero que le quieras dar al timer + espacio en blanco + el tiempo

OUT T1 K500

el 500 es el tiempo..

Otra de las cosas que se me ocurre es la siguiente... supongo que tenes una entrada (E0) y que esta activa una salida en x tiempo (S0).

E0-------------- T0 K500
T0-------------- (set) S0

Esto contaria varias veces pero no me importaria ya que no cambia la salida para nada
Si quisieras un enclave con algo que lo resetee

E0--~S0------T0 K500
T0------------(set) S0
E1------------(reset) S0

~S0 = S0 negado
Aqui bloqueo la entrada al T0, cuando ya esta en 1 la salida S0, si presiono E1 reseteo S0 a 0 y me permite hacerlo arrancar de vuelta con E0.
Tambien a E0 podrias hacerlo que unicamente tome el flanco ascendente y no el estado del pin.



Seguimos expandiendo, del manual de usuario de los XC ( http://www.imenista.com/pdf/XCPLCV2.51.pdf ), la acumulacion significa que cuando pierde la entrada sigue con el mismo valor.

T0~T99:100ms not accumulation
T100~T199:100ms accumulation
T200~T299:10ms not accumulation
T300~T399:10ms accumulation
T400~T499:1ms not accumulation
T500~T599:1ms accumulation
T600~T618:1ms with interruption precise time

Tenes que pensarlo como un contador...
Ejemplo si pongo a el T0 a funcionar, va a contar 1 cada 100ms, si quisiera 1 segundo deberia contar 10 veces entonces K10

Si quisiera 2 segundos con el T200. ( aumenta cada 10ms ) entonces usaria K200  ( 200 * 10ms = 2000ms = 2s ) y ahi activaria mi salida
Si usas de los que acumulan, deberias de resetearlos ya que no pierden su valor cuando se desactivo lo que activa al Timer o cuando se va la potencia.

En fin esta todo en la pagina 39 y con respecto a lso timer imagino que debe variar segun el modelo
« Última modificación: 01 de Marzo de 2015, 15:49:31 por KILLERJC »

Desconectado cosmic

  • PIC16
  • ***
  • Mensajes: 175
Re: PLC thinget
« Respuesta #20 en: 01 de Marzo de 2015, 16:07:49 »
Gracias amigo mio, menos mal estaba por aqui.
Bueno, lo que quiero. Estoy pulsando una entrada X0 y activando una salida Y0.
Lo que he logrado. ya logre enclavar para que no se me apague
cuando suelto el pulsador. y de tanto cacharrearle ya logre hacer funcionar el TMR y contador de paso.
También he logrado resetear a ceros el TMR, cuando llega por ej a 50. con un pulso de subida cuando el TMR llega a 50.
Hasta ahi todo va ok. Ahora necesito apagar esa salida Y0, cuando se resetee el TMR, y como lo tengo enclavado creo que tambien se apagara el TMR, haciendolo a travez de pulsador lo logro, pero necesito que sea automatico sin ingresar entrada alguno.
Gracias :-/
« Última modificación: 01 de Marzo de 2015, 16:10:48 por cosmic »

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8109
Re: PLC thinget
« Respuesta #21 en: 01 de Marzo de 2015, 16:53:07 »
Vos buscas que presionas un boton y quede encendido cierto tiempo esa salida y luego se apague no ?

Siguiendo el uso de T0 a T199 (acumulable)

Citar
X0----------------------------------------------Y0(set)
Y0----------------------------------------------T0 K50
T0----------------------------------------------Y0(rst)
                                        |___________T0(rst)

o

X0-----------T0(negado)----------Y0
Y0___|                               |__T0 K50
T0----------------------------------rst T0

En el ultimo T0 desactivaria la salida y desactivaria su entrada asi para de contar. Tambien se auto reinicia. Esperando un nuevo X0 que inicie todo nuevamente.
Lo feo es que si se mantiene presionado X0 va a existir un pulso de salida al rele.
Igual podrias usar pulsos ascendentes y olvidarte de todo

Si usas T200 a T299 (no acumulable)

Citar
X0----------------------------------------------Y0(set)
Y0----------------------------------------------T200 K500
T0----------------------------------------------Y0(rst)

Deberia de reiniciarse solo el T200 una ves que Y0 se apague.

o

X0-----------T200(negado)-------Y0
Y0__|                               |___T200 K500

Nuevamente cuando el mismo timer se active desactiva la entrada por lo tanto su contador vuelve a 0.
El mismo caso de arriba, usa pulsos ascendentes en la entrada para evitar un pulso de salida indeseado cuando se mantiene presionado X0


A pesar que dice 16 bits, solo permite hasta K32767
« Última modificación: 01 de Marzo de 2015, 17:02:29 por KILLERJC »

Desconectado cosmic

  • PIC16
  • ***
  • Mensajes: 175
Re: PLC thinget
« Respuesta #22 en: 01 de Marzo de 2015, 17:28:27 »
Si amigo tienes razon, mira como lo logre, pero si el pulsador sigue activo
se me queda pegado, con flancos de subida en este caso creo que soluciono :lol:
Gracias y te estoy mostrando mis avances

Desconectado cosmic

  • PIC16
  • ***
  • Mensajes: 175
Re: PLC thinget
« Respuesta #23 en: 01 de Marzo de 2015, 17:35:54 »
 :lol: :lol: :lol:
Efectivamente, era sólo cambiar X0 por un flanco de subida, asi mantenga presionado el pulsador
se desactiva el TMR,la salida Y0 y tengo que soltar y volver a pulsar
Gracias de nuevo. Ya estoy aprendiendo a usar este software..
Sigo comentandote

Desconectado cosmic

  • PIC16
  • ***
  • Mensajes: 175
Re: PLC thinget
« Respuesta #24 en: 01 de Marzo de 2015, 21:44:18 »
KILLERJC. :-/
Creo que me lie ahora.
estoy tratando de contar pulsos de entrada, cada pulso en X0 activo a Y0 por dos segundos
con un temporizador que cuando termina de contar se resetea. Al tiempo de oprimir en X0, incremento un contador T0.
que cuenta hasta cinco y se resetea, activando un segundo contador que cuenta hasta dos en este proceso.
Cuando llega a 1 T1, debe activar una salida Y1, y cuando llega a 2 debe apagarla.
Hasta ahí voy bien, pero debo resetear T1, para iniciar nuevamente el proceso, y ahí es donde no he podido resetear
sin afectar el apagado de la salida que esta activa Y1. :(

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8109
Re: PLC thinget
« Respuesta #25 en: 02 de Marzo de 2015, 01:26:55 »
Haber si entendi bien..

X0 activa Y0 por 2 segundos

Cada pulso de X0 activa un contador que cuenta 5 ( supongamos C0 ). La pregunta aca es la siguiente: ¿Debe contar la cantidad de pulsos de X0 por mas que ya este activado Y0 ?
Por ejemplo que presiones 2 veces X0 antes que Y0 se ponga a 0, ¿deberia de contar 2 o 1?

Cuando C0 llega a 5 le da un pulso a C1 ? o comienza C1 a contar hasta 2 sin que se resetee C0 ? o ocurre algo asi:
C0 llega 5 -> C1 cuenta 1 -> C0 se pone a 0
C0 llega 5 -> C1 cuenta 2 -> C0 y C1 se ponen a 0 y activan Y1
C0 llega 5 -> C1 cuenta 1 -> C0 se pone a 0
C0 llega 5 -> C1 cuenta 2 -> C0 y C1 se ponen a 0 y desactivan Y1

O asi?:
C0 llega 5 -> C1 cuenta 1 -> C0 se pone a 0 y activan Y1
C0 llega 5 -> C1 cuenta 2 -> C0 y C1 se ponen a 0 y desactivan Y1


Ahora mi pregunta sigue: ¿Por que usar 2 contadores? Cuando 1 es suficiente.



Imagino que queres algo asi:

Supongo el ultimo caso sobre los contadores. Y que solo cuente la cantidad de salida Y0 ( asi no se repite X0 mientras esta activa la salida ). Puede variar por que no se exactamente lo que queres hacer.

X0(flanco sub)------------T0(negado)-----------------Y0                               // Seccion de mantener 2 segundos Y0. T0 temporizador NO acumulable de 100ms ( 20 x 100ms = 2s )
Y0_____________|                                  |_____T0 K20                         // Se resetea solo T0 cuando se activa cortando la entrada a T0 K20, de esa forma reinicia su tiempo.
Y0(flanco sub)-----------------------------------------C0 K10                         // Seccion contador hasta 10, creo que no es necesario el flanco de subida aqui.
(instruccion) LD> C0 K4 ------------------------------Y1                               // Si C0 > 4 ( es decir mayor o igual a 5 ) Y1 va a estar en 1, cuando borre el contador C0, Y1 se deberia poner a 0 automaticamente ya que la condicion no se cumpliria.
C0------------------------------------------------------(instruccion) RST C0       // Cuando se produce que C0 llega a 10 se resetea por lo tanto me apaga Y1 por la instruccion de arriba.

Si quisieras que cuente X0 por mas que este arriba el pulso de Y0 entonces cambias la 3era linea por un X0(flanco subida).
En la comparacion tambien podria haber realizado LD>= C0 K5, y tal ves sea mas intuitivo (C0 >= 5).
Si es el ejemplo que di primero de los contadores, entonces lo unico a cambiar son las constantes del contador y la comparacion a C0 K20 y LD> C0 K9
« Última modificación: 02 de Marzo de 2015, 01:52:06 por KILLERJC »

Desconectado cosmic

  • PIC16
  • ***
  • Mensajes: 175
Re: PLC thinget
« Respuesta #26 en: 02 de Marzo de 2015, 09:48:41 »
Buenos días amigo. ((:-))

lo que quiero es lo siguiente, te lo voy a explicar en rutinas if then.
Disculpa que lo haga de esta manera, pero es la mejor forma como lo sé explicar.

c0=0
c1=0

if x0 = 1 then y0=1 'si pulso x0 activo y0
c1=c1+1                 'incremento en 1 c0
delay ms 2000        , espero 2 segundos
y0=0                     ' apago y0
while x0=0 {          'espero se suelte pulsador de x0
}

if c0=5  then c1=c1+1{ 'si c0 llega a 5 incremento en 1 c1
c0=0;
}
if c1=1 then y1=1        'si c1 es=1 enciendo salida y1
if c1=2 then y1=0{       'si c1=2 apago salida y1

end

se reinicia el ciclo.. La vaina es que lo puedo resolver en lenguaje de programacion pero me lie en ladder
 :-/







Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8109
Re: PLC thinget
« Respuesta #27 en: 02 de Marzo de 2015, 13:10:52 »
Bueno yo tambien te voy a explicar que hace el programa que puse (intentando usar el basic, que no lo se muy bien):

c0=0

if x0 = 1 then
    y0=1
    c1=c1+1
    delay ms 2000
    y0=0
end if

while x0=0 { }     'Usando Y0 y no X0 puedo lograr esto

if c0>=5  then
    y1=1
else
    y1=0
endif

if C0=10 then C0=0 end if

end


Si quisieras exactamente ese funcionamiento es decir que cuente recien cuando termina el delay, deberias usar Y0(flanco bajada) en la 3era lina del programa que te pase

Citar
X0(flanco sub)------------T0(negado)-----------------Y0                               // Seccion de mantener 2 segundos Y0. T0 temporizador NO acumulable de 100ms ( 20 x 100ms = 2s )
Y0_____________|                                  |_____T0 K20                         // Se resetea solo T0 cuando se activa cortando la entrada a T0 K20, de esa forma reinicia su tiempo.
Y0(flanco sub)-----------------------------------------C0 K10                         // Seccion contador hasta 10, creo que no es necesario el flanco de subida aqui.
(instruccion) LD> C0 K4 ------------------------------Y1                               // Si C0 > 4 ( es decir mayor o igual a 5 ) Y1 va a estar en 1, cuando borre el contador C0, Y1 se deberia poner a 0 automaticamente ya que la condicion no se cumpliria.
C0------------------------------------------------------(instruccion) RST C0       // Cuando se produce que C0 llega a 10 se resetea por lo tanto me apaga Y1 por la instruccion de arriba.

Desconectado cosmic

  • PIC16
  • ***
  • Mensajes: 175
Re: PLC thinget
« Respuesta #28 en: 02 de Marzo de 2015, 23:11:21 »
 :) no creo que del afan me equivoque en el anterior mensaje

c0=0
c1=0

if x0 = 1 then y0=1 'si pulso x0 activo y0
c0=c0+1                 'incremento en 1 c0
delay ms 2000        , espero 2 segundos
y0=0                     ' apago y0
while x0=0          'espero se suelte pulsador de x0
end if

if c0=5  then
c1=c1+1 'si c0 llega a 5 incremento en 1 c1 y reseteo c0
c0=0;
end if

if c1=1 then y1=1        'si c1 es=1 enciendo salida y1
if c1=2 then y1=0      'si c1=2 apago salida y1 reseteo c1

end sub
necesito que no se incremente el contador hasta el proxino pulso de x0
:-/
« Última modificación: 02 de Marzo de 2015, 23:14:18 por cosmic »

Desconectado cosmic

  • PIC16
  • ***
  • Mensajes: 175
Re: PLC thinget
« Respuesta #29 en: 02 de Marzo de 2015, 23:41:11 »
Se me olvido decirte que no es cuando termine el delay
es cuando c0 llegue a 5, incrementa en 1 c1
c0 se incrementa cuando le llega el flanco de subida de x0
el retardo es solo para mantener la salida y0 en alto por este tiempo. :-/


 

anything