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 ... 72
1
Buenas tardes.

Lo que deberías es contemplar una lógica de STOP en tu código.

Por ejemplo, crear una variable llamada Emergencia o Parada, donde si es "1" la lógica del programa pone a la máquina en un estado de detención, y si es "0", opta por reiniciar el funcionamiento.

Si programás en Ladder, deberías comprobar esa variable en el programa, si es "1", aborta una secuencia o llamás a una función-diagrama (recomendado por prolijidad) en ladder donde pongas todas las salidas en OFF por ejemplo. Y el resto de la lógica no se ejecuta, porque espera que la variable vuelva a "0".

Para poner en "1" o "0" la variable de STOP, podes usar la lectura de una entrada digital DIN, ya sea leyéndola continuamente desde el diagrama Principal o desde un temporizador en un evento si querés.

Pero debés pensar la lógica de tal manera de contemplar que  el programa no continúe, si STOP es 1.

En lenguaje Pawn la idea sería similar.

¿No sé si me explico?

Saludos!

2
A partir de StxLadder versión 2.0.0, es posible programar en Lenguaje Ladder arrastrando Componentes y soltándolos en la posición deseada del diagrama Ladder, como muestra la siguiente captura de pantalla:




¡Esperamos que esto ayude a programar más fácilmente sus proyectos!  ;D 8)


3
A partir de la versión 2.0.0 de StxLadder y el último firmware instalado en el PLC, es posible habilitar la opción "Preservar la contraseña luego de restaurar memoria a valor de fábrica", localizada en menú "PLC>Configurar PLC>Pestaña Contraseña", como se muestra en la siguiente captura de pantalla:



Si esta opción está habilitada, le permite que la contraseña establecida en dispositivo se mantenga si luego realiza un FACTORY-RESET (restauración de memoria a valores de fábrica).

Esto puede ser útil si necesita que su equipo no pueda ser reutilizado por clientes u otro personal que no disponga de la contraseña válida una vez instalado. En estos casos, el equipo podrá ser reiniciado a fábrica, el programa del PLC se borrará, pero no podrá ser reprogramado sin la contraseña correcta, quedando inutilizado. Dicha opción puede ser muy útil para lograr exclusividad de mantenimiento  u operación de los equipos instalados.

ADVERTENCIA:

SI HABILITA ESTA OPCIÓN, GUARDE LA CONTRASEÑA EN UN LUGAR SEGURO Y CON COPIA DE RESPALDO, YA QUE SI LUEGO LA PIERDE NO HAY FORMA DE RESTABLECER LA CONTRASEÑA. SI POR ERROR LO REALIZA, DEBE POSEER FACTURA DE COMPRA A SU NOMBRE DEL EQUIPO (CONDICIÓN NECESARIA PARA EVITAR FRAUDE) Y ENVIARLO A NUESTRAS INSTALACIONES PARA QUE PODAMOS REPROGRAMAR EL EQUIPO Y DESBLOQUEARLO.
 

4
Es posible acceder remotamente desde la red local o internet (requiere configuración de redes) a la pantalla Kinco HMI con un cliente VNC, el cual se conecta a la dirección IP definida en el HMI y permite ver la pantalla para interactuar.

El cliente VNC que se puede utilizar es "VNC Viewer", disponible para Android (en PlayStore), Windows, Linux, etc.

Para Windows puede descargar desde el siguiente link:

https://www.realvnc.com/es/connect/download/viewer

CONFIGURACIÓN DEL HMI

Para habilitar al HMI cono servidor VNC y permitir que un cliente se conecte remotamente debe escribirse un "1" en la dirección LB 9290 local, esto se explica en el capitulo 15 del manual:

www.slicetex.com/hmi/kinco/files/Kinco_HMIware_User_Manual_EN_1506.pdf



