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 ... 64
16
STX8091 / Re:Detención indeseada PLC
« : 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!

17
STX8091 / Re:Detención indeseada PLC
« : 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!

18
STX8091 / Re:Detención indeseada PLC
« : octubre 10, 2018, 10:46:30 am »
Buenos días,

Si no queda más alternativa voy a probar con el otro PLC pero espero para probar el cambio de D2 a D1.

Adjunto archivos para cambio de D2 a D1.

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.

La ultima prueba que hice fue desconectarle el panel sh300 y el puerto Ethernet y anular las sentencias que me indicaste además de las dos q hacían uso del panel.

No hubo reset pero habría que probarlo un par de días para tener certezas

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.

Saludos!

19
STX8091 / Re:Detención indeseada PLC
« : octubre 09, 2018, 18:50:57 pm »
La unica forma que tendria de corroborar que no se cuelgue seria por la "no indicacion de encendido" del led que se activa por reinicio de wdt. Ya que no podria acceder al webserver del plc. Pero hago la prueba y te aviso.

Claro, si, me llama la atención porque casi no te quedan cosas para desactivar en cuanto a software.

Pasamelo para probar ya que aparentemente no ha habido modificaciones en el circuito. Digo aparentemente porque en la caja metálica puesta a tierra donde se haya instalado el PLC no he cambiado nada y en lo que hace al resto de la instalación por lo que he podido revisar no encuentro ni cables cortados ni nada que me haga sospechar de algún desperfecto eléctrico en el circuito.

Bueno, ya te voy a pasar el archivo para pasar de D2 a D1.

¿Cabe la posibilidad de que remplaces el PLC por el del laboratorio?.

Saludos!

20
STX8091 / Re:ModBus TCP con dos PLC y un panel HMI
« : octubre 09, 2018, 11:22:47 am »
Cita de: Rodrigo
si en vez de leer entrada o escribir salidas quiero hacerlo en bits de GP, solo cambio la dirección verdad? en el caso de las lecturas las entradas 10001at16 las cambio por 4001at16 ? o si quiero escribir cambio 1at16 lo cambio por 4020at16 por ejemplo... 

Para escribir GP coils, utilizás el mismo componente del ejemplo, desde dirección 4001.

Para leer GP coils, debés remplazar el componente que lee las entradas en el ejemplo por el componente "MbClSendReadCoils".

El mismo se configurara igual que MbClSendReadDiscretes , solo que la dirección para GP-COIL es ADDR=4001 y QTY=16 (si pedís 16 bits).

21
STX8091 / Re:ModBus TCP con dos PLC y un panel HMI
« : octubre 09, 2018, 11:18:13 am »
Lo que estaba pensando es que en el caso de la aplicación con 3 PLCs + el panel, seria configurar únicamente como servidor al 8091 y clientes a los dos remotos (8092) para interactuar con el 8091... a la vez a los 8091 también como servidor para que el panel comande sobre ellos... y el bit de baliza estaría en el 8091 que seria leído por los dos 8092... que opinas? podrías ver un ejemplo asi?.

Buenos días Rodrigo. Buenas idea. He probado armar tres PLC con un HMI conectados por ModBus TCP, donde un PLC es servidor, y el resto, dos PLC y HMI son maestros.  Funciona correctamente, todos acceden al PLC servidor.

Hice una prueba rápida de prueba, luego tendré que emprolijar y subir los ejemplos.



La única diferencia, es que desde el HMI en este caso, a cualquier dirección de registro o bit que quieras leer o escribir en el PLC, debes sumarle 1. Por ejemplo, si querés acceder desde el HMI al GP-COIL 4064 en el PLC, debes accederlo como 4064+1=4065.

Se puede configurar el PLC para que no necesites esa consideración desde el HMI, pero entonces los otros dos PLC clientes, deberán hacer la misma consideración sumando 1 a la dirección. Esto se puede elegir, depende de como lo quieras. Capaz, que si queres mantener compatibilidad de diseño de HMI con proyecto actual, te convenga que los PLC sean los que incrementen en 1 la dirección.

Saludos!



