Mostrar Mensajes

Esta sección te permite ver todos los mensajes hechos por este usuario, recuerda que solo puedes ver los mensajes en áreas en donde tu tienes acceso.


Temas - PabloGa

Páginas: 1 [2]
16
STX8081 / Envío de emails II
« : diciembre 19, 2014, 21:46:54 pm »
Hola Boris, como estas ?

Te acordás que en Junio ya te había reportado que tenía dificultades con el envío de mails.
Bueno, nunca pude resolver el problema todavía.
Pero le he dedicado muchas, muchas horas en estos días, y he podido llegar a algunas conclusiones.

Por lo pronto, te cuento que estoy usando el SMTP de Arnet, con destino a una cuenta Gmail que levanto en mi celular.
Esto está probado y anda perfecto.

En mi opinión, hay un bug en la función SmtpSend().
Y es una falla tipo "toggle", que está presente en una ejecución, y no en la siguiente.

Fijate esta secuencia de eventos:

1- Cargo el firmware al PLC (esto hace que se resetee todo). Automáticamente me envía un email de notificación de encendido. Sale el mail y llega al instante.
2- Provoco un evento que hace salir una notificación. Sale el mail y llega al instante.
3- Provoco un evento que hace salir una notificación. Se queda aprox. 30 segundos en SmtpStatus=127 (enviando), y luego termina con SmtpStatus=-1  (falló el envío).

Ahora repito los pasos 2 y 3:
4- Provoco un evento que hace salir una notificación. Sale el mail y llega al instante.
5- Provoco un evento que hace salir una notificación. Se queda aprox. 30 segundos en SmtpStatus=127 (enviando), y luego termina con SmtpStatus=-1  (falló el envío).

Y así indefinidamente los últimos 2 eventos: el primero sale, el segundo no sale.

Si vuelvo a repetir todo desde el paso 1, se repite todo exactamente igual.

He revisado mi código mil veces, y he llegado a la conclusión de que la función SmtpSend tiene que tener un bug tipo "toggle".

Tengo en uso la última versión de firmware disponible, y también el ultimo entorno de desarrollo.

Bueno, te dejo la inquietud.

Muchas gracias desde ya,
Pablo.

17
STX8081 / Sensor de temperatura
« : mayo 22, 2014, 13:45:33 pm »
Hola Boris, buenos días,

Estoy pensando en conectar un sensor de temperatura al PLC, y no me decido todavía cuál utilizar.
Estas son las opciones que he visto:
a- DS18B20: sensor tipo chip, salida serial digital 1-wire (este es el que más me gusta)
b- DHT11: sensor de temperatura y humedad salida digital serial
c- LM35: sensor tipo chip salida analógica

Hay alguno de los digitales (a,b) para el que ya se haya desarrollado el software Pawn de lectura?
El que más me gusta es el DS18B20, porque te permite poner varios sensores utilizando el mismo bit serial de lectura. Pero no estoy seguro si usando Pawn será posible hacer la lectura de dicho sensor.

Desde ya muchas gracias por tu opinión.
Saludos,
Pablo.

18
STX8081 / Dos consultas sobre sintaxis y funcionamiento en Pawn
« : marzo 24, 2014, 21:15:07 pm »
Hola Boris, qué tal ?   Tengo un par de consultas relativas a programación Pawn:

1) Las operaciones AND y OR tienen algun tipo de precedencia entre sí?
   Concretamente: La operación AND (&&) parece tener precedencia sobre la OR (||):

   if( (Condicion1) && (Condicion2) ||
       (Condicion3) && (Condicion4) ||   
       (Condicion5) && (Condicion6) ||
       (Condicion7) && (Condicion8) )
   {
      Accion
   }

   Si es como a mí me parece, entonces la expresión anterior se evaluará  "renglón por renglón", sin tener que ponerle un paréntesis a cada renglón, de la siguiente forma:

   if( ((Condicion1) && (Condicion2)) ||
       ((Condicion3) && (Condicion4)) ||   
       ((Condicion5) && (Condicion6)) ||
       ((Condicion7) && (Condicion8)) )
   {
      Accion
   }

   O sea que sería igual hacerlo de cualquiera de las dos formas. Es correcto ??


2) Estoy teniendo un problema con los temporizadores tipo Timeout, por el hecho de que todos los Timeouts "comparten" la misma función de servicio @OnTimeout(). El esquema es el siguiente:

Al comienzo del programa:

   // Inicializar los temporizadores tipo Timeout
   TimeoutInitEvent()
   
   // Lanzar el Timeout1 para enviar el primer email al cabo de 10 segundos
   Timeout1SetEvent(10)


En otra parte del programa:

   // En ciertas condiciones, prende una luz en RELAY3, temporizada con Timeout2
   if (Sensor_PIR == 1)
   {
      Forzar_RELAY3 = 1
      Timeout2SetEvent(60)
   }


Y esta es la función de servicio de todos los timeout:

