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] 2
1
SH-300 / PLC No conmuta Salidas DOUT 1 y 2
« : noviembre 06, 2018, 07:52:49 am »
Que tal Boris buen día:

Te adjunto programas PLC 8091-D2 de nombre PruebaSH300 y programa de la pantalla de nombre "1".

Lo que intento hacer es presionando una tecla del panel conmutar la salida a rele correspondiente.

Conmutan la 3, 4 y 8 perfectamente pero la 1 y la 2 no lo hacen.
Los números de registros cargados en la pantalla son 6001, 6002 ... 6008.

Probé con 1, 2 ... 8 pero el relé enciende y se apaga inmediatamente después.

Las lámparas virtuales en la pantalla conmuntan bien, lo único que no funciona son las salidas 1 y 2.

Te paso los programas para que los pruebes haber si se te produce la misma falla.

Saludos

2
STX8091 / Detención indeseada PLC
« : octubre 06, 2018, 21:21:03 pm »
Buenas tardes Boris,

Tengo un problema de reinicio constante de un  PLC stx8091-d2 que hace de servidor para un único cliente remoto que por el momento es stx8091-d1. (Lo pasaré a D2 con el archivo que me pasaste).
El led debug parpadea en forma  normal y de repente queda encendido o apagado hasta cumplirse los 60 segundos asignados al watchdog.

La idea serìa sumar varios plc clientes más.

Adjunto proyectos cargados en el server como versión 20.0 y en el cliente como cl_casa_2

Estos plc se comunican por medio de un enlace parabólico. El puerto ethernet del server va a un modem/router y al mismo router el de la antena "access point". Son los únicos dos dispositivos conectados al router en este momento.

Desde el primer momento que se puso en servicio el sistema, se sucedieron detenciones esporádicas... (A veces se producían detenciones dos veces al día como también se ha dado el caso de no detenerse el programa en semanas) lo cual no influía en el desempeño del sistema sin dejar de ser indeseable por supuesto. Pero sucede que después de pasarlo a D2, actualizar firmware a versión 217 y cargarle las sentencias de uso de la EEPROM empezó a "detenerse el programa" en un período de tiempo indefinido que va entre los 5 y los 50 minutos según pude observar desde ayer a la mañana que estoy haciendo pruebas.

Comentarte también que el mismo proyecto lo tengo corriendo en un PLC del mismo modelo y también modificado a la versión D2 con el mismo firm 217 y programado con stx 1.9.3 en mi casa conectado a mi router. Accedo constantemente a ambos servidores (El que está en servicio y el que tengo a prueba) desde la dirección IP externa y el que está en prueba no presenta ningún problema y el otro sí.

Ya probé reiniciar reiteradas veces el modem/router y la antena y no doy con la falla.

La consulta sería como proceder para hallar el segmento de código que me está produciendo el "stop" del plc?

Había pensado en ir guardando en EEPROM números guías dentro del código pawn para acceder a él post reset y así intentar ver al menos en que punto del programa se produce la falla. Quería consultarte si tenés alguna herramienta o técnica que me pueda ayudar a aislar el problema.

Podrá caber la posibilidad de que algún problema de programación de más bajo nivel de la ejecución de sentencias o procedimientos sea responsable de estas paradas en el programa?

Este PLC está en servicio hace ya dos años y medio aproximadamente. Nunca le cambié la batería interna. Podrá ser causa del problema?

Saludos

3
STX8091 / Guardar registros a PC
« : septiembre 13, 2018, 12:26:47 pm »
Estimado Boris que tal,

Estuve leyendo el foro

http://foro.slicetex.com/index.php?topic=347.0


Me interesa implementar el recurso de descarga de datos por medio de la aplicación explicada.

Basicamente desarrollar un Datalogger de registros usando la aplicación en Visual C#.

Ahí se dice que la versión de dicho software debe ser la 2015 en caso de necesitar modificar el ejecutable.