Adicionalmente como se observa en la imagen de arriba, es posible también configurar una contraseña (Password) para el acceso remoto con los bits LB9292, LB9293, en combinación con los registros LW10145 a LW10149, los cuales pueden escribirse en la pantalla. Esto se deja como ejercicio y lectura desde el manual (ver Conclusiones abajo).

Una vez que se escribe "1" al registro LB 9290, ya se puede acceder con "VNC Viewer". Caso contrario no es posible.

Una forma simple escribir el "1" para realizar la prueba, es desde el software de diseño HMI Kinco ir a "Project Database > Schedule List > Add", en pestaña "Base info", tildar "Excecute on power on", destildar el resto de opciones. En pestaña "Control info" seleccionar "Bit set", luego "Mode Set 1", "Add Type = LB, Addr = 9290".

Este procedimiento se muestra en las siguientes capturas de pantallas:





Luego recordar colocar o definir una IP para la pantalla HMI desde las propiedades o atributos de la pantalla:



En este caso se colocó la IP 192.168.1.95.

Para los que quieran descargar el ejemplo anteriormente descripto, pueden hacerlo desde el siguiente link:

www.slicetex.com/hmi/kinco/files/examples/FirstTest_MT4532TE.zip

El ejemplo es para el modelo MT4532TE, pero puede cambiar a cualquier otro modelo desde la configuración del software.

Compilar proyecto y transferir al HMI.

ACCESO REMOTO AL HMI CON CLIENTE VNC

En "VNC Viewer", colocar la IP del HMI (por ejemplo 192.168.1.95) y si pide clave de acceso, dejar vacío el campo.

A continuación unas capturas de pantalla de acceso remoto desde Windows:







Finalmente, el acceso a la pantalla HMI como si estuviéramos al frente de la misma:



A continuación unas capturas de pantalla de acceso remoto desde Android usando un teléfono celular:






PROGRAMA DE EJEMPLO PARA PLC

Si el PLC que utiliza es de Slicetex, puede descargar el siguiente ejemplo para usar combinación con el programa cargado en el HMI y realizar la prueba rápidamente:

www.slicetex.com/hmi/kinco/files/examples/ModBusTcpHmiKinco.zip

Luego abrir con StxLadder y transferir al PLC.

CONCLUSIONES

La interacción remota en Android resultó ser más fluida que en Windows, recomendamos un celular o tablet de dimensiones similares a la pantalla.