@OnTimeout()
{
   // Comprobar si Timeout1 ha expirado: enviar el email de Power-On
   if(Timeout1Check() == 1)
   {
      email_accion = "ENVIAR EMAIL"
      SendMail = 1
      
      // Borrar el Timeout1 para que no se repita
      Timeout1ClrEvent()                    [1]
   }

   // Comprobar si Timeout2 ha expirado: Apagar la luz en RELAY3
   if(Timeout2Check() == 1)
   {
      Forzar_RELAY3 = 0
      
      // Borrar el Timeout2 para que no se repita
      Timeout2ClrEvent()                    [2]
   }

   return 0
}

Al principio, no tenía colocada ninguna de las 2 instrucciones [1] y [2], con lo cual se producía el siguiente efecto: al cabo del primer Timeout1, se enviaba el mail (bien), pero con cada disparo del Timeout2, además de prenderse (y apagarse) la luz en RELAY3, también
se despachaba un email (mal), debido a que Timeout1Check() quedó en "1".

Leyendo el manual, deduzco que cuando un TimeoutX finaliza, la función TimeoutXCheck() retorna "1" en forma permanente de ahí en más, hasta que se lo resetee.

Entonces agregué en ambos lugares [1] y [2] los correspondientes reseteos de los temporizadores, para que cada uno se ejecute solo una vez hasta que se lo regenere de nuevo. El problema que me hace ahora es que cuando se da la condición de prender la luz en RELAY3, ésta se prende bien, pero no se apaga más.

Es como que hay alguna interacción rara entre las funciones TimeoutXClrEvent().  No logro discernir si una influye sobre la otra, pero pareciera que Timeout1ClrEvent() borra Timeout1 y también el Timeout2, y viceversa.

Puede ser que haya un error de firmware ??

Desde ya muchas gracias y un gran saludo,
Pablo.

19
STX8081 / Consultas sobre uso del ModBus
« : febrero 27, 2014, 11:24:44 am »
Hola Boris, buen día,

Activé en mi aplicación las funcionalidades de ModBus, para poder hacer la lectura/escritura de parámetros al sistema en forma remota desde el celular. Por el momento hice las pruebas con el cliente ModBus que viene en el entorno windows, y anduvo de entrada.

Tengo las siguientes consultas:

a) No encontré an la AN22 las instrucciones necesarias para "Read Coils". Sí encontré las necesarias para leer GPCoils. De todas formas, pude convertir el estado de los RELAYx a variables, y leerlos a través de GPCoils. Pero me parece que está faltando la función que lee las Coils directamente ( direcciones 1 a 8 ). O yo estoy entendiendo mal...?

b) Como el objetivo buscado era el monitoreo y control via android desde el celular, instelé la aplicación sugerida, Modbus-Droid. La verdad es que es malísima (por algo es gratis). Solo permite leer las secuencias de registros, pero no tiene la posibilidad de asignarles una etiqueta a cada uno, no permite crear una pantalla con los registros que a uno le interesa, etc. Y lo peor de todo es que en la configuración solo se le puede asignar un número de IP. Pero cuando el IP es dinámico (como en mi caso), lo que yo necesito es poder cargar una dirección tal como: micasa.dyndns.org:puerto. Y eso no se puede hacer.
En síntesis: conocés algún otro cliente Android ModBus mejor?  Has experimentado algo desde el celular?
El que yo vi en Play Store y aparentemente es mejor es el "ModBus Master", pero es pago, y no hay forma de probarlo antes, para ver si funciona:
<https://play.google.com/store/apps/details?id=se.inux.android.mbmaster>

Saludos y muchas gracias desde ya,
Pablo.

20
STX8081 / Envío de emails
« : febrero 02, 2014, 19:17:27 pm »
Hola Boris, buenas tardes,

Antes que nada te cuento que el PLC que adquirí hace unos 45 días atrás funciona espectacular !  Es realmente una maravilla. Toda la programación la estoy haciendo en Pawn, ya que me resultó más agil que hacerla en el diagrama ladder. Aquí van las consultas que quisiera hacerte:

El único problema se me ha planteado ahora con las funcionalidades del envío de emails, que no las puedo hacer funcionar.
Primero hice un programa con 2 líneas: el SmtpInit, y SmtpSend, y no logré que nunca un email salga.
Probé con distintas cuentas: Yahoo, Arnet, y finalmente abrí una cuenta en AOL como se sugiere en el manual, pero siempre obtengo errores -4 (Error en proceso de Auth) o bien -11 (Error al enviar “.” para finalizar mensaje).
A continuación, por las dudas, utilicé el Ejemplo2.zip, al que le ajusté los parámetros de mis cuentas de email ... y tampoco logré que los emails salgan. Alguna sugerencia?  Has probado recientemente si funciona con Yahoo por ejemplo (me parece que Yahoo cambió sus mecanismos de autenticación recientemente, por eso probé con AOL, pero tampoco me funcionó).

Otra consultita: cómo sabés cuál es el tamaño del programa que uno ha implementado, y cuánta memoria de programa le queda libre al PLC?

Muchas gracias desde ya y nuevamente felicitaciones por tan buen producto.
Pablo.

Páginas: 1 [2]