Probe la aplicación y me funcionó sin problemas en windows 2010.

Consulta1: Será posible hacerla funcionar en windows 2007? y en xp?

Consulta2: Podrías pasarme unas líneas de código PAWN para guardar datos en la EEPROM de un PLCSTX8091-D1?

Consulta3: Por favor pasame a mi correo una cotización actualizada de un PLC PLCSTX8091-D2.

Saludos

Mariano

4
STX8091 / Array de registros por email
« : mayo 04, 2018, 13:47:07 pm »
Que tal Boris,

Será posible realizar el envío por mail desde el PLC de un array de registros?
Si es así te pido si podrías enviarme un código de ejemplo.
Los registros que quiero enviar deberían contener la hora de lectura y un valor entero de 0 a 300 por ejemplo:

11:53:48 || 201
12:03:48 || 199

Etcetera...

La idea general sería que una vez lleno un array capaz de almacenar 60 registros de este tipo se dispare un correo automático para almacenar esos registros.

Saludos

5
STX8091 / Enviar emails desde PLC stx8091-d1
« : mayo 02, 2018, 21:42:18 pm »
Buenas noches Boris,

Necesito implementar el envío de e-mails.
Cargué el ejemplo de la página en la última versión de stxladder con el PLC con firmware actualizado a versión 209 y tengo conexión al hmi virtual, sin embargo me da los errores -13 y -15 y no se realiza el envío del correo.
Que pasos me recomendarías seguir para buscar la solución?
Estoy utilizando el ejemplo MailExampleSimple2 con SMTP propio del PLC. Según HMI se intenta enviar el correo pero se producen los errores mencionados. Intento enviar el correo a una cuenta de hotmail.

Saludos

6
STX8091 / No puedo conectar el PLC a la PC (solucionado)
« : mayo 01, 2018, 11:48:24 am »
Feliz dia estimado Boris.

Intento conectar un PLC 8091-D1 a la PC y al conectar el cable de red
noto que no encienden los leds del puerto ethernet del PLC. Habrá algún problema de hardware?

Para probar intente realizar un seteo de parámetros a valores de fabrica y configurar a la placa de red de la PC para conectar con ip fija a puerto TCP/IP. Los leds del PLC

RTC - RUN ERROR - POWER ON

quedaron encendidos de forma permanente y ahi note que los del puerto ethernet no están enciendendo.

Saludos

7
STX8091 / Agregar nueva conexion RS485
« : febrero 11, 2018, 10:56:33 am »
Que tal Boris:

Resulta q ya tengo ocupados tanto el puerto ethernet como el RS232/485 para un panel HMI. Necesito conectar un nuevo dispositivo al PLC para lectura de datos via RS485. Que posibilidades existen bien para ampliar el PLC existente (agregando un nuevo puerto RS485) o será más factible la instalación de un nuevo PLC que realice especificamente la función de recibir estos datos.

Saludos

8
STX8091 / Consulta cambio versión stxladder de 1.7.5 a 1.8.2
« : agosto 31, 2017, 16:05:55 pm »
Hola Boris,

Resulta q al cambiar versión stxladder 1.7.5 a 1.8.2 el compilador me acusa errores de variables no definidas.

Errores q no surgen en la versión 1.7.5.

Estas variables se usan en una función escrita separada de PLC Main, pero están definidas dentro de PLC Main de la siguiente forma:

   new litros[60];
   new puntero_litros=0;

Al compilar me salta el error de que no están definidas.
Te envío una imagen de la captura de pantalla con la función Borrado.p y los errores que surgen al intentar compilar con 1.8.2

Existirá en esta nueva versión algún cambio en la sintaxis al definir variables globales?

Saludos




9
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

10
STX8091 / 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

11
STX8091 / 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

12
STX8091 / 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 $


13
STX8091 / 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


14
STX8091 / 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

15
STX8091 / 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

Páginas: [1] 2