22
STX8091 / Re:Detención indeseada PLC
« : octubre 09, 2018, 11:11:02 am »
Como el cable utp que conecta al router con el plc es algo largo (12 mts aproximadamente) voy a probar cambiarlo por uno blindado y puesto a tierra.

Si, puede ayudar.

Ahora, te recuerdo que este reset constante lo hace desde que cambié al plc a D2 y la versiones nuevas de stxladder y firmware.... será necesario que probemos volviendo a d1 y a algún firmware anterior para descartar que sea algún problema de las nuevas versiones?

Bueno, cabe esa posibilidad después de todo, lo que me llama la atención, es que corro tu programa y no presenta problemas.

Te puedo pasar para cambiar a modelo D1 y que pruebes.

Por otro lado, ¿te acordás que versión de firmware utilizabas sin problema?. Para verificar si hay algún cambio relacionado.

Saludos!

23
STX8091 / Re:Detención indeseada PLC
« : octubre 09, 2018, 11:04:14 am »
Con conexión desde afuera te referís a la entrada telefónica del router o a la entrada ethernet del PLC?

No, me refería a si desconectando el Ethernet tenias la falla.

Directamente desde este PLC no conmuto relé alguno. Lo único que tiene como periférico es un transductor de presión como entrada análógica, sus salidas a relé que cierran las entradas (digitales) de un kit arduino con transmisor de sms por gsm y un led indicador de reset por wdt. Y un pseudo led debug desde una de las salidas pwm usada como digital y otro led indicación de comunicación por enlace exitosa conectada a la otra salida pwm usada también como digital.

¿Por casualidad alimentás el kit Arduino u otro circuito con la salida de tensón +5D del PLC?.

La última prueba que hice ayer fue comentar o anular si se quiere
la llamada a los eventos

//TcpServerSetRxEvent()

y el de la pantaslla sh300

//MbRtuServInit(1, 9600, SERIAL_8E1, MB_RTU_INTERFACE_RS232);

Se sigue colgando el programa aunque anoche aguantó por lo menos 3 horas hasta donde pude ver. Esta mañana cuando abrí el webserver ya se habia colgado.

Fíjate de comentar también la inicialización del servidor TCP y desconectar el cable del SH-300 directamente.

Código: (Pawn) [Seleccionar]
// TcpServerInit(82, 30) 

24
STX8091 / Re:Detención indeseada PLC
« : octubre 08, 2018, 17:41:17 pm »
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.

No es mala idea, pero es una falla aleatoria de ese tipo, si es como la describís, puede ocurrir en cualquier momento y siempre en distinto punto del programa.

El programa no aparenta tener algo que salga fuera de lo común.

Creo que lo ideal seria ir eliminando funciones, para llegar al punto donde no se resetea.

Me inclinaría ha hacer la siguiente prueba, desconectando las salidas reles, tenes problemas?. Así descartamos ruidos eléctricos.

Por otro lado, desconectando la pantalla SH-300, tenes problemas?. La pantalla constantemente interrumpe al PLC, es algo que ya esta super probado, pero para descartar que la comunicación serie no esté interfiriendo de alguna forma con las operaciones que realizas.

Finalmente, es posible que en el PLC de prueba-servidor le conectes otro PLC-cliente y verifiques que todo te funciona sin problemas?.

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?

No lo descarto, pero no estoy seguro si es una falla de comunicación/programación o de ruido.

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?

No, no debería afectar la batería al funcionamiento.

25
STX8091 / Re:Detención indeseada PLC
« : octubre 08, 2018, 17:30:06 pm »
La última prueba que hice fue desconectar la antena del modem y aunque sigue bloqueándose y reseteandose por wdt. El intérvalo de tiempo entre bloqueos parece haberse prolongado desde los 5 minutos aproximadamente a los 60 minutos aproximadamente.

¿Sin conexión desde afuera, ocurre también el problema?.

¿Conmutas alguna bomba, o carga con rele, contactor, etc, igualmente?.

En el PLC que tengo encendido en laboratorio no se produce reset alguno en los tres día que está funcionando. Este está conectado al router en mi casa, pero no hay aquí antena que tenga que transmitir/recibir datos, por lo cual asumo que la ejecución del evento correspondiente @OnTcpServerRx() ha de ser mucho más rápida.

