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 - Mariano

Páginas: [1]
1
SH-300 / Display encendido permanentemente
« : enero 20, 2017, 17:22:46 pm »
Que tal Boris,

El panel junto al plc opera perfecto según lo previsto.
Muy fácil de configurar.

Tal vez sea una consulta algo básica, pero en el manual original del SH300
no lo veo especificado y quiero salir de dudas.

¿Se puede dejar el display encendido en forma permanente sin que ello disminuya su vida útil?

Saludos

2
STX8091 - Familia PLC Cube / Dos consultas sobre C#
« : junio 05, 2016, 14:54:39 pm »
Que tal Boris,

Te paso dos consultas…
*******************************************************************
1- Iniciándome en Visual C# me aparece un error al incluír la línea de programa:

PioBoard = new Stx8xxx("192.168.1.81", 0, Stx8xxxId.STX8081);

Realizando lo indicado en la AN001, recién al incluír esta línea mencionada el Visual Studio me da un error al querer correr el programa; mediante el botón Start Debug…

Te adjunto los archivos como Zip, y las imágenes que me aparecen en el error.
Al PLC le cargué el proyecto adjunto en la nota de aplicación Udp.RX.

La aplicación en Windows luego del error queda corriendo y activa/desactiva correctamente la salida 1 en el PLC.

Además, si en Visual le genero la solución (como aplicación terminada)… el programa completo de prueba funciona sin errores aparentes activando/desactivando el relé del PLC.

(Imágen 1 en word adjunto)

Si yo le doy a “No”… el programa corre y funciona (al parecer normalmente)….

(Imágen 2 en word adjunto)

El problema aparece al cerrarlo para tratar de volver al entorno de Visual… lo cierro con la clásica X… pero el entorno queda como “colgado”….

Te paso los códigos para que los pruebes a ver si te suceden los mismos errores… al parecer queda algo “colgado” o un bucle infinito que no permite retornar el control al entorno…

Con un programa de prueba sencillo en C# no se me producen errores… es decir, corro mediante Start debug y al cerrarlo el entorno vuelve a responder normalmente…


/////////////////

Si en la imagen 1, le doy a “si” para depurar se me abre un aplicativo IntelliTrace en el que me informa luego que el error correponde a un desbordamiento de la pila….

No obstante el entorno también queda como en un bucle infinito..... cómo podría evitarse este error?

*******************************************************************
2- En la sentencia:

PioBoard = new Stx8xxx("192.168.1.81", 0, Stx8xxxId.STX8081);

Cómo sería la sintaxis para agregar una IP remota (no en LAN) ? por ejemplo

186.190.175.158:83

Esto sería para direccional un PLC fuera de la LAN, es decir conectado a un router o modem que realiza un fordwarding mediante el puerto 83...

El código PAWN del PLC también debería cambiar?

Te adjunto un word donde estan las imágenes y los codigos de programa...

Saludos

3
STX8091 - Familia PLC Cube / Guardar en EEPROM Fecha y Hora
« : mayo 05, 2016, 11:54:12 am »
Hola Boris,

Tendrás algún código de ejemplo para guardar en memoria EEPROM los datos de la fecha y la hora del RTC...?

Saludos

4
STX8091 - Familia PLC Cube / Entrada Analógica 4-20ma
« : abril 22, 2016, 09:56:12 am »
Estimado Boris,

Instalé otro PLC para suplir el funcionamiento del que daño la tormenta.
Le cargué el mismo código de programa y tengo un problema con el valor de corriente que me muestra al acceder al servidor del plc.

Dicha corriente es de 13ma. Mediante osciloscopio se ve que la señal no presenta ningún tipo de ruido.

El problema es que el server me muestra un valor de 33 ma....

Te paso el codigo de PLC main y del evento postprint.

Seguro es un error de programa pero no me doy cuenta cual... Te comento que el jumper 3 está colocado.

Por mail voy a pasarte la dirección IP actual de acceso para que pruebes.

En este momento estoy tratando de solucionarlo.
Re-leí de nuevo el manual Pawn en esta parte pero no encuentro el problema.

Probé desactivar el filtro pero sigue dando lectura de 33ma en lugar de 13ma (que es lo que mido).

Aguardo tu respuesta...

Te paso los códigos:

PLC MAIN::::

Código: (Pawn) [Seleccionar]

