|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mensajes - wakowarner
Páginas: [1]
2
« en: Martes 11 de Enero de 2005, 21:07 »
Funciona!!! Muchas gracias!
3
« en: Jueves 6 de Enero de 2005, 23:57 »
Estoy desesperado!!! Necesito de su ayuda para asignar las propiedades a un control que estoy haciendo. tengo un control llamado VSG, este control tiene como trompecientas propiedades, muchas muy semejantes que se diferencia solo por un numero, hasta aqui todo bien, ahora tambien tengo un timer que refresca el valor de dichas propiedades para cada control (este control es un array), el problema es que esta funcion hace un ciclo for para actualizar cada propiedad y segun el nombre de una etiqueta el programa decide a que propiedad se asigna el valor, pero como hay varias parecidas quisiera que con una sentencia IF instr("nombre parcial de la tag", decida a que propiedad se asigne el valor, les pongo parte de la rutina resumida para que vean de que hablo For i = 1 To OPCGroupItemsCls.Count Set OPCItemToUpdate = OPCGroupItemsCls.Item(Str(i)) ItemValue = OPCItemToUpdate.GetItemValue(1) ItemID = OPCItemToUpdate.GetItemID Call FindRoute(ItemID, IDChannel, IDDevice, IDTag) For j = 1 To VSGIndex If VSG(j).Channel = IDChannel And VSG(j).Device = IDDevice Then Select Case IDTag Case "Mach" VSG(j).Mach = ItemValue Case "LampGreen" VSG(j).Lampgreen = ItemValue Case "LampRed" VSG(j).LampRed = ItemValue Case "LampAmber" VSG(j).LampAmber = ItemValue Case "DT1000" VSG(j).DT1000 = ItemValue Case "DT1001" VSG(j).DT1001 = ItemValue Case "DT1002" VSG(j).DT1002 = ItemValue Case "DT1003" VSG(j).DT1003 = ItemValue Case "DT1004" VSG(j).DT1004 = ItemValue Case "DT1005" VSG(j).DT1005 = ItemValue Case "BadWeld" VSG(j).Badweld = ItemValue Case "DropedParts" VSG(j).DropedParts = ItemValue Case "EpoxyLosses" VSG(j).EpoxyLosses = ItemValue Case "TwistedAnodes" VSG(j).TwistedAnodes = ItemValue Case "EmptyPockets" VSG(j).EmptyPockets = ItemValue Case "Case" Select Case ItemValue Case 1 VSG(j).Size = "D" Case 2 VSG(j).Size = "B" Case 4 VSG(j).Size = "A" Case 8 VSG(j).Size = "C" Case 16 VSG(j).Size = "X" End Select Case "StopBit" If VSG(j).Lampgreen = False And VSG(j).ErrorCode = "" And ItemValue = True Then VSG(j).ErrorCode = "R166" VSG(j).ErrorDescription = "Stop Button Pressed" End If Case "BitLdframe" If Monitor = False Then Dim Direccion As String Direccion = IDChannel & "." & IDDevice If ItemValue = True And VSG(j).LdfrmFlag = 0 Then VSG(j).Leadframe = "" Call UpdateItem(Direccion & ".ErrLdframe", 1) ElseIf ItemValue = True And VSG(j).LdfrmFlag = 1 Then Call UpdateItem(Direccion & ".ErrLdframe", 0) Call UpdateItem(Direccion & ".BitLdframe", 0) ElseIf ItemValue = False Then VSG(j).LdfrmFlag = 0 End If End If Case "Batchreset" If ItemValue = True Then Call UpdateItem(IDChannel & "." & IDDevice & ".Batchreset", 0) End If Case "BatchLoaded" If Monitor = False Then Dim Direccion1 As String Direccion1 = IDChannel & "." & IDDevice & ".BatchLoaded" If Len(VSG(j).Batch) = 0 And VSG(j).DT1002 > 0 Then Call UpdateItem(Direccion1, 1) Else Call UpdateItem(Direccion1, 0) End If End If Case "LdframeYield" If ItemValue < 1001 Then 'Para no guardar un valor falso del inicio VSG(j).LeadFrameYield = ItemValue / 10 End If End Select
hay una parte donde las propiedades van desde .Welder01 hasta .Welder20 y como no quiero hacer un select quisiera hacer algo como... [CODE] If Instr(TAG,"Welder") then VSG(j).<aqui va algo> = itemvalue endif lo que quiero saber es si es posible hacer una coleccion con las propiedades del objeto o una especie de puntero de tal manera que el codigo sepa a que de los welder debe asignarsele el valor, no se si me explico, si quieren puedo adjuntar el archivo, aunque dudo que lo puedan hacer correr sin una API que necesita
Saludos!!
4
« en: Martes 14 de Septiembre de 2004, 17:04 »
Hola Makko!! Eres el makko de la pagina de Picard? bueno, respecto a tu problema, intenta hacer primero el refresh y luego el show y asi el reporte que se muestra es con los nuevos datos DataReport1.Show DataReport1.Refresh Espero funcione!! Saludos!!
5
« en: Viernes 10 de Septiembre de 2004, 21:56 »
Estoy en las mismas!!! Se que es borrando ciertas entradas de registro. Pero cuales???
6
« en: Martes 31 de Agosto de 2004, 18:04 »
NO se puede, el puerto serie es para recibir Bytes en forma serial, lo que necesitas es hacer uso del puerto paralelo, aqui si que puedes leer el estado especifico de un pin. Saludos!
7
« en: Jueves 26 de Agosto de 2004, 07:58 »
Ya intentaste con ODBC?
8
« en: Viernes 16 de Abril de 2004, 18:16 »
Yo tengo un codigo (en realidad son muchos), pero son muy extensos, ya que en mi trabajo utilizo muchos scanners de codigos de barras, basicamente le tienes que configurar al scanner (esto es con una hoja de programacion) el preambulo y el postambulo, la velocidad, el control de flujos (si lleva o no lleva y si es por hardware o software) , cantidad de bits, paridad par o impar, etc. pero basicamente tiene que leer de un buffer y esperar el retorno de carro (CARACTER 13) y vaciar el buffer a un variable Te dejo un extracto de un evento OnCom de una aplicacion que tengo en Visual Basic
Private Sub MSCom_OnComm() '//Recibe los codigos del Scaner y les da el seguimiento adecuado Buffer = Buffer & MSCom.Input If Right(Buffer, 1) = Chr(13) Then Buffer = Left(Buffer, Len(Buffer) - 1) If Len(Buffer) > 5 Then If Pointer = 1 Then txtBatch.Text = Buffer Call txtBatch_KeyUP(13, 0) Else txtBadge.Text = Left(Buffer, Len(Buffer) - 1) UserFlag = True Call txtBadge_KeyUP(13, 0) End If Else '**Buffer < 6, pueden escanear un lid o una cspec End If Buffer = "" '//Vacio buffer despues de recibir chr(13) End If End Sub
9
« en: Lunes 15 de Marzo de 2004, 17:53 »
Hola LMarte, creo que no fui bastante claro al decir de que se trataba el proyecto al referirme como proyecto de control de luz por luz infrarroja . Lo que quiero controlar la iluminacion de una habitacion, controlar los aparatos como la TV o el equipo de sonido es harina de otro costal. El control de potencia la hago por medio de tiristores (un scr para ser mas exacto) regulando el angulo de disparo. Ya tengo la fuente de alimentacion sin transformador. De momento estoy algo ocupado con un proyecto de mi trabajo (cosas de PLCs y aplicaciones cliente servidor en VB), pero ya estoy trabajando en el diagrama del circuito, al parecer va a quedar muy compacto, ahora solo me queda terminar el programa, ya tengo una version preliminar del diagrama de flujo pero no es definitivo, por eso estoy esperando. tan pronto tenga tiempo publicare el resto del proyecto. Por cierto, que quieres decir con la etapa de HW? te refieres al Hardware? si es asi, espera un poco y luego pondre el diagrama completo (despacio, que llevo prisa) Espero no haberte decepcionado por no ser lo que esperabas Saludos!
10
« en: Miércoles 25 de Febrero de 2004, 13:59 »
Primero: Comprate un pic, el 16F84 es perfecto para iniciarte
Segundo: compra o arma un programador, no es necesario que sea uno muy completo, con que pueda programar este pic es suficiente
Tercero: empieza a probar, prender y apagar un led es un buen ejercicio, cuando logres esto podras ir avanzando hasta controlar LCds, conversores y otros circvuitos mas complicados
Suerte!
11
« en: Lunes 23 de Febrero de 2004, 18:00 »
Ya que nadie dice nada, voy a seguir... (al menos nadie me ha criticado ) En la imagen adjunta se ve que cada 8.33mS ocurre un un cruce por cero, con lo cual pienso generar una interrupcion. Tambien se ve que el tramado de un comando en RC5 dura un tiempo completo de 24.88mS, aqui empiezan los problemas. si el programa solo estubiera viendo los cruces por cero y hago un delay para disparar el scr (creo que me he adelantado, aun no he explicado como voy a controlar el angulo de disparo, pero como es algo muy simple y ustedes son muy listos supongo que me entenderan ). El chiste es que si estoy haciendo un delay no debo descuidar la posible llegada de una trama del infrarrojo, esta trama esta compuesta por 14 bits, cada bit dura 1.778mS, los bits estan dispuestos como sigue: 2 Bits de Start: Siempre son 1,1 1 Toggle BIt: este bit siempre esta alternando entre uno y cero, asi se sabe si el comando se esta repitiendo, por ejemplo al mantener presionado el boton del volumen. 5 Bits de Sistema: se utilizan para seleccionar el aparato, se supone que es un codigo para la TV, otro para el modular, otro para el Dvd.... 6 Bits de Comando: estos bits contienen el comando en si, encendido, volumen up, volumen down, channel up, channel down... Otra cosa, un bit esta compuesto a su vez por dos bits (y una naranja por dos medias naranjas...) , me explico, se utilizan dos bit (complementarios, un uno y un cero o un cero y un uno) para expresar un uno o un cero y lo que interesa es la transicion entre ellos, si el primer bit es cero y el segundo un cero ocurrira una transicion positiva, esto se interpreta como un uno; por el contrario si el primer bit es un uno y el segundo un cero la transicion sera negativa y esto lo veremos como un cero. Otra cosa(como si no fuera bastante confuso ya ), enteriormente habia dicho que un bit duraba 1.77mS, asi que cada uno de estos 'medios bits" dura 0.888mS. Asi que creo que este es el evento mas pequeño que debo ser capaz de procesar, asi que una posibilidad es generar interrupciones con un timmer y ver los eventos, bueno, aun no lo decido, voy a investigar un poco hacerca de los S.O. y luego les aviso. Saludos!
12
« en: Domingo 22 de Febrero de 2004, 18:05 »
Tambien puedes intentar con www.digikey.com es una tienda muy importante de electronica en USA, es muy probable que hagan envios a otros paises; otra tienda muy barata es www.amazonelectronics.com tienen varios circuitos para desarrollar con pics. Checa con esas dos Saludos!
13
« en: Domingo 22 de Febrero de 2004, 16:47 »
Tienes razon, es posible detectar la luz infrarroja hasta una distacia de 10 metros sin problemas, pero ojo, en el control remoto hay un transmisor de un lado y un receptor del otro, con un sensor lo que tienes que ver es el rebote de la luz, existen sensores (creo que son los de las alarmas) que utilizan luz infrarroja, pero estos lo que ven es el movimiento, lo que hacen es ver las variaciones de la luz reflejada (esto con un opamp en modo diferencial); creo que si los usas para ver un obstaculo, su operacion no es muy fiable, de todos modos voy a investigar al respecto, si encuentro algo les aviso.
Saludos!
14
« en: Sábado 21 de Febrero de 2004, 18:22 »
Disculpa, pero no creo que puedas medir mas de dos centimetros con sensor infrarrojo, lo mejor es un ultrasonico, eso si, es mas complicado. En http://www.hobby-elec.org/e_pic6_6.htm encuentras un proyecto de un medidor de distancias; algo complicado pero viene muy bien exlicado. Suerte!
15
« en: Sábado 21 de Febrero de 2004, 14:53 »
Tienes razon, Pero ya que hablas de computadora, no seria mas facil hacer un programa y te evitas armar todos los fierros? en si lo unico que implementas es un codigo que se incrementa de forma secuencial (o aleatoria para ver nieve de colores ), de todas formas no creo que se vea nada, como bien dices, las conbinaciones son exponeciales...
16
« en: Sábado 21 de Febrero de 2004, 14:49 »
Solo para comentarles que estoy por inicar un proyecto de control de luz por luz infrarroja. He visto proyectos que controlan reles o algunos otros de proposito general, pero lo que yo quiero es lo siguiente. Control Universal en formato RC5 programable Control de potencia variable Apagado y Encendido gradual (es decir que prenda despacio y se apague igual) Un Timer de apagado para que cuando nos vayamos a la cama nos de tiempo de acostarnos antes de apagar la luz El proyecto es bastante simple (hay otros muy buenos por aqui), he incluso he visto uno parecido en la revista Elektor pero creo que es con un chip Atmel y no es facil conseguirlo donde vivo. asi creo voy a usar un chip, aun no decido si sera un 16f84 o uno de la serie 16f87x. Hasta ahorita el principal problema es la velocidad con que ocurren los eventos, necesito un detector de cruce por cero para detectar el inicio de la onda. la frecuencia aqui es de 60 Hz (Por cierto, soy de Mexico), asi que eso me da periodos de 8.33 mS, y y un comando de RC5 dura 24.889mS, asi que tengo que implementar algo que parezca multitarea, creo que voy a poner un timer que dure 444uS, que es lo que dura un bit de RC5 y generar bases de tiempo para verificar una lista de tareas (aun no lo tengo bien definido). Otra caracteristica del circuito es que no voy a emplear transformador sino uno un divisor de tension, solo que eso representa un problema (ademas de la limitada corriente que suministra), ya que el divisor usa capacitores en serie lo que defasa el voltaje y me crea problemas para detectar el cruce por cero (indispensable para disparar el triac). En fin, eso es lo que pretendo hacer; soy nuevo en este foro y espero aprender mucho con la ayuda de ustedes. saludos!
17
« en: Sábado 21 de Febrero de 2004, 14:23 »
Tecnicamente creo que el proyectoes bueno ...pero en la practica creo que solo veras una bonita nieve de colores Suerte!
Páginas: [1]
|
|
|