En @OnTcpServerRx() proba el siguiente código en remplazo de: while((Id=TcpServerGetUnreadId()) > 0)

Código: (Pawn) [Seleccionar]
for(new Count=0; ((Id=TcpServerGetUnreadId()) > 0) && (Count < 100); Count++)
Para evitar que si por algún motivo la función TcpServerGetUnreadId() devuelve siempre mayor a cero, no se bloqueé el código en el evento y dispare el watchdog.

Ya que es la única parte que veo que es potencialmente peligrosa.

El resto de las funciones que llamás dentro dentro del evento, no generan retardos, más allá de lo normal de ejecución del procesador.

Escribir en la EEPROM genera un pequeño retardo, pero es de 5 a 10 mS por cada operación.

Se me hace que es un problema de interferencia o "cuelgue" de algún evento...

El evento solo se activa al recibir datos desde el cliente, si no los recibe, no se ejecuta.

Pero sospecho de ruido eléctrico, ya que en el laboratorio no te da problemas, y acá si.

Las cargas como bombas, ¿las controlás a través de un contactor o relé?.

Saludos!







26
STX8091 / Re:ModBus TCP con dos PLC y un panel HMI
« : octubre 05, 2018, 20:53:28 pm »
Respecto a Consulta #2:

Buenas tardes Boris. Muchas gracias por el ejemplo y lo probe y todo ok... segun lo conversamos por mail, estoy necesitando comprar otro PLC para agregar a la red, un 8092 con un IP192.168.1.83... mi consulta es según el ejemplo, como haria con el segundo PLC servidor?... la aplicacion seria la misma, el 8091 tiene que leer y escribir en los dos 8092 segun los requerimientos solicitados en el panel.

Tendría que modificar un poco el ejemplo, ya que hay que hacer cambios de IP, para primero comunicarse con el PLC-2, y luego con PLC-3.
Dejame que haga unas pruebas para ver si conviene hacerlo así o de alguna otra forma, como por ejemplo utilizando el HMI como intermediario con los tres PLC configurados como servidor para simplificar.

Buen fin de semana.

Saludos!




27
STX8091 / Re:ModBus TCP con dos PLC y un panel HMI
« : octubre 05, 2018, 20:43:20 pm »
Buenas tardes Rodrigo, te respondo primero la Consulta #1:

* Eventos: no entiendo bien como aplican el concepto de los eventos y mas aun el "OnMbClientRx" porque en mis aplicaciones no los use! lo entiendo leyéndolo pero cuando se activan? es necesario el manejo ese de las librerías?

Un evento es algo simple, funciona como una "interrupción". Esto es, cuando por ejemplo un "evento" ocurre, se interrumpe al programa que esta ejecutando el diagrama Principal.sld y se llama al diagrama correspondiente para manejar al evento. Cuando se termina de ejecutar el diagrama del evento, se continua ejecutando el diagrama Principal.sld en el punto en que fue interrumpido.

Un evento puede ser un timer que expiró o una respuesta que llegó de una transacción ModBus TCP que realizaste como cliente.

Una transacción ModBus TCP como cliente puede tardar varios segundos si el servidor no responde inmediatamente, por lo tanto si tuvieras que esperarla, detendrías la ejecución de tu programa para esperar repuesta. Esto seria un inconveniente, entonces es mejor utilizar eventos, en ese caso seguís normalmente la ejecución de tu programa y el PLC te "avisa" cuando llega la respuesta, generando un evento el cual debes procesar.

Ese es el concepto.

El evento "OnMbClientRx" se llama cuando una transacción ModBus TCP como cliente finaliza, la misma puede finalizar porque recibiste repuesta del servidor o porque ocurrió un error. Por ello en el evento se comprueba el estado de la transacción.