// --------------------------------------------------------------------------------
// Archivo      : PlcMain.p
// Titulo       : Script principal del PLC.
//
// Creado por   : StxLadder Version 1.7.2.
// Fecha        : 29/01/2016 07:59:31
//
// Descripcion  :
//
// Aqui puede describir su proyecto.
//
// --------------------------------------------------------------------------------

//{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{

// --------------------------------------------------------------------------------
// Archivo      : PlcMain.p
// Titulo       : Servidor TCP/IP ejemplo Cooperativa Oliva.
//
// Creado por   : StxLadder Version 1.7.0.
// Fecha        : 24/12/2015 10:58:44
//
// Descripcion  :
//
// Este ejemplo configura el PLC como servidor TCP.
// El mismo acepta conexiones en el puerto 48000.
//
// Comprueba la recepcion de dos bytes y de acuerdo al valor
// de los mismos, activa las salidas DOUT1 a DOUT2.
//
// Cuando los bytes son recibidos, responde al cliente enviando
// dos bytes con el estado de las entradas digitales DIN1 y DIN2.
//
// --------------------------------------------------------------------------------

//}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}


// ********************************************************************************
// Funcion     : PlcMain()
// Descripcion : Punto de entrada principal del PLC.
// ********************************************************************************


//{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
// --------------------------------------------------------------------------------
// VARIABLES GLOBALES
// --------------------------------------------------------------------------------

// Buffer de recepcion.
new RxData[10]

// Buffer de transmision.
new TxData[5]
//}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}

// Crear variable para almacenar corriente.
new Float: Corriente = 0;
new Float: V_alim_sens = 0;
new Float: V_alim_prom=0;
new cont_prom=1;

PlcMain()
{

//{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
   // Inicializar TCP Server.
   // Puerto: 82
   // Timeout Idle: 30 segundos.
   
 //  TcpServerInit(82, 30)
   
   // Activar evento para recepcion de datos de cliente.
 //  TcpServerSetRxEvent()   
//}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}   

   // Inicializar Web Server.
  WebServerInitialize();   // a este lo sigo iniciando en el puerto 82
   

   // Configuro rango Vin1 de 0 a 5 volt
VinSetRange(1, VIN_RANGE_5V); /// ver bien esto
VinSetRange(8, VIN_RANGE_10V); /// ver bien esto
//VinSetRange(4, VIN_RANGE_10V); /// ver bien esto
//VinFilterAOn(200,1000);
// VinFilterAOn(200,2000);

   // Aqui puede escribir codigo PAWN y llamar a otras funciones.
   
   for(;;)
   {
      // Loop principal.
   
  // Leer corriente de VIN1 y almacenar en variable "Current".
// 1Utilizar un resistor de 100 ohms como sensor de corriente.

Corriente = Float: VinToCurrent(1, 100);
V_alim_sens= Float: VinReadVolt(8);

//VinFilterAOff();

/*while(cont_prom<201)
{
V_alim_sens= Float: VinReadVolt(8);
V_alim_prom=V_alim_prom+V_alim_sens;
PauseUS(500);
cont_prom++;
}
V_alim_prom=V_alim_prom/200;*/

      // Delay Led.
      DelayMS(200)
      LedToggle()

   }

   // Retorno.
   return 0;
}

@OnTcpServerRx()
{
new Id

//
// Obtener conexiones con datos sin leer.
//

while((Id=TcpServerGetUnreadId()) > 0)
{
// Leer datos y almacenar en RxData[].
TcpServerRead(Id, RxData, 10)

//
// Comprobar si debemos activar/desactivar salidas digitales DOUT1 a DOUT2.
//

if(RxData[0] == 0)
{
DoutSetOff(DOUT1)
}
if(RxData[0] == 1)
{
DoutSetOn(DOUT1)
}

if(RxData[1] == 0)
{
DoutSetOff(DOUT2)
}
if(RxData[1] == 1)
{
DoutSetOn(DOUT2)
}

//
// Obtener estado de entradas Digigitales DIN1 a DIN2.
//

TxData[0] = DinValue(DIN1)
TxData[1] = DinValue(DIN2)
   
   // Enviar estado de entradas digitales al cliente usando el Id de la conexion
   // que recibio los datos.
   TcpServerSend(Id, TxData, 2)
}
}

// --------------------------------------------------------------------------------
// EOF
// --------------------------------------------------------------------------------


Evento OnPrintEvent:::::::

Código: (Pawn) [Seleccionar]

