Mensajes recientes

Páginas: [1] 2 3 ... 10
1
STX8091 / Re:Medición de corriente alterna con toroide
« Último mensaje por Soporte octubre 17, 2018, 16:46:02 pm »
Hola Boris, para calcular la corriente TrueRms del toroide conectado a la entrada analógica 4, usando el proyecto TrueRmsSampler.zip, se llena el buffer y llama a OnVin4BufFull la cual usa funciones para calculo(GetVoltagesum y GetVoltageRms). Si deseo calcular la corriente TrueRms de tres toroides conectados en tres entradas (4, 5, 6) sus respectivos buffers llamaran a   OnVin4BufFull, OnVin5BufFull y OnVin6BufFull. ¿puedo usar las mismas funciones (GetVoltagesum y GetVoltageRms) en las tres OnVinXBufFull o se superpondrán los datos en las Variable.

Buenas tardes Eduardo.

En principio si mal no veo, si podrías re-utilizar las funciones GetVoltageSum() y GetVoltageRMS(), ya que si te fijás por dentro de cada función no se utilizan variables globales o que estén fuera de la función, por lo tanto solo depende de sus argumentos.

Lo único, es que deberías crear para cada canal un nuevo set de variables globales del mismo tipo para almacenar los datos de cada canal, esto es:

Samples[] (array de 127 elementos), SamplesNumber, I_RMS, Sum y V_RMS.

Podes darle un nombre más representativo con el número de canal por ejemplo: Samples5, Sum5, SamplesNumber5, etc.

Cada una de estas variables, luego las conectas como argumentos a las funciones reutilizadas, de la misma forma que el ejemplo.



NOTA:

La función GetVoltageSum(), tiene una linea que depende del número de canal:

SampleVoltage = VinToVoltage(4, IN3, 8)

Que en este caso es "4", pero como solo se usa para convertir un valor en memoria a voltaje, no es necesario cambiarlo, siempre y cuando se utilice los canales 4,5,6,7 y 8, ya que comparten las mismas características.

Por otro lado, en diagrama Inicio.sld, recordá establecer el rango y activar el sampler para los otros canales a utilizar, tal como hace el ejemplo para el canal 4.

Saludos!

2
STX8091 / Re:Detención indeseada PLC
« Último mensaje por Soporte octubre 17, 2018, 16:23:22 pm »
Algo que me olvidé de sugerir para que pruebes, es llamar al siguiente comando al inicio del programa en PlcMain() por una sola vez:
 
Código: (Pawn) [Seleccionar]
   // Desactivar TCP split en stack TCP/IP.
   NetTcpSplitOff()

Utilizar tanto en el cliente, como en el servidor (es decir ambos PLC tienen que estar configurados con esta opción al iniciar para que se puedan comunicar).

Esto evita que el PLC divida los paquetes TCP para mejorar desempeño, pero que quizás con tu router este dando problemas.

Saludos!

3
STX8091 / Re:Detención indeseada PLC
« Último mensaje por Soporte octubre 17, 2018, 11:04:04 am »
Buenos días Mariano,

Se me ocurrió cambiar los puertos 81 y 82 a otros números y al parecer se solucionó la falla y no volvió a resetearse. Entonces le cargué el programa completo. (Sólo que en modo D1 me dejaba usar la mitad de la EEPROM). No hubo fallas. Lo que hice hace una hora, fue mudar todo de nuevo. PLC a D2, StxLadder a 1.9.3 etc. Lo estoy probando y te aviso. Al parecer el reset se origina por usar esos números de puerto... o bien por lo menos uno de ellos (calculo el 82 asignado al TCP) es el que causaba el problema...

No podría haber imaginado una solución de ese tipo, bastante extraño, a lo mejor ambos puertos deban estar un poco más separado para evitar algún conflicto. Pero intento comprender a que se puede deber, ya que no debería ser así.

Lo que sí sería conveniente es que el PLC de algún tipo de aviso ante este tipo de errores sin que el programa se llegue a bloquear y ser necesario un reset por watchdog de todo el PLC. Esto es a los fines de que no entren en juego los actuadores que dependen en todo momento de las distintas salidas.

Si, es que pudiendo reproducir la falla me seria más fácil entender el por qué. El manejo de comunicaciones por parte del PLC es una "tarea" independiente, por lo tanto es raro que si se "bloquea" detenga al resto de las actividades.