En el ejemplo que te pasé, cuando el PLC envía una petición para leer las entradas DIN del esclavo, en el programa se activa un flag llamado "ReadDin" y otro llamado "WaitResponse", esto es para poder diferenciar cuando se finaliza la transacción en el evento a que tipo de operación pertenece la repuesta (ya que podes haber enviado para comandar las salidas DOUT). También el flag WaitResponse evita que mientras estas enviado una petición, la "pises" enviando otra petición al mismo tiempo sin antes haber esperado repuesta. Esto es una lógica que realizamos.

  - El "OnTimeout" seria un watchdog cada 5 seg?

Algo así, un "Timeout" es un timer que podes setearlo para que cada X segundos dispare el evento "OnTimeout" y luego en el diagrama asociado "OnTimeout.sld" ejecutas una lógica. El PLC admite hasta 5 timeout de este tipo. En este programa, suponemos que solo existe el Timeout1 porque no comprobamos los otros 4.

En el ejemplo, usamos el evento OnTimeout para cerrar conexiones del cliente ModBus TCP y limpiar flags. Esto es necesario para evitar que por algún error queden abiertas y/o no se ejecute el evento fin de transacción OnMbClientRx. Ya que recordar, que pedimos periódicamente mediante ModBus datos al PLC que esta configurado como esclavo.

  - El "OnTimer1" es un timer cada 500ms para realizar lecturas y escrituras?

Exacto, fíjate que hay una variable entera MbOpCount que es incrementada si "WaitResponse=0" (no hay transacción en curso o no se espera repuesta).  Si la variable MbOpCount es "1" se hace una petición para lectura ModBus de las entradas DIN remotas, si MbOpCount es "2", se envia escritura a las salidas DOUT remotas. Luego, es reiniciada a "1" para comenzar nuevamente el ciclo.

Siguiendo esta lógica, podes agregar que cuando sea "3" pida el valor de un registro por ejemplo, cuando sea 4 escriba un bit, etc.

Te envío los archivos míos... el panel opera sobre el 8092 con los arranques y paradas de las bombas y al 8091 solo que lea las entradas analógicas y las publiques en el panel, o sea que el panel se comporte como cliente/ maestro y los plc como servidores/esclavos...

No es mala idea, podes usar el HMI como intermediario, para pedir datos a un PLC y copiarlo a otro. Creo que simplificaría un poco la lógica, porque todos los PLC serian esclavos, y solo lees/escribís desde HMI, y no debes utilizar el PLC como cliente. Entiendo que esto se puede hacer.

La parte que implementaste como cliente, no es correcta, ya que no esperas el fin de transacción ModBus TCP con el evento, ni diferencias que operación estas realizando. Si usas el cliente ModBus TCP, mejor partir desde el ejemplo que te pasé.

solo hay una comunicacion de un bit entre los dos PLC, es una baliza  (llamado COMUNICACION) que tiene la función de resetear timers en el PLC remoto ya que si se cae el enlace de comunicación no podran parar las bombas, entonces si esa baliza no esta presente para resetear los timers en el remoto activa una señal física que detiene  las bombas...

Claro, como te comentaba en el párrafo anterior, este bit de "keep alive" podrías setearlo desde el HMI (leyendo PLC-1 y copiando a PLC-2) o desde el PLC-1 maestro enviando el bit al PLC-2 con una transacción ModBus TCP como cliente.

Avísame, y te puedo agregar a lógica del ejemplo que te pase, como setear un bit desde el PLC maestro al esclavo.

Saludos!




28
STX8091 / Re:Guardar registros a PC
« : octubre 04, 2018, 09:34:56 am »
Quedó funcionando todo a la perfección.

Necesitaría me pases para pasar a D2 los PLC que me quedan con números de serie: 10052 y 10025

Perfecto, adjunto upgrades para los S/N solicitados.

Saludos!

29
STX8091 / Re:ModBus TCP con dos PLC y un panel HMI
« : octubre 03, 2018, 21:31:07 pm »
Estimado Rodrigo,

Te paso los ejemplos para que pruebes la conexión entre dos PLC y un panel HMI por ModBus TCP.

Primero que nada, debes actualizar a la última versión de StxLadder (1.9.4) ya que los ejemplos contienen
algunas funciones nuevas y deben ser abiertos con la última versión:


http://www.slicetex.com/ladder/soft