// --------------------------------------------------------------------------------
// Archivo     : OnPrintEvent.p
// Descripcion : Rutinas para procesar el evento @OnWebServerPrint().
// --------------------------------------------------------------------------------

// ********************************************************************************
// Funcion     : OnWebServerPrint()
// Descripcion : Evento llamado cuando el Web Server necesita imprimir una cadena
//               al cargarse una pagina dinamica.
//               Se deberia retornar lo antes posible de este evento, ya que
//               se procesa mientras la pagina se carga en el navegador.
// ********************************************************************************

@OnWebServerPrint()
{
//
// Obtener e imprimir el numero de cadena solicitada por el servidor.
//

switch(WebServerGetPrintNum())
{
//
// Procesar cadenas relacionadas a inputs.shtml
//

case 10:
WebServerPrintStr("%d", DinValue(DIN1))
case 11:
WebServerPrintStr("/l%d.gif", DinValue(DIN1))

// código agregado por mi para prueba
case 30:
//WebServerPrintStr("%3.3f", Corriente*12558)// Así lo muestra con 3 decimales
//WebServerPrintStr("%3.0f", Corriente*12558000)// Así lo muestra sin decimales
         WebServerPrintStr("%3.3f", Corriente/3)// Así lo muestra sin decimales en miles de litros
         //WebServerPrintStr("%3.0f", Corriente*12558)// Sensor nuevo FMK
case 31:
//{
WebServerPrintStr("%3.1f", V_alim_sens*12.25) //%f muestra un float con 1 decimales por defecto. Pág 67 de AN030
//cont_prom=1;
//V_alim_prom=0;
//V_alim_sens=0;
//}

//
// Procesar cadenas relacionadas a outputs.shtml
//

//         Bomba 1
case 20:
if(DoutValue(DOUT1) == 0)
{
WebServerPrintStr("checked")
}
case 21:
if(DoutValue(DOUT1) == 1)
{
WebServerPrintStr("checked")
}
//         Bomba 2
case 22:
if(DoutValue(DOUT2) == 0)
{
WebServerPrintStr("checked")
}
case 23:
if(DoutValue(DOUT2) == 1)
{
WebServerPrintStr("checked")
}
//         Bomba 3
case 24:
if(DoutValue(DOUT3) == 0)
{
WebServerPrintStr("checked")
}
case 25:
if(DoutValue(DOUT3) == 1)
{
WebServerPrintStr("checked")
}
//         Bomba 4
case 26:
if(DoutValue(DOUT4) == 0)
{
WebServerPrintStr("checked")
}
case 27:
if(DoutValue(DOUT4) == 1)
{
WebServerPrintStr("checked")
}
//         Bomba 5
case 28:
if(DoutValue(DOUT5) == 0)
{
WebServerPrintStr("checked")
}
case 29:
if(DoutValue(DOUT5) == 1)
{
WebServerPrintStr("checked")
}

case 40:
WebServerPrintStr("/l%d.gif", DoutValue(DOUT1))
case 41:
WebServerPrintStr("/l%d.gif", DoutValue(DOUT2))
case 42:
WebServerPrintStr("/l%d.gif", DoutValue(DOUT3))
case 43:
WebServerPrintStr("/l%d.gif", DoutValue(DOUT4))
case 44:
WebServerPrintStr("/l%d.gif", DoutValue(DOUT5))
}
}

// --------------------------------------------------------------------------------
// EOF
// --------------------------------------------------------------------------------



Y por las dudas.... el código html de la página del server virtual::::::

Código: (HTML) [Seleccionar]

$!+ /header.html $

<h2>COSP Oliva - División Agua Corriente</h2>

<center>

<table id="t_VT">
<tr>Volumen en Tiempo Real </tr>
<th>Volúmen [Lt X 1000]</th>
<td>$! PrintStr 30 $</td>
<tr>
<th>Vcc_Sensor[V]</th>
<td>$! PrintStr 31 $</td>
</tr>
</table>

<br>
</center>
<meta http-equiv="Refresh" content="10">
<!-- Recarga automáticamente la página Vol_T cada 10 segundos-->

<center>
<h3>Volver a <a href="/">pagina principal</a>.</h3>
</center>

$!+ /footer.html $