Es decir, si se cuelga en la "comunicación" y nunca devuelve el control al programa del PLC, es lógico que se te dispare el watchdog, ya que no lo podes alimentar.

Si se cuelga en la "comunicación", pero de alguna forma sigue respondiendo, por ejemplo si conectas StxLadder y lo interrogás para ver información menú "PLC > Configurar PLC", y responde, es porque de alguna forma no está totalmente bloqueado, pero falla al devolver el control al PLC.

Si no responde nada, es algún tipo de otra falla interna, como error de memoria o un error no contemplado.

Pero comentame como sigue.

Saludos!
4
STX8091 / Re:Medición de corriente alterna con toroide
« Último mensaje por Tama octubre 17, 2018, 09:50:24 am »
Hola Boris, para calcular la corriente TrueRms del toroide conectado a la entrada analógica 4, usando el proyecto TrueRmsSampler.zip, se llena el buffer y llama a OnVin4BufFull la cual usa funciones para calculo(GetVoltagesum y GetVoltageRms). Si deseo calcular la corriente TrueRms de tres toroides conectados en tres entradas (4, 5, 6) sus respectivos buffers llamaran a   OnVin4BufFull, OnVin5BufFull y OnVin6BufFull. ¿puedo usar las mismas funciones (GetVoltagesum y GetVoltageRms) en las tres OnVinXBufFull o se superpondrán los datos en las Variable.

Gracias Eduardo.
5
STX8091 / Re:Detención indeseada PLC
« Último mensaje por Mariano octubre 16, 2018, 17:55:37 pm »
Buenas tardes Boris

Te comento las últimas pruebas. Si bien el programa original anduvo un tiempo sin presentar fallas. Después de unas 7 u 8 horas comenzó a bloquearse cada intérvalos de 40 o 50 minutos mayormente y a veces llegaba a funcionar un par de horas hasta que se volvía a bloquear. Esto es, corriendo el programa original, con PLC en modo D1, firmware v200 e instalado con stxladder 1.8.2

Se me ocurrió cambiar los puertos 81 y 82 a otros números y al parecer se solucionó la falla y no volvió a resetearse. Entonces le cargué el programa completo. (Sólo que en modo D1 me dejaba usar la mitad de la EEPROM). No hubo fallas. Lo que hice hace una hora, fue mudar todo de nuevo. PLC a D2, StxLadder a 1.9.3 etc. Lo estoy probando y te aviso. Al parecer el reset se origina por usar esos números de puerto... o bien por lo menos uno de ellos (calculo el 82 asignado al TCP) es el que causaba el problema...

Voy a examinar más exhaustivamente la diferencias entre versiones, para determinar que puede haber cambiado y hacer algunas pruebas.

Con respecto a esto, tal vez no haya diferencias entre versiones, ni de D1 a D2 ni en los entornos de Stxladder. Dejame completar esta última prueba para no buscar la falla en vano.

Lo que sí sería conveniente es que el PLC de algún tipo de aviso ante este tipo de errores sin que el programa se llegue a bloquear y ser necesario un reset por watchdog de todo el PLC. Esto es a los fines de que no entren en juego los actuadores que dependen en todo momento de las distintas salidas.

Saludos

6
¡Buenos días usuarios!

Hoy adjuntamos en archivos ZIP, dos ejemplos para poder transmitir una cadena (string) a través del puerto serie (RS232 o TTL, según el modelo).

Requiere que actualice el firmware de su PLC a la última versión y utilizar StxLadder versión 1.9.5 o superior.

Ejemplo en Pawn:

Debe utilizar la función SerialSendStr(), por ejemplo para transmitir el valor de la variable Counter:

Código: (Pawn) [Seleccionar]
SerialSendStr("Counter = %d ", Counter)
Ejemplo en Ladder:

Debe utilizar el componente SerialSendStr. En el siguiente ejemplo se transmite la cadena "Counter = %d" cada 1 segundo, donde %d es remplazado por el valor de la variable Counter (que se incrementa en 1 por cada transmisión).



Prueba:

Puede utilizar el programa PuTTY, el cual es un terminal que puede funcionar en Windows/Linux y aceptar trasmisiones desde el puerto serie. Conecte el PLC a la computadora con un cable cruzado, conigure PuTTY para leer el puerto serie con los parámetros 9600 BPS, 8N1.

Al recibir la cadena "Counter = %d" cada 1 segundo desde el PLC, debería ver una pantalla similar a la siguiente:



PuTTY puede descargarlo desde:

