Mensajes recientes

Páginas: 1 ... 6 7 [8] 9 10
71
STX8091 / Re:Comando CGI: $!+ ... $ con página dinamica (.shtml)
« Último mensaje por Soporte marzo 18, 2019, 16:47:16 pm »
Sin embargo, al cambiar "header.html" a "header.shtml" y agregando la funcion $!+ /header.shtml $ en cada una de las páginas del servidor, donde debiera imprimirse el string devuelto por el PLC en Pawn se imprime el texto "$! PrintStr n a $". Pareciera que el PLC no reconoce el comando CGI al agregar en el flujo de una página web otra página con el comando $!+ ... $.

Efectivamente, no es posible invocar un comando CGI dentro de un archivo que se llama con el comando $!+ ... $, ya que solo carga el archivo en el flujo de carga.

Lo que podes hacer es modificar con JavaScript el texto dinámicamente, como se se hace en los ejemplos 3 y 4 del servidor web.

Simplemente crea el HTML normalmente en el encabezado, y a un elemento de texto le das un "id" para poder manejarlo luego.

Código: (HTML) [Seleccionar]
<p id="Texto1">Texto web</p>
En este caso "Texto1" es el ID que te permitirá modificar el elemento <p> de la página HTML.

Luego, en un archivo JSON llamado strings.json, creas los strings que quieras enviar desde el PLC:

Código: (Archivo JSON strings.json) [Seleccionar]
{
"Texto1": "$! PrintStr 31 $",
"Texto2": "$! PrintStr 32 $"
}

Finnalmente, desde la sección <script> ... </script> de la página web, colocás el código JavaScript para leer el archivo JSON y reemplazar el "Texto1" en la página:

Código: (JavaScript) [Seleccionar]

<!-- SECCION JAVASCRIPT -->

<!-- Cargar libreria jQuery desde Google -->
<script type="text/JavaScript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.3/jquery.min.js"></script>

<script type="text/JavaScript">

// Esperar que pagina sea cargada completamente y llamar a DocumentReady()
$(document).ready(DocumentReady);

//
// DocumentReady(): Función llamada cuando la página se cargo completamente.
//

function DocumentReady()
{
// Actualizar valor de strings.
UpdateString();
}

//
// UpdateString(): Actualiza valores de strings en pagina.
//

function UpdateString()
{
// Obtener contenido dinámico de archivo con formato JSON.
// Llamar a funcion StringsDataReady() cuando los datos estén disponibles.
var JsonRequest = $.getJSON("strings.json", StringsDataReady);

// Asignar una función en caso de error al recibir datos.
JsonRequest.fail(StringsDataFail);;
}

//
// StringsDataReady(): Cuando los datos JSON son recibidos, actualizar valores.
//

function StringsDataReady(json)
{
// Datos JSON recibidos en argumento, mostrar valor de strings en página.
$("#Texto1").text(json.Texto1);
$("#Texto2").text(json.Texto2);
}

//
// StringsDataFail(): Cuando los datos JSON no son recibidos por error, mostrar mensaje.
//

function StringsDataFail()
{
// Error al recibir datos JSON, mostrar mensaje.
$("#Texto1").text("error, datos no actualizados");
$("#Texto2").text("error, datos no actualizados");
}

</script>


Este sería el código a grandes rasgos (no lo he probado).

El ejemplo WebServerPawn3.zip muestra la forma completa como hacerlo, pero en vez de un texto, imprime valores de variables de un contador y es de donde me basé para hacer esta repuesta, y que podés utilizar de punto de partida para una prueba.

Esta sería la opción. Pero recomiendo no complicar tanto el código si solo es mostrar una cadena, a menos que sea muy necesario.

Saludos!


72
Kinco / Re:No puedo transferir datos del PLC (maestro) a la pantalla (esclava) por RS485
« Último mensaje por foliva26 marzo 18, 2019, 14:34:25 pm »
Como hago para programar la HMI como esclavo?

saludos.

FO
73
Kinco / Re:No puedo transferir datos del PLC (maestro) a la pantalla (esclava) por RS485
« Último mensaje por Soporte marzo 18, 2019, 13:35:56 pm »
el tema es que no sé como hacer para poner a la pantalla como esclavo?, ya que mi compañero puso el plc como maestro.

Ah, ok.

Conectar el PLC a la pantalla con conexión Ethernet y evitar el RS485, para usarlas por separado, ¿no te sirve?, para eso hay ejemplos disponibles.

Sino decime, y puedo hacerte un ejemplo para comunicar el PLC como maestro a la pantalla configurada como esclava.

Saludos!
74
STX8091 / Comando CGI: $!+ ... $ con página dinamica (.shtml)
« Último mensaje por EBD marzo 18, 2019, 13:28:11 pm »
Buenos días,
Consulto por una duda que tengo sobre el comando CGI $!+ ... $ para un servidor montado en el PLC.