5
STX8091 - Familia PLC Cube / PLC Dañado - Reparacion - Soporte
« : abril 02, 2016, 13:11:53 pm »
Buenos dias....
Estimado Boris, despues de la tormenta electrica de ayer por la noche; al intentar reconectar el PLC hace un rato, no encienden los leds ni run ni el led debug que estaba parpadeando permanentemente. Al energizar el sistema se produce un ruido de reles... pero el PLC no presenta respuesta de ningun tipo. Ayer al empezar la tormenta lo desconecte de la red retirando el cable del tomacorriente para protegerlo (como vengo haciendo en todas las tormentas) ya que esta todo el sistema en desarrollo; y no queria arriesgarlo para poder seguir programando. Se habra dañado el PLC de todos modos? Venia funcionando a la perfeccion...

Saludos


Enviado desde mi SM-J110M mediante Tapatalk


6
STX8091 - Familia PLC Cube / Guía Básica C#
« : marzo 20, 2016, 11:35:16 am »
Hola Boris,

Donde puedo encontrar el documento STX80XX-GS-CSHARP: Guía Básica de C# mencionado en la AN001.

Saludos

7
STX8091 - Familia PLC Cube / Filtro Digital B
« : marzo 06, 2016, 12:04:08 pm »
Buenas:

Boris, el compilador me detecta como error cuando quiero incluír en el código las sentencias de activación / desactivación del filtro digital B:

                VinFilterBOn(200,2000);
      V_alim_sens= Float: VinReadVolt(4);
      VinFilterBOff();

En el programa también tengo el siguiente código

      VinFilterAOn(200,2000);
      Corriente = Float: VinToCurrent(1, 100);
      VinFilterAOff();

El cual activa sin problemas el filtro A.

El error que tira es:

Error del compilador PAWN: PlcMain.p(53) : error 017: undefined symbol "VinFilterBOn"

Saludos

8
STX8091 - Familia PLC Cube / Actualizacion remota código de programa
« : febrero 28, 2016, 10:13:30 am »
Hola Boris que tal,

Consulta: hay posibilidad de actualizar el código desde una ubicación remota? o vale decir sin tener conectado el PLC a la red LAN?

Saludos

Mariano

9
STX8091 - Familia PLC Cube / Comunicación remota STX8091-D1
« : febrero 02, 2016, 20:25:21 pm »
Que tal gente,

Tengo instalado el web server en un PLC STX8091-D1 y quiero tener acceso a él desde una
pc remota.

El PLC está conectado a un Router TP-LINK TL-WR740N. Mi pc está conectada al mismo
router.

Una vez cargado el programa al PLC, sucede que tengo acceso a su Servidor desde mi LAN pero no así desde otra pc (o léase: a través de Internet)

El plc tiene cargada la dirección IP 192.168.0.81 ya que la original de fábrica
(192.168.1.81) no me la aceptaba el router por ser una dirección que estaba fuera de su
rango.

Mi IP pública es dinámica... la averigüe en google y supongamos que es 186.XXX.174.YY

Configuré el router para que cualquier requerimiento en el puerto 80 sea derivado a la IP
192.168.0.81 del PLC.

Si hago un ping con el DOS desde la PC remota a la IP 186.XXX.174.YY, la transmisión
se realiza sin problemas aparentes.

Ahora cuando escribo la dirección de mi IP dinámica 186.XXX.174.YY en el chrome no
me accesa al servidor.

Que me puede estar fallando o faltando de configurar o chequear para lograr el acceso remoto?

Saludos

Mariano

10
STX8091 - Familia PLC Cube / Lazo de Corriente Compartido
« : enero 27, 2016, 10:19:10 am »
Hola Boris y gente del foro,

    Acerca del lazo de corriente existente con el sensor de presión y el display instrelec... la idea es que el monitor instrelec quede por el tiempo que va a llevarme desarrollar todo el proyecto para que la gente del agua corriente pueda sequir usándolo por ahora.
   Al agregar la entrada analógica del PLC, la lectura seguramente va a cambiar dado el incremento en 100 ohms del valor de la resistencia del lazo. Pero probablemente puede ajustarse la configuración del monitor instrelec para que siga mostrando los mismos valores aunque se agreguen 100ohms de resistencia al lazo. Además quisiera dejarlo temporalmente ya que el mismo provee de alimentación al lazo.

Lo que vós decis es que el lado negativo del lazo debe coincidir con AGND?

Voy a estudiar la nota de aplicación AN030 por el tema de la conexión remota.

Saludos

Páginas: [1]