https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

Saludos y buenas transmisiones!




7
STX8091 / Re:Detención indeseada PLC
« Último mensaje por Soporte octubre 16, 2018, 12:12:24 pm »
Buenos días Mariano,

En la última prueba que realicé pasé el PLC a modelo D1. Le cargué el firmware v200 y el programa inicial que tenía en servicio (sin uso de instrucciones para la memoria EEPROM) y volvió a funcionar todo normalmente sin fallas.

Para esto, tuve también que instalar stxladder versión 1.8.2 en lugar de la 1.9.3. Esta última no me dejaba compilar el proyecto inicial (el que estaba normalmente en servicio) por falta de memoria RAM.

Voy a examinar más exhaustivamente la diferencias entre versiones, para determinar que puede haber cambiado y hacer algunas pruebas.

¿Podrías enviarme por mail, el proyecto que cargás al PLC que te funciona?.

El proyecto que no te funciona, ¿supongo que es el mismo que ya me pasaste, no?.

Quería agregarte que en la configuración del router están asignados los puertos 81 al webserver y 82 al tcp server. Donde pide el tipo de puertos entre TCP y UDP está definido en las dos alternativas como Both (ambos). Habrá algún conflicto con los números de puerto asignados. (No hay ningún otro servidor virtual instalado como sistemas de alarma o vigilancia ni nada por el estilo)

No, esto no creo que sea un problema.

Saludos!
8
STX8091 / Re:Detención indeseada PLC
« Último mensaje por Mariano octubre 12, 2018, 16:32:25 pm »
Estimado Boris,

Según las últimas pruebas que estuve realizando, estoy en condiciones de asegurarte que los problemas de bloqueo y reset por wdt del programa que suceden en el PLC son causa de alguna anomalía en las instrucciones que corresponden al TCP server.

Al inhibir las instrucciones de definición del puerto y la de activación del evento tcp la falla desaparece.

En la última prueba que realicé pasé el PLC a modelo D1. Le cargué el firmware v200 y el programa inicial que tenía en servicio (sin uso de instrucciones para la memoria EEPROM) y volvió a funcionar todo normalmente sin fallas.

Para esto, tuve también que instalar stxladder versión 1.8.2 en lugar de la 1.9.3. Esta última no me dejaba compilar el proyecto inicial (el que estaba normalmente en servicio) por falta de memoria RAM.

Necesitaría si podés revisar en que puede radicar la falla para poder poner en servicio el proyecto completo. En principio se me ocurre que podría devenir de alguna diferencia en las intrucciones de declaración del server TCP y/o del evento de recepción de datos que son las que, desactivadas interrumpen la aparición del bloqueo. O bien, de algún error al realizar la "mudanza" de modelo de D1 a D2 del PLC para que de esta forma se permita la carga total del proyecto. 

Quería agregarte que en la configuración del router están asignados los puertos 81 al webserver y 82 al tcp server. Donde pide el tipo de puertos entre TCP y UDP está definido en las dos alternativas como Both (ambos). Habrá algún conflicto con los números de puerto asignados. (No hay ningún otro servidor virtual instalado como sistemas de alarma o vigilancia ni nada por el estilo)

Saludos
9
STX8091 / Re:Detención indeseada PLC
« Último mensaje por Soporte octubre 10, 2018, 12:50:51 pm »
Me dejará cargar todo el código incluso el que hace uso de la EEPROM?

Si no recuerdo mal, si; pero no escribas arriba de los 16KB de la EEPROM, ya que lo limita internamente el modelo.

Saludos!
10
STX8091 / Re:Detención indeseada PLC
« Último mensaje por Mariano octubre 10, 2018, 12:24:44 pm »
Otra prueba podría ser desconectar el cable ethernet, pero dejar solo el servidor web habilitado y ver si no se detiene. Luego conectar el cable ethernet y verificar.

Si... así estoy probando. Cable ethernet desconectado y webserver habilitado. Agregué código en el programa para que me avise por sms si se cuelga y hasta ahora no lo hizo. Pruebo conectarle el ethernet dentro de un rato.

Recordar que modelo D1 tiene mitad de memoria disponible, pero en firmware inferior a 211, no se comprueba que programa exceda limites y debería dejar cargar el proyecto original.

Me dejará cargar todo el código incluso el que hace uso de la EEPROM?

Gracias por el archivo.

Pruebo y te aviso

Saludos
Páginas: [1] 2 3 ... 10