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.


Mensajes - Soporte

Páginas: 1 [2] 3 4 ... 52
16
STX8091 / Re:Activar rele en otro PLC por tcp/ip
« : diciembre 04, 2017, 21:51:35 pm »
Estimado Esteban,

Creo que la mejor manera de hacerlo es a través de ModBus TCP, ya que tiene funciones para escribir/leer registros/bits, desde el cliente al servidor.

Disculpe la demora, estaba trabajando en hacerle un ejemplo básico para orientarlo.

Lo estaré publicando en cuanto lo termine.

Saludos.

17
STX8091 / Re:Como conectar un sensor de temperatura/presion 4-20 mA
« : diciembre 04, 2017, 11:31:42 am »
No, Boris no funciona. La necesidad es la siguiente:
"Un contactor abre y cierra sus contactos bajo los comandos SET & RESET, yo necesito que cuando sea SET actué en una bobina y cierre sus contactos (1 bool) y cuando sea RESET abra sus contactos. (0 bool)".

Si mal no entiendo, se me ocurre que podes hacer lo siguiente:



En este caso, si Variable es 1, bobina DOUT cierra contactos. Si Variable es 0, bobina DOUT abre contactos.

Podes hacer que funcione a la inversa también.

18
STX8091 / Re:Como conectar un sensor de temperatura/presion 4-20 mA
« : diciembre 01, 2017, 11:35:51 am »
Si, asi mismo es.
Por favor que debe hacerse para que corresponda la salida Slda5 proveniente de un arreglo SET & RESET, y que corresponda en comportamiento bool a una salida DOUT-X

Entonces debes usar una bobina normal abierta para comandar DOUT, como te puse en la siguiente imagen:



La bobina que usas es una SET, no una normal abierta, por eso siempre te queda cerrada cuando la condición es verdadera.

¿Ahora, con esta bobina que te puse en la imagen, no te funciona? ¿Por qué?.

19
STX8091 / Re:Como conectar un sensor de temperatura/presion 4-20 mA
« : noviembre 30, 2017, 11:05:07 am »
Si la salida es set = 1 y reset = 0 correcto. (cerrando o abriendo la bobina Slda5)
El contacto NA Slda5 (E013) que debe cerrar y abrir la bobina DOUT1 (E012), no se comporta de la misma manera; se queda en 1 (cerrado).

Yo requiero que sea proporcional si hay un set sea un 1 y reset 0.... Tal vez estoy en un error y esta aplicacion por ahi no es.

A ver si comprendo, entonces ¿vos querés que si variable Slda5 es "1", DOUT sea "1" y si Slda5 es "0", DOUT sea "0"?.

20
STX8091 / Re:Como conectar un sensor de temperatura/presion 4-20 mA
« : noviembre 29, 2017, 16:21:20 pm »
De esa manera no hay problema, pero no es asi como lo necesito------ tienes alguna solución para la aplicación del diagrama que pase...es de ahi que necesito que el contacto abra y cierre, dependiendo de una bobina set/reset.

Es que no comprendo cuál es el resultado deseado.

En el diagrama que me pasaste la variable Slda5, puede adoptar el valor "0" o "1" según valor de VIN.

Luego lees la variable Slda5 y si es "1" con una bobina SET aplicas "1" a DOUT1.

Eso hace tu diagrama.

Bien, ¿Como querés que se comporte?.

Explícame mediante valores, como querés que se comporte la salida.

Saludos

21
STX8091 / Re:Como conectar un sensor de temperatura/presion 4-20 mA
« : noviembre 29, 2017, 13:18:35 pm »
Boris realice este ejercicio y no responde como tal......

Para que active/desactive la salida deberías usar una bobina normal abierta como te puse en la imagen:



Saludos

22
STX8091 / Re:Como conectar un sensor de temperatura/presion 4-20 mA
« : noviembre 29, 2017, 12:06:43 pm »
Buen dia. Por favor, requiero abrir y cerrar un contacto a partir de una salida set y reset. ( ejm: la salidad DOUT1 esta configurada con set y reset; necesito que un contacto de bobina DOUT1 dentro del programa abre y cierre), puedes pasarme un ejemplo?.

Buenos días, no queda claro la formulación de la pregunta.

Si mal no entiendo, lo que podes hacer es guardar el estado en una variable "BOOL" y luego desde un contacto normal abierto leer dicha variable para activar con una bobina la salida DOUT1.

