Include

  • 14 Respuestas
  • 11227 Vistas

DavidFrancia

  • Novato
  • *
  • Mensajes: 8
Include
« : julio 16, 2012, 14:18:05 pm »
Buenos dias que tal? Estoy programando el primer ejemplo de la guia, el cual incluye un include haciendo referencia al include stx 8081.inc. cuando compilo me dice q no se encuentra el mismo, lo busque en la direccion de los include y efectivamente no se encuentra. de donde lo descargo? muchas gracias, saludos

Soporte

  • Global Moderator
  • Experto
  • *****
  • Mensajes: 2298
  • Soporte Técnico
Re: Include
« Respuesta #1 : julio 16, 2012, 14:35:18 pm »
Buen dia David,

El archivo se llama 'stx8081.inc' sin espacios, debes incluirlo en el codigo
con la sentencia:

#include <stx8081.inc>

El archivo se encuentra dentro de la carpeta donde instalaste el SDK,
en las subcarpetas 'pawn\include'.

Recorda agregar la ruta completa de esa carpeta en el
"Include Path" del Quincy, por ejemplo:

c:\Archivos de programa\stx8081\pawn\include

Confirmame si no lo encontras o te sigue apareciendo el error.

Saludos
« Última Modificación: julio 16, 2012, 15:23:41 pm por Soporte »
SOPORTE TÉCNICO

Slicetex Electronics
www.slicetex.com

DavidFrancia

  • Novato
  • *
  • Mensajes: 8
Re: Include
« Respuesta #2 : julio 16, 2012, 14:50:40 pm »
Si lo escribi sin espacios, y si lo busque hay muchos archivos .inc. pero el stx8081.inc no se encuentra

DavidFrancia

  • Novato
  • *
  • Mensajes: 8
Re: Include
« Respuesta #3 : julio 16, 2012, 14:53:08 pm »
Perdon ya lo encontre, lo que pasa es que yo vi solo la carpeta c:\Archivos de programa\pawn\include, no sabia que se encontraba c:\Archivos de programa\stx8081\pawn\include. Muchas gracias, cualquier cosa consulto

DavidFrancia

  • Novato
  • *
  • Mensajes: 8
Re: Include
« Respuesta #4 : julio 16, 2012, 14:58:43 pm »
Ahora si me arroja este error: #error "PLCMODEL no esta definido!. Ver manual usuario Modo PLC."

Soporte

  • Global Moderator
  • Experto
  • *****
  • Mensajes: 2298
  • Soporte Técnico
Re: Include
« Respuesta #5 : julio 16, 2012, 15:05:10 pm »
Eso se debe a que no tienes definido el modelo de PLC en el entorno Quincy:

Si tu modelo es A2 o C2, debes agregar en 'defines':

PLCMODEL=2

En el manual de usuario PLC, pagina 6 se explica. Configuralo
como dice el manual.

Recorda utilizar el Quincy como administrador para guardar los cambios.

Cualquier duda, quedo a tu disposicion.

SOPORTE TÉCNICO

Slicetex Electronics
www.slicetex.com

DavidFrancia

  • Novato
  • *
  • Mensajes: 8
Re: Include
« Respuesta #6 : julio 17, 2012, 15:02:45 pm »
Solucionado los problemas anteriores, al momento de compilar el siguiente codigo:

#include <stx8081.inc>

main ()
{
   new Pausa = 1000
   while (true)
   {
      //conmutar relay 1
      RelayToggle (RELAY1)

      //esperar 1000ms=1seg
      DelayMS (Pausa)
   }
}

me arroja el siguiente mensaje: warning 206: redundant test: constant expression is non-zero

Soporte

  • Global Moderator
  • Experto
  • *****
  • Mensajes: 2298
  • Soporte Técnico
Re: Include
« Respuesta #7 : julio 17, 2012, 16:17:02 pm »
El mensaje es un "Warning", que advierte "Atencion, test redundante, expresion
constante no es cero".

Se debe al: 'while (true)'.

Basicamente te advierte que el 'while' usa como condicion una constante
que nunca cambiara y por lo tanto siempre sera verdadero. Es
una comprobacion redundante.

No afecta al codigo, en este caso porque necesitas que nunca se salga
del 'loop' principal. Pero si fuera en otra parte, te advierte
que nunca sale del 'while' y te ayuda a corregir un posible error.

Una forma de evitar esa advertencia es con un 'for':

Código: [Seleccionar]
   for(;;)
   {
      // Loop principal.
   }
 

Pero te repito, es normal ese mensaje y es solo una advertencia.

Cualquier duda, quedo a su disposicion.
SOPORTE TÉCNICO

Slicetex Electronics
www.slicetex.com

DavidFrancia

  • Novato
  • *
  • Mensajes: 8