Alternativamente existen clientes VNC para navegadores, en el manual Kinco explica algo (se puede acceder a la IP del HMI y puerto 5800 desde el navegador, ej: http://192.168.1.95:5800), pero nosotros no lo probamos ya que es mejor utilizar las versiones nativas de cada sistema operativo por ser más eficiente y requerir menos pasos de configuración.

El siguiente vídeo en Youtube muestra como configurar clave de acceso y otros detalles, si bien está en idioma vietnamita, es fácil ver el procedimiento visual con lo ya aprendido:

https://youtu.be/COuA5YPLDIM

¡Éxitos desde Slicetex!


5
Kinco / Re:HMI KINCO A PLC Memoria EEPROM
« : julio 09, 2019, 11:53:21 am »
Ing. Boris, agrego imagenes de la pantalla por las duda que ahi este el error. Saludos,

Acá parece estar todo bien. A modo de comentario, conviene establecer un valor Mínimo de entrada en el HMI (ver imagen abajo, parte señalada en amarillo), ya que si el usuario coloca 0, y ese valor lo utilizás para un Timer, evidentemente va a funcionar mal. De acuerdo a tu aplicación, utilizar un valor mínimo adecuado.




También, donde dice Data Type colocar "unsigned int", ya que solo utilizás números positivos.

6
Kinco / Re:HMI KINCO A PLC Memoria EEPROM
« : julio 09, 2019, 11:43:37 am »
Buenos dias Ing. Boris: Crei que grabar en memoria era lo mas dificil pero aun no puedo pasar el Array a un Int_32 para que lo lea el temporizador. Le envio la foto, que leeo 40017 y 3 valores mas, al 40017 lo copio a int32 y luego multiplico por 10 para pasarlo en segundo y ponerlo en un temporizador pero no funciona.

Buenos días. Por lo que veo cometés el siguiente error en la copia de variables:



En este caso, en la variable M62 no se asigna valor alguno. Haciendo que M61 utilizada por el Timer, tenga un valor diferente al esperado.

Saludos!

7
Kinco / Re:HMI KINCO A PLC Memoria EEPROM
« : julio 08, 2019, 21:00:47 pm »
Ing. Boris aparte de ese problema que nose como hacer para que no grabe permanentemente, tengo el problema que cuando intento colocar el valor en una variable int32 no lo toma. Si lo guarda en el 40017 porque la pantalla lo muestra el valor y si la apago y prendo toma el ultimo valor. Y si el PLC lo rest vuelve a cero. Pero cuando lo quiero pasar a una variable Int_32 no pasa nose porque. Le envio la foto.

Fíjate de probar el ejemplo que te pasé en el mensaje anterior, tiene en cuenta el tema de si el PLC es reseteado, para recargar el registro ModBus.

Saludos!

8
Kinco / Re:HMI KINCO A PLC Memoria EEPROM
« : julio 08, 2019, 20:57:02 pm »
Buenas tardes Esteban.

En el siguiente link te hice un ejemplo para Lenguaje Ladder:

www.slicetex.com/hmi/kinco/files/examples/HmiKincoEeprom2.zip

Este proyecto permite ejemplificar como guardar en memoria EEPROM el  registro ModBus en dirección 40017, manteniendo siempre almacenado el último valor modificado en el HMI.

Al iniciar el PLC, se busca el valor almacenado en memoria EEPROM, se lo carga en la variable LastValue[0], y luego en la dirección de registro 40017 de ModBus.

De esta forma, el HMI mostrará el último valor almacenado en el PLC.

Leer archivo info.txt para descripción completa.

Saludos!

ACTUALIZACIÓN 17/JUL/2019: SE ACTUALIZA EJEMPLO PARA PLC, VERSIÓN UTILIZANDO NUEVOS COMPONENTES LADDER PARA LEER/ESCRIBIR UNA SOLA VARIABLE EN MEMORIA EEPROM SIN UTILIZAR ARRAYS. SIMPLIFICA EL PROCESO.

9
STX8091 / Re:Envío de datos por cable ethernet
« : julio 05, 2019, 20:11:07 pm »
Buenas tardes Eduardo,

Si, podés, mientras dichos cables estén desconectados del conector RJ45 del PLC/HMI.

El RJ45 del PLC utiliza dos pares, terminales de ficha 2-1 y 6-3.

Probar los cambios por separado, primero la conexión con 2 pares solamente y luego agregar las señales DIN.

Saludos!

10
PD3060-PT100 / Re:Conectar dos o más módulos PD3060-PT100 al PLC
« : julio 04, 2019, 12:14:10 pm »
Buenas tardes, una consulta como hago para cambiar que el tipo de comunicación sea 9600 pero 8E1?

Buenos días, fijate en el siguiente ejemplo:

www.slicetex.com/modules/temperature/pd3060-pt100/files/PT100_PD3060_Pawn6.zip

Este ejemplo cambia a 9600 bps 8E1, un módulo configurado como 9600 bps 8N1, utilizando el registro de configuración del módulo en dirección 0x10 (16 decimal) (ver tabla 3, sección 4.1).

Importante: Después del cambio, debes utilizar otro proyecto e inicializar el PLC para que tenga el mismo formato de comunicación del módulo (después del cambio), por ejemplo:

Código: (Pawn) [Seleccionar]
   if((FuncStat=MbRtuClInit(9600, SERIAL_8E1, 10, MB_RTU_INTERFACE_RS485)) < 0)
   {
      // Mostrar error en Virtual-HMI.
   nLcdPrintf(0,1, LCD_CLRALL, "ModBus init err: %d", FuncStat)
   }

Realizar de un módulo a la vez y probar de a uno.

DESCRIPCIÓN DEL EJEMPLO:

Ejemplo de cambio de formato de comunicación módulo de módulo PD3060.

Configure la constante SLAVE_ADDR con la dirección del esclavo a modificar.

Realice esta operación con solo un módulo conectado.

El programa presupone que el esclavo esta configurado con formato de comunicación 9600 8N1 y lo cambia a 9600 8E1.
Esto se muestra en los pasos (1) y (2) del archivo PlcMain.p.

Código: (Pawn) [Seleccionar]
   //
   // (2) CAMBIAR FORMATO DE COMUNICACIÓN DE MODBUS DEL MÓDULO
   //
   // Enviar al esclavo "SLAVE_ADDR" dirección ModBus RTU (importante que sea la misma del módulo).
   // Configuración comunicación: 9600 bps, formato 8E1 ( valor = 00001000 = 0x08)
   //
   
   MbRtuClSendWriteReg(SLAVE_ADDR, 0x10, (SLAVE_ADDR << 8) | (0x08))

Ejecute el programa en el PLC con el módulo conectado.

Espere unos 10-30 segundos hasta que finalice la operación.

Cargue otro programa en el PLC para leer la temperatura del Módulo, pero inicialice la comunicación en el PLC con el nuevo formato de comunicación, es decir 9600 8E1. Luego podrá ver la temperatura normalmente.

Saludos!




11
STX8081 / Re:CONSULTA SOFT
« : julio 02, 2019, 12:13:52 pm »
Buenos días.

Si, en las últimas versiones de del software se nombran las salidas digitales de forma genérica, DOUT (Digital Output) sin distinguir de si es un relé, un transistor u otro elemento.

La equivalencia es la misma, DOUT1=RELAY1, DOUT2=RELAY2, ... etc.

La documentación será actualizada.

Sin embargo, es posible desde StxLadder seguir llamando a las salidas digitales con los nombres RELAY y mantener compatibilidad con versiones previas / documentación.

Para ello, ir a menú "Proyecto > Listar todas las variables", y buscar las salidas RELAYx.

Doble click en la salida RELAY deseada, y destildar la opción "Oculta", como se muestra en la siguiente imagen:



Luego la podés seleccionar normalmente.

Saludos!

12
Buenas tardes.

Creo que no estoy colocando bien los parámetros sobre el dato recibido o cuántos bytes muestro en la pantalla. Adjunto información de la balanza y te agradezco si me puedes orientar. Gracias

3.4.2 Mapa de memoria
Dirección Nombre Tamaño Lectura / Escritura
0 Peso bruto 2 registros (4 bytes)* Lectura
2 Tara 2 registros (4 bytes)* Lectura
4 Peso neto 2 registros (4 bytes)* Lectura
6 Flags / Teclado 1 registros (2 bytes) Flags:Lectura/ Teclado: Escritura
7 Usado por Legonet 1 registros (2 bytes) Lectura/ Escritura

(*) 32 bits, enteros largos (doble precisión) en complemento a dos

Los valores están expresados como enteros (sin punto decimal).
La característica de escritura en el registro de teclado por protocolo Modbus

Entiendo que te especifica que el valor de peso se especifica en 32-bits, es decir, debes leer dos registros ModBus de 16 bits y juntarlos para formar un solo entero de 32-bits.

Esto lo podés hacer con una operación Pawn, definiendo en Ladder una nueva funcion Pawn como componente, donde le pasas dos registros como entradas IN1 e IN2, y en la salida OUT1 le colocas la nueva variable donde almacenás el peso.

Luego a la función Pawn le colocas el siguiente código para unir ambos registros:

Código: (Pawn) [Seleccionar]
OUT1=(IN1<<16)|(IN2)
En la entrada IN1, debes pasar el registro más significativo.

Según te explica están en complemento a dos, esto solo importa si lees números negativos.
No entiendo a que se refiere con "doble precisión", ya que no menciona que sea un tipo float.

3.4.3 Configuración del PLC
Configuración tarjeta PCMCIA RS232 (TSX SCP 111 RS232MP en Modicom)

Modo RTU Modo ASCII
Enlace: MODBUS/J-BUS T entre Carac: 1 mS Enlace: MODBUS/J-BUS T entre Carac: 3 mS
Tipo: Maestro Datos: RTU (8 bits) Tipo: Maestro Datos: ASCII (7 bits)
Velocidad: 9600 bps. Parada: 1 bits Velocidad: 9600 bps. Parada: 2 bits
Nro. de Reintentos: 0 Paridad: None Nro. de Reintentos: 0 Paridad: None
T Respuesta: 100 mS DelayRTS/CTS:0mS T Respuesta: 100 mS DelayRTS/CTS: 0mS

Por otro lado, fijate que la balanza este configurada solo en modo "ModBus RTU" y no en "ModBus RTU ASCII", ya que son dos protocolos diferentes, el PLC solo soporta el primero.

Saludos!

13
STX8091 / Re:Agregar nuevo Cliente PLC al servidor TCP
« : junio 19, 2019, 10:43:34 am »
Buenos días Mariano.

El sistema estuvo funcionando a prueba todo un més aproximadamente y decidi implementarlo definitivamente. Funcionó muy bien unos días hasta q tuve q desconectar a uno de los dos clientes. Al reconectarlo, sucede que cuando uno tiene que hacer un cambio de estado, aparece como el unico conectado y el otro recién se conecta cuando le toca a el.
Sospecho q es una cuestión de conflicto en el server. El cual por alguna razón muestra conectado a un sólo de los dos clientes a la vez.
Me parece q la solución podría ser cerrar la conexión en el cliente por lo q estuve leyendo del foro q me pasaste.

Puede ser una posibilidad que el servidor al soportar solo dos clientes a la vez, cuando se desconecta un cliente (sin cerrar la conexión en el servidor) no puede conectarse de nuevo hasta que el servidor aborta la conexión previa por inactividad. Luego el cliente puede volver a reconectar cuando tiene una conexión libre.

Te adjunto en este mensaje el firmware versión 223, que admite 4 conexiones simultáneas para el servidor. Esto podría manejar mejor ese caso, ya que el cliente puede reconectar estando dos conexiones ocupadas. La cual también quedará libre luego de un tiempo de inactividad.

Podés aplicar esta actualización al PLC servidor y probar resultados.

Voy a necesitar las instrucciones pawn para operar sobre el cliente (el foro que me pasaste sólo tiene las sentencias del server). Hay alguna nota de aplicación o algún link a un foro donde figuren estas instrucciones?

En este link podés ver la descripción de las funciones del cliente TCP:

foro.slicetex.com/index.php?topic=48.msg121#msg121

También una alternativa, es que desde cliente te conectes al servidor, transmitas o recibas los datos y luego cierres la conexión con TcpClClose() hasta que necesites de vuelta conexión (como para cerrar explícitamente la conexión en el servidor y mantener cierto control de conexiones).

Saludos!

14
Estimado, estoy evaluando adquirir un STX8091 y pantalla Kinco MT4434TE. La consulta es la siguiente: puede incorporarse a un programa secuencial como el discutido en el tema "Esquema básico con salidas relé temporizadas" el controlador PID de la AN033, sumado a que los tiempos de cada temporizador y el setpoint del PID sean configurados desde el HMI? Se requiere uno de los modelos con mayor memoria?

Buenos días.

Se puede incorporar perfectamente el control PID según le entiendo. No es un tema de memorias, sino de pensar la lógica del programa antes, para poder crearla sin incoherencias en el PLC.

Cada temporizador puede leer el tiempo de configuración desde el HMI, lo escribís en un registro ModBus de 16-bits y luego lo lees desde el temporizador.

Lo mismo con el SetPoint, lo podés escribir desde el HMI.

Como hacer un enclavamiento para que el START no pueda ser pulsado hasta alcanzar la temperatura seteada?

Por lo que le entiendo, el botón START debe estar deshabilitado hasta no alcanzar la temperatura deseada.

Esto no es problema, cuando este dentro del un rango cercano de la temperatura deseada, habilita la lectura del boton START mediante una variable o flag.

No se genera conflicto entre el PID con la secuencia que sigue el programa de las salidas temporizadas?  Gracias

No, el PID funciona independiente del resto de las salidas.

Usted especifica un SETPOINT, y el PID leyendo el sensor adecuado que le entrega la magnitud a medir, intenta alcanzar el SETPOINT modificando una salida del PLC. Imagino que temperatura quiere controlar.

El PID puede ponerlo en modo MANUAL (apagado) y de esta forma deshabilitarlo, o en modo AUTOMATICO (encendido) y de esta forma activarlo.

Evidentemente, el PID no debe utilizar una salida que previamente utilice para una temporización, ya que intentaria hacer dos cosas diferentes con la misma salida.

Si no quiere control de PID en un momento particular, lo deshabilita simplemente.

Como le comento, lo ideal antes de hacer el programa, es escribir en un papel la lógica de control de su proyecto, diferenciando entradas y salidas a utilizar. También como serán los pasos para cumplir con el objetivo del programa. Una vez con esto en claro, comienza a programar con ese plan. De esta forma le resultará mucho más fácil organizar el código.

Quedamos a disposición.

Saludos!


15
Buenas tardes Francisco,

Podes descargar el siguiente ejemplo en Ladder para ModBus cliente (maestro) RS485:

http://slicetex.com/modules/temperature/pd3060-pt100/files/PT100_PD3060_Ladder1.zip

El ejemplo está explicado en la sección 5.2 del siguiente PDF:

http://slicetex.com/modules/temperature/pd3060-pt100/docs/PD3060-PT100-DS.pdf

Básicamente en el ejemplo, cada 500 mS se realiza una transacción ModBus para obtener 6 registros del módulo PD3060 que representan la temperatura leída por los sensores PT100 conectados al mismo.

Podes modificarlo, para que en vez de temperatura, te muestre los valores crudos de los registros en VirtualHMI.

La repuesta es leída cuando los valores del registro se reciben en el evento OnMbRtuClientRx.sld.



CONSEJOS:

Fíjate de interpretar bien la dirección del registro a leer en la balanza, ya que las direcciones ModBus a veces no son muy "estándar".

Muchos fabricantes en la hoja de datos mencionan por ejemplo la dirección "40037", pero debe interpretarse como 40036, ya que no cuentan al "0" como una dirección válida.

También hay casos que las direcciones 4x tienen un offset de 40000 o 40001, es decir, volviendo al ejemplo, tenés las siguientes equivalencias a modo de resumen::

  • 40037 -> 40037-1 = 40036
  • 40037 -> 40037-40000 = 37
  • 40037 -> 40037-40001 = 36

En las funciones del PLC deberías colocar en estos casos, 40036, 37 o 36 como dirección de registro.  El valor que te devuelva el resultado correcto, es el método adecuado..

Esto se debe a que el PLC envía el número de dirección que le coloques, no interpreta si 40037 se refiere a 40036, 37 o 36, ya que no hay un estándar.

También verificar que el número de dirección no esté en base hexadecimal, en ese caso, convertirlo antes a base decimal.

Finalmente, corroborar que tengas bien configurados los parámetros de velocidad, paridad, deben ser los mismos, así como debes conocer la dirección de red ModBus RTU de la balanza, muchas veces por default dirección "1".

Saludos!




Páginas: [1] 2 3 ... 72