Ejemplo:



Saludos



23
Quiero desde mi pagina web que esta montada en la misma red que el PLC quiero poder ver el estado de una entrada y comandar una salida, en algun lado vi que eso se podia hacer pero no lo encuentro. Yo utilizo vb.net con asp para programar la pagina web.

Y lo que necesito es cuando pulsen un pulsador le envian la señal al plc y el otro operador la puede visualizar en la pagina web de la empresa y puede si lo desea activar una salida.

Buenos días Esteban,

Lo que te recomiendo es usar el PLC como servidor web también, de tal forma de poder comunicarte con el mismo de forma natural desde el otro servidor web de la PC.

Obtener datos del PLC (Servidor Web) desde PC (Servidor Web)

En este caso, por ejemplo podrías utilizar el formato de archivo JSON que es bastante conocido, generalmente se usa con Javascript desde la página web, pero en VB.Net también es posible como muestra este link.

En el servidor web del PLC debes crear un archivo JSON con los valores de las entradas DIN, como muestra el ejemplo para descargar en la nota de aplicación:

http://slicetex.com/docs/an/an030/files/WebServerPawn4.zip

Si abrís el proyecto, podrás ver un archivo llamado din.json:

Código: (DIN.JSON) [Seleccionar]
{
  "Din":
  [
{"Value": "$! PrintStr 1 $", "Image": "$! PrintStr 2 $" },
{"Value": "$! PrintStr 3 $", "Image": "$! PrintStr 4 $" },
{"Value": "$! PrintStr 5 $", "Image": "$! PrintStr 6 $" },
{"Value": "$! PrintStr 7 $", "Image": "$! PrintStr 8 $" }
  ]
}

Cada "$! PrintStr x $" es un comando CGI que es reemplazado por un valor de texto (por ejemplo estado de entrada DIN) cuando lo accedes desde un navegador o lo pedís desde una conexión. Es decir, es una página dinámica con formato JSON.

Entonces, por ejemplo, si cargás el ejemplo en el PLC y accedes con el navegador a la página JSON:

http://192.168.1.81/din.json

Obtenés:

Código: (DIN.JSON) [Seleccionar]
{
  "Din":
  [
{"Value": "0", "Image": "/l0.gif" },
{"Value": "0", "Image": "/l0.gif" },
{"Value": "0", "Image": "/l0.gif" },
{"Value": "0", "Image": "/l0.gif" }
  ]
}

Notar como cada línea representa el estado de una entrada DIN (DIN1, DIN2, DIN3 y DIN4) y los comandos "$! PrintStr x $" fueron remplazados por su valor equivalente.
El campo Value tiene el valor de la entrada, y el campo Image una imagen asociada (led activado/desactivado).

Si activas una entrada Value será "1".

Este formato JSON podes procesarlo fácilmente desde tu Servidor Web en VB.NET.

Te recomiendo cargar el ejemplo al PLC e intentar obtener desde VB.NET el archivo din.json del PLC, procesarlo y mostrar en tu página el resultado. Podes cada 1 segundo pedir el archivo o realizar un refresco.

En el PLC luego podes crear diferentes archivos JSON con valores dinámicos de diferentes grupos.

Te dejo un link a JSON:

https://geekytheory.com/json-i-que-es-y-para-que-sirve-json/

https://msdn.microsoft.com/es-es/library/bb412179(v=vs.110).aspx

Enviar desde PC (Servidor Web) a PLC (Servidor Web)

En este caso también podes usar el servidor web del PLC y cargar el ejemplo 2 (que es más simple de entender):

http://slicetex.com/docs/an/an030/files/WebServerPawn2.zip

Para enviar datos al PLC debes usar una petición POST al PLC de la misma forma que harías con cualquier otro servidor web para enviar un formulario web con datos.

En el ejemplo, los campos usados para activar/desactivar con un formulario POST, son:

Form = Outputs (Para indicar formulario que activa salidas, esto de acuerdo al ejemplo)
DO1 = X (donde X es 1 o 0, para el valor de la salida DO1)

Y así para DO2, DO3 y DO4.

En HTML desde tu servidor web podrías hacer un formulario HTML simple (ejemplo out.html en tu server):

Código: (HTML) [Seleccionar]

<html>
<body>