Hay dos ejemplos, que paso a describir a continuación.



EJEMPLO #1:

Al PLC-1 (ejemplo STX8091-D2) debés cargarle este proyecto:

www.slicetex.com/docs/an/an021/TwoPlc/MbTcpMaster1.zip

Al PLC-2 (ejemplo STX8092-D1) debés cargarle este otro proyecto:

www.slicetex.com/docs/an/an021/TwoPlc/MbTcpSlave1.zip

El PLC-1 actua como cliente ModBus TCP (maestro) y se conecta cada 0.5 segundos al PLC-2 (esclavo o servidor) para pedirle el estado de todas las entradas DIN y para actualizar el valor de todas sus salidas DOUT.

El PLC-1 presupone que el PLC-2 tiene configurada la dirección IP número 192.168.1.82

Al PLC-1 se le ha agregado una lógica en el proyecto para que sea fácil interactuar con las entradas/salidas del PLC-2. Por ejemplo, en el PLC-1 accedes a todas las entradas DIN del PLC-2 con las variables rDIN1 a rDIN12 (notar que prefijo "r" es de remoto).

También, desde el PLC-1 podes controlar las salidas del PLC-2 escribiendo las variables rDOUT1 a rDOUT16 (notar que prefijo "r" es de remoto).

En el diagrama Principal.sld del PLC-1, tenes un ejemplo de aplicación que te muestro en la siguiente figura:



Como podés observar, si DIN6 en PLC-1 es igual a "1", se activa salida DOUT6 en PLC-2, ya que escribimos la variable rDOUT6.

Al abrir el proyecto, en el archivo info.txt tenés más información.

EJEMPLO #2:

Este ejemplo, permite conectar la pantalla HMI Kinco al PLC-1 a través de ModBus TCP.

Al PLC-1 (ejemplo STX8091-D2) debés cargarle este proyecto:

www.slicetex.com/docs/an/an021/TwoPlc/MbTcpMaster2_HMI.zip

Al PLC-2 (ejemplo STX8092-D1) debés cargarle este otro proyecto (el mismo del ejemplo #1):

www.slicetex.com/docs/an/an021/TwoPlc/MbTcpSlave1.zip

A la pantalla HMI Kinco debes cargarle este proyecto:

www.slicetex.com/docs/an/an021/TwoPlc/ModBusTcpTest1_HMI.zip

Una vez conectado el HMI, tenes esta pantalla principal:



Desde los "switchs" podes escribir las direcciones 4003 y 4004 en el PLC-1, que a su vez, desde el diagrama Principal.sld del PLC-1 leemos dichas direcciones y escribimos las variables rDOUT1 y rDOUT2, comandando de esta forma indirectamente las salidas DOUT1 y DOUT2 del PLC-2, como muestra la siguiente imagen:



Este es un ejemplo didáctico, ya que la pantalla la podes conectar al PLC-1 a tráves de RS232/485 para evitar usar el puerto Ethernet, o directamente desde la pantalla HMI comandar el PLC-2 si está en la misma red Ethernet.



Te recomiendo probar los ejemplos, y ver a rasgos generales lo que hacen ,leer archivos info.txt, para luego modificar para tu proyecto.

Quedamos a disposición por cualquier duda.

Saludos!






30
STX8091 / Re:Guardar registros a PC
« : octubre 02, 2018, 09:27:41 am »
Buenos días,

Necesitaría de una pequeña personalización mediante el entorno visual C#. Tenés algún link que puedas pasarme para descargarlo?

El link para descargar Visual C# ?.

La última versión 2017, podes descargarla desde Microsoft, es la versión "Community":

https://visualstudio.microsoft.com/es/vs/getting-started/

Necesitaría si es posible que me generes los archivos para pasar a D2 un Stx8091-d1 con el s/n=10022.

Te lo paso adjunto al upgrade para ese S/N.

Ese firmware que me pasaste para el anterior es el último verdad?

Si, una vez que lo actualizás a D2, podés descargar el último desde la página normalmente, la última versión es 217 a la fecha, si te muestra esa versión, es porque tenés el último.

Saludos!

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