Re: Include
« Respuesta #8 : julio 19, 2012, 12:55:40 pm »
Una duda, ya cree el script con el codigo anterior. con el programa LoadScript cargue este script, es decir el archivo generado prueba.amx. pero el mismo no ejecuta la apertura y cierre del relay 1, que podria estar mal? muchas gracias

Soporte

  • Global Moderator
  • Experto
  • *****
  • Mensajes: 2298
  • Soporte Técnico
Re: Include
« Respuesta #9 : julio 19, 2012, 16:14:02 pm »
Deberia funcionar, te pregunto:

1) Estas utilizando el Quincy suministrado en el CD ?.

2) Estableciste en la configuracion del Quincy:

Misc. Options: -C-

Target host: (default)
Debug Info: None
Optimization: Full

Otra cosa que podes hacer, es cargar el ejemplo: "delay.amx"

Que se ecuentra en el directorio:

C:\Program Files\stx8081\pawn\examples\delay

El mismo ya esta compilado, y conmuta el RELAY1 cada 1.5 segundos.

Intenta cargar ese u otro ejemplo pre-compilado, para descartar error
de configuracion.

Avisame como te fue, asi seguimos.


« Última Modificación: julio 19, 2012, 16:19:04 pm por Soporte »
SOPORTE TÉCNICO

Slicetex Electronics
www.slicetex.com

Soporte

  • Global Moderator
  • Experto
  • *****
  • Mensajes: 2298
  • Soporte Técnico
Re: Include
« Respuesta #10 : julio 19, 2012, 19:38:07 pm »
Me olvide de recomendarte, de que te fijes si la placa se esta ejecutando en modo PLC (el jumper J1 no debe estar colocado). Saludos.
SOPORTE TÉCNICO

Slicetex Electronics
www.slicetex.com

DavidFrancia

  • Novato
  • *
  • Mensajes: 8
Re: Include
« Respuesta #11 : julio 20, 2012, 13:19:49 pm »
Hola muchas gracias, ahora si me funciono. una duda, siempre tengo q ejecutarlo en modo PLC? cuando lo utilizo en modo DAQ? ya que una vez que lo implemente ya no usare la pc, otra duda es: puedo instalar mas de un script en el PLC? gracias

Soporte

  • Global Moderator
  • Experto
  • *****
  • Mensajes: 2298
  • Soporte Técnico
Re: Include
« Respuesta #12 : julio 20, 2012, 13:36:29 pm »
La placa puede funcionar en un solo modo a la vez, modo DAQ o PLC.

Para ejecutar Scripts, debes utilizar modo PLC.

Para comandarla remotamente con una PC, debes utilizar modo DAQ.

Si lo que queres es enviar y recibir datos de la PC, utilizando modo PLC, tambien es posible,
te recomiendo leer la nota de aplicacion AN001:

http://www.slicetex.com.ar/hw/stx8081/docs/STX8081-AN_001.pdf

En cuanto a ejecutar mas de un script a la vez, a que te referis ?.

Podes utilizar varios archivos en la compilacion, pero el ejecutable serà uno solo.

Cada archivo, podes incluirlo en la compilacion con:

Código: [Seleccionar]
#include "archivo.p"
Podes hacer uso de las funciones del lenguaje PAWN, para crear modulos
independiente de codigo.

Te recomiendo leer la guia basica del lenguaje PAWN:

http://www.slicetex.com.ar/hw/stx8081/docs/STX8081-GS-PAWN.pdf

Cualquier otra duda, quedo a tu disposicion.


SOPORTE TÉCNICO

Slicetex Electronics
www.slicetex.com

DavidFrancia

  • Novato
  • *
  • Mensajes: 8
Re: Include
« Respuesta #13 : julio 24, 2012, 14:47:13 pm »
Estaba viendo lo que me dijiste, una consulta...podria diseñar una aplicacion web mediante C# la cual a traves de la libreira stx8081.dll pueda manipular el PLC? gracias

Soporte

  • Global Moderator
  • Experto
  • *****
  • Mensajes: 2298
  • Soporte Técnico
Re: Include
« Respuesta #14 : julio 24, 2012, 16:15:11 pm »
Podes diseñar una aplicacion C#para comunicarte con el PLC, como
indica la siguiente nota:

http://www.slicetex.com.ar/hw/stx8081/docs/STX8081-AN_001.pdf

En cuanto a hacer una aplicacion Web, es mas complicado, ya que no podes
interactuar directamente con C# desde una pagina Web.

Algunos usuarios utilizan codigo PHP que escribe en una base de datos
del servidor Web un comando, que luego es leido por una aplicacion C# ejecutandose
en una PC, para asi enviar a traves de la STX8081.dll los datos o comando al PLC.

Cualquier duda, quedo a tu disposicion.
SOPORTE TÉCNICO

Slicetex Electronics
www.slicetex.com