<form action="http:/192.168.1.81/outputs.shtml" method="post">
<input type="hidden" name="Form" value="Outputs">
<table id="tOutputs">
  <tr>
    <th>SALIDA</th>
    <th>VALOR</th>
  </tr>
  <tr>
    <td>DOUT1</td>
    <td>
      <input type="radio" name="DO1" value="0" checked> OFF
      <br>
      <input type="radio" name="DO1" value="1"> ON
    </td>
  </tr>
</table>
<br>
<input type="submit" value="Actualizar" class="update">
<br>
</form>

</body>
</html>


Esto te crea un formulario botón tipo "radio", que cuando lo envias al PLC, hace una una peticion post (ver en código arriba que se conecta a página del PLC "http:/192.168.1.81/outputs.shtml"), y envia dos campos: Form = Outputs y DO1 = 1.

Con VB.NET también podes hacer peticiones POST y enviar campos:

https://msdn.microsoft.com/es-es/library/debx8sh9(v=vs.110).aspx

No utilizo VB.NET ni ASP, pero te pase los primeros links que encontré sobre el tema.

Saludos






24
STX8091 / Re:Leer o escribir a SQL server express
« : noviembre 21, 2017, 19:42:27 pm »
Buenas tardes. Perfecto si para hacerlo asi lo entendí lo único que me faltaría es alguna aplicaron que lea los datos de una web. Porque todo lo que vi en la AN032 es para enviar datos y no para tomar registros, eso es asi ? O estoy mirando mal ?

¿Es decir lo que necesitas es leer datos o respuesta de una página web?.

Podes usar la función Pawn HttpSendGetBodyData() o el componente análogo en Ladder.

La misma almacena los primeros 308 bytes recibidos del cuerpo de una página web (la parte que se visualiza).

Podes crear una página donde por ejemplo en los primeros bytes tenga por ejemplo alguna palabra y procesar luego el buffer con los datos recibidos.

Es decir, por ejemplo, usas PHP o HTML (si no es dinámica) en el servidor para que la página registro1.php tenga en su primera linea la información a leer y luego desde el PLC, haces una petición GET a registro1.php. El PLC se conecta como si fuera un "navegador" y obtiene la página.

Esa es una forma.

Otra alternativa es hacer la forma inversa:

Podes activar el PLC como servidor web (ademas de ser cliente), y desde el servidor web de la PC mediante PHP envías una petición POST al PLC con algún dato númerico (por ejemplo). El PLC lo recibe y lo procesa. Esta forma es más simple desde el punto de vista del PLC o más prolija porque ya tiene los mecanismos y no tenes que procesar buffers. Necesitas conocer la dirección IP del PLC.

Avísame si no comprendés el concepto.

Saludos.

25
STX8091 / Re:Leer o escribir a SQL server express
« : noviembre 21, 2017, 11:06:23 am »
Recién leo que pusiste SQL server express, no se si es un servidor independiente sin acceso web, pero en general se usa SQL en conjunto con un servidor-web, que es para donde esta enfocado la nota de aplicación AN032 comentada.

Por ejemplo, viene soft listo para utilizar, un ejemplo es UwAmp, podes bajarlo en:

https://www.uwamp.com/en/

Con UwAmp al ejecutarlo, tenes en tu PC un servidor Web + SQL (MySQL) + PHP.

Es muy fácil experimentar y además te sirve de base por si luego querés migrar a un servidor en algún hosting pago (es la misma tecnología).

26
STX8091 / Re:Leer o escribir a SQL server express
« : noviembre 21, 2017, 10:54:14 am »
Hola Vi en una parte que con un post se puede enviar información y que había un scrip para enviar a sql. Lo que estoy necesitando es poder leer y escribir en una base de datos sql server valores tomados. Y escribir valores.

Buenos días Esteban,

Se puede indirectamente. Es decir, mediante el cliente web del PLC podes enviar una petición GET o POST al servidor web.

En una petición GET o POST podes enviar texto o valores.

Luego, en el servidor web tenes que manejar los datos recibidos, lo cual podes hacerlo con lenguaje PHP (que cualquier server soporta) y desde ese punto usas PHP para escribir la base de datos SQL.

La nota de aplicación AN032 te explica como enviar datos al servidor web utilizando el cliente web del PLC.

También explica un ejemplo de como capturar dichos datos con PHP en el servidor.

Te copio a continuación el script PHP que se expone en la nota de aplicación:

Código: (PHP) [Seleccionar]
<?php
 
// Obtener valores recibidos via HTTP GET.
 
$field1 $_GET["field1"];
 
$field2 $_GET["field2"];
 
$field3 $_GET["field3"];
 
$field4 $_GET["field4"];

 
// Obtener cadena de fecha/hora actual.
 
$datetime date("Y/m/d H:i:s");

 
// Armar cadena con datos recibidos.
 
$logString sprintf("Time: %s Field1: %s Field2: %s Field3: %s
 Field4: %s\r\n"
$datetime$field1,
 
$field2$field3$field4);

 
// Agregar cadena con datos recibidos al archivo log.txt.
 
file_put_contents("log.txt"$logStringFILE_APPEND);

 
// Responder con mensaje.
 
echo "Log OK! Hello from PHP!\r\n"
?>


El anterior script PHP, captura 4 valores transmitidos por el PLC y los almacena en un archivo de texto llamado log.txt en el servidor web.

Cada vez que recibe una peticion GET del PLC con datos transmitidos, los va almacenando en una linea nueva de log.txt:

Ejemplo:

Código: (log.txt) [Seleccionar]
Time: 2016/10/11 13:39:44 Field1: 0 Field2: 0 Field3: 0 Field4: 0
Time: 2016/10/11 13:40:14 Field1: 1 Field2: 2 Field3: 3 Field4: 4
Time: 2016/10/11 13:40:44 Field1: 2 Field2: 4 Field3: 6 Field4: 8
Time: 2016/10/11 13:41:14 Field1: 3 Field2: 6 Field3: 9 Field4: 12
Time: 2016/10/11 13:41:44 Field1: 4 Field2: 8 Field3: 12 Field4: 16
Time: 2016/10/11 13:42:14 Field1: 5 Field2: 10 Field3: 15 Field4: 20
Time: 2016/10/11 13:42:45 Field1: 6 Field2: 12 Field3: 18 Field4: 24
Time: 2016/10/11 13:43:15 Field1: 7 Field2: 14 Field3: 21 Field4: 28
Time: 2016/10/11 13:43:45 Field1: 8 Field2: 16 Field3: 24 Field4: 32
Time: 2016/10/11 13:44:15 Field1: 9 Field2: 18 Field3: 27 Field4: 36


En el caso anterior, el PLC cada 30 segundos envió al servidor web 4 campos field1, field2, field3 y field4, con valores numéricos que se incrementan.

A partir de dicho ejemplo (ver nota de aplicación AN032 ) te queda desde PHP insertar los datos en tu base de datos SQL en el servidor web.

Te dejo unos links sobre SQL y PHP:

http://aprende-web.net/progra/sql/sql_1.php

http://programacion.net/articulo/como_interactuar_con_una_base_de_datos_mysql_usando_php_141

Hay bastante información en google sobre PHP y SQL.

Saludos

27
STX8091 / Re:Como conectar un sensor de temperatura/presion 4-20 mA
« : noviembre 17, 2017, 17:53:06 pm »
3) Es posible imprimir todo un diagrama (pestaña) del programa? (tener en una imagen todo la programacion Ladder como si fuera adjuntada a un manual de usuario). En menu de herramientas, aparace un icono de "imprimir" pero no se encuentra habilitado.

Buenas tardes Jose,

Ya actualizamos StxLadder a la versión 1.8.4, la cuál permite exportar los diagramas a archivos de imágenes.

De esta forma podes luego incrustar dicha imagen en tu archivo WORD para realizar el manual o como soporte de documentación e imprimirlo.

La nueva opción está en el menú:

  • Archivo > Exportar > Como Imagen ... : Exporta toda el área usada por el diagrama a imagen.
  • Archivo > Exportar > Área visible como Imagen ...: Exporta el área mostrada o visible en pantalla a imagen.

Espero que le sea de utilidad y buen fin de semana.

Saludos


28
STX8091 / Re:Como conectar un sensor de temperatura/presion 4-20 mA
« : noviembre 16, 2017, 21:19:16 pm »
Estimado Jose, buenas tardes,

1) Es posible ver mediante la programacion de una tecla "Mx o' Fx", en la HMI el tiempo transcurrido de un temporizador?