Como se sugiere en el ejemplo, utilizo en cada página del servidor el comando $!+ /header.html $ para agregar, en el flujo de carga de la página actual, un encabezado generico.
Sin embargo, ahora quiero que el encabezado sea de tipo dinamico (.shtml) para así poder utilizar el comando CGI $! PrintStr n a $ para imprimir en el encabezado un string que conoce el programa en lenguaje Pawn.
Sin embargo, al cambiar "header.html" a "header.shtml" y agregando la funcion $!+ /header.shtml $ en cada una de las páginas del servidor, donde debiera imprimirse el string devuelto por el PLC en Pawn se imprime el texto "$! PrintStr n a $". Pareciera que el PLC no reconoce el comando CGI al agregar en el flujo de una página web otra página con el comando $!+ ... $.

Quisiera saber si esto es posible de hacer y si estoy utilizando correctamente las funciones.
Gracias.
75
STX8091 / Re:Acceder a memoria EEPROM como archivo a través de internet (web)
« Último mensaje por Soporte marzo 18, 2019, 13:23:36 pm »
Subimos otro ejemplo para acceder a los datos de memoria EEPROM y procesarlos.

Este ejemplo permite:

  • Procesar todos los datos EEPROM y mostrar en una tabla HTML
  • Procesar todos los datos EEPROM y generar una descarga en archivo CSV.
  • Procesar todos los datos EEPROM y generar una descarga en archivo TXT.

Este nuevo ejemplo, permite bajar la dependencia de un programa externo para el procesamiento de datos.

El ejemplo para el PLC en lenguaje Pawn se puede descargar desde el siguiente enlace:

www.slicetex.com/docs/an/an030/files/EepromWeb2.zip

Leer archivo info.txt incluido en el proyecto para más información y explicación detallada.







Saludos!

76
Kinco / Re:No puedo transferir datos del PLC (maestro) a la pantalla (esclava) por RS485
« Último mensaje por foliva26 marzo 18, 2019, 12:16:23 pm »
Buen Día, soy compañero de Seba Riera, estamos en el mismo proyecto. Yo programé la pantalla, en realidad, está como maestro; ya que por lo general, la pantalla siempre se la coloca como maestro.

el tema es que no sé como hacer para poner a la pantalla como esclavo?, ya que mi compañero puso el plc como maestro.

saludos.

FO
77
Kinco / Re:No puedo transferir datos del PLC (maestro) a la pantalla (esclava) por RS485
« Último mensaje por Soporte marzo 18, 2019, 11:00:52 am »
Buenos días , adquirimos tres módulos PD3060 con la pantalla Kinco 4532 y el PLC8091. Lo que hemos echo es configurar el PLC como maestro y en primer lugar leer todos los valores de las PT100 , luego envío esos valores a la pantalla y le digo que los guarde a partir de la dirección 40036 con el siguiente comando MbRtuClSendWriteMultReg(4,40036,6,gai_PT100_1)... Ahora cuando queremos programar la pantalla para que busque en su registro 40036 el valor de la primera PT100 y lo muestre no sabemos cómo se debería hacer. Parece que la pantalla pide al PLC leer esos datos como si fuera maestra también y sale un error PLC no responde. Estamos usando para comunicar Modbus RTU por RS485 2 cables.

Buenos días, no había probado la pantalla como esclava, pero da la impresión de que sigue siendo maestra por el tipo de error.

¿Cómo estás programando la pantalla?. ¿Podrías compartirme el proyecto de la pantalla para ver la configuración?.

Saludos!
78
Kinco / No puedo transferir datos del PLC (maestro) a la pantalla (esclava) por RS485
« Último mensaje por SebaRiera marzo 16, 2019, 12:15:28 pm »
Buenos días , adquirimos tres módulos PD3060 con la pantalla Kinco 4532 y el PLC8091. Lo que hemos echo es configurar el PLC como maestro y en primer lugar leer todos los valores de las PT100 , luego envío esos valores a la pantalla y le digo que los guarde a partir de la dirección 40036 con el siguiente comando MbRtuClSendWriteMultReg(4,40036,6,gai_PT100_1)... Ahora cuando queremos programar la pantalla para que busque en su registro 40036 el valor de la primera PT100 y lo muestre no sabemos cómo se debería hacer. Parece que la pantalla pide al PLC leer esos datos como si fuera maestra también y sale un error PLC no responde. Estamos usando para comunicar Modbus RTU por RS485 2 cables.
79
STX8091 / Re:Acceder a memoria EEPROM como archivo a través de internet (web)
« Último mensaje por EBD marzo 15, 2019, 17:45:06 pm »
Buen dia,
Excelente. Como siempre la respuesta de parte de ustedes es rápida y de suma utilidad. Es justo lo que estaba buscando y la implementación muy sencilla de usar.
Gracias.
Saludos.
80
STX8091 / Re:Proyecto C# EEPROM
« Último mensaje por Mariano marzo 15, 2019, 16:06:19 pm »
Buenísimo Boris, muy útil.
Cuando tenga un tiempo lo pruebo...

Saludos

Páginas: 1 ... 6 7 [8] 9 10