Si. Primero debes obtener el tiempo transcurrido del temporizador y copiarlo en una variable, ya sea usando el componente "GET ET" o desde el mismo temporizador usando el puerto "ET". Luego imprimís dicha variable en el HMI como cualquier otra variable entera.

2) Es posible descargar el programa ya cargado del PLC al PC? o solo se puede del PC al PLC?.

Solo es posible transferir el programa desde la PC al PLC, no en sentido contrario.

3) Es posible imprimir todo un diagrama (pestaña) del programa? (tener en una imagen todo la programacion Ladder como si fuera adjuntada a un manual de usuario). En menu de herramientas, aparace un icono de "imprimir" pero no se encuentra habilitado.

Estamos trabajando para que pueda exportarse a un archivo de imagen el diagrama ladder, calculo que en estos días tendremos una versión actualizada de StxLadder con esa funcionalidad, así podes adjuntarlo en un manual.

Ver solución alternativa en siguiente respuesta.

4) Es posible o existe un componente contador para generar una parada total?. Ejemplo: 3 intentos de arranque automatico y luego parada total en un tiempo "X" despues hay que resetear para volver arrancar el equipo.

No, deberías implementar la lógica, hacer la cuenta y en caso que supere los intentos, bloquear al programa mediante una variable global que no permita entrar a la lógica común hasta que resetees el equipo. Ejemplo, una variable tipo "bool" que se llame TotalStop, y cuando sea "1" no se pueda ejecutar más nada.

5) Se requiere o existe un componente que pueda leer la diferencia entre dos variables y que el rango diferencial sea programable? (ya he usado los establecidos ">, <, >=, <="). (colocar el valor del diferencial).

Si no entiendo mal: ¿Un componente que lea dos variables, la reste y luego la compare con una diferencia?.

No, como tal no existe un componente así. A menos que hagas uno a través de una función Pawn, donde tengas 3 entradas y realices la comparación.

Luego podes reutilizar dicho componente llamando a la función Pawn tantas veces lo necesites.

Saludos

29
StxLadder - Slicetex Ladder Designer Studio / Re:TIME ALARM SET EVENT
« : noviembre 13, 2017, 13:28:02 pm »
Hola Buenos días. Si lo vi, pero si no mal veo cuando se corta la luz no tengo problema porque ya no me queda el contador bien ?

Una opción es que luego de iniciar, de acuerdo a la hora actual determines el valor del contador para activar la alarma correspondiente.

Ejemplo, al iniciar obtenés hora actual y mediante comprobaciones "if" en Pawn compruebes en que rango esta la cuenta de la alarma. Ejemplo, si la hora actual es antes de las 9 hs, le corresponde "1", si es antes de las 13 hs, le corresponde el "2", y así sucesivamente. Cargas de esta forma la variable del contador y luego estableces la alarma correspondiente inicial usando dicha variable.

Posteriormente el sistema funciona normalmente.

¿Me explico?

Saludos

30
StxLadder - Slicetex Ladder Designer Studio / Re:TIME ALARM SET EVENT
« : noviembre 13, 2017, 11:12:55 am »
Hola estoy necesitando agregar mas de 5 TIME ALARM SET EVENT. No hay alternativa de modificar para que me deje agregar mas ya que todos los otros programas que veia para utilizar y poder trabar con mas de 5 eventos corro el riesgo que si se corta la luz no vuelva a trabar correctamente. Yo por ejemplo ahora lo logro con temporizadores pero me pasa eso que cuando se corta la luz ya no respeta la proximo evento y lo mismo veia usando una entrada y colocando un mismo evento para varias horas.

Buenos días Esteban,

El sistema base es de alarmas no se puede alterar, ¿pero has probado extender el numero de alarmas como muestra el siguiente POST?.

http://foro.slicetex.com/index.php?topic=155.msg697#msg697

En el ejemplo se extiende la cantidad de alarmas, organizando las mismas en grupos, donde se muestra como crear 3 grupos de alarmas con 8 alarmas cada una, en total 24 alarmas.

La idea es que agrupes las alarmas en orden secuencial. Entonces, supongamos para OnTimeAlarm1 podes crear 8 sub-alarmas, organizadas en orden secuencial (señaladas por un indice) y a medida que se vayan activando, activas la siguiente alarma dentro del grupo.

Quedo a disposición por cualquier duda.

Saludos

Páginas: 1 [2] 3 4 ... 52