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.


Temas - Soporte

Páginas: [1] 2 3 ... 7
1
Cristian nos consulta:

Cita de: Cristian C.
Hola Boris, quiero pedirte si me podes pasar los comandos para poder grabar un LOG con entradas de cadenas de texto en un archivo de la memoria Micro-SD, para que pueda ser utilizado en laboratorio y que nos permita identificar qué rutina es la que se bloquea. Por otro lado pedirte también como hacer para enviar por red la temperatura del PLC como número entero que no recuerdo bien lo que hablamos (te lo pido como entero ya que en vb no tengo la función >>).

Desde ya muchas gracias.

2
Kinco / Quitar Menu Task Bar y emitir sonidos al pulsar pantalla
« : septiembre 30, 2022, 20:51:45 pm »
Desde el menú "View > Attribute" seleccionamos las siguientes pestañas, señaladas en color amarillo en las capturas de pantalla, y tildamos o destildamos las opciones indicadas:

Quitar Menu Task Bar:



Emitir sonidos al pulsar pantalla:




3
Mostraremos a continuación cómo leer desde el HMI Kinco temperatura de sensores tipo termocupla conectados a un módulo RS-485 con protocolo ModBus RTU. Una vez leída la temperatura, desde el HMI ejecutaremos un macro que copiará la temperatura a registros ModBus TCP de un PLC conectado por Ethernet.

La ventaja de esta configuración, es que el PLC no necesita tener conexión RS-485 para obtener los valores de temperatura, ya que es el HMI quién los obtiene y transfiere al PLC utilizando una conexión Ethernet.

Una vez entendido este ejemplo, puede aplicarlo a cualquier dispositivo ModBus RTU que quiera acceder desde la pantalla HMI y además compartir sus valores por ModBus TCP a un PLC.

DIAGRAMA EN BLOQUES



PREPARAR LOS EQUIPOS

Para este ejemplo necesitará:

  • Pantalla HMI Kinco con puerto Ethernet y RS-485.
  • PLC con conexión ModBus TCP por Ethernet.
  • Módulo de temperatura TC8MB-K o similar, con conexión ModBus RTU por RS-485.
  • Fuente de 12 o 24 Vcc.

REALIZAR EL CONEXIONADO DE LOS EQUIPOS

En el siguiente link puede descargar en formato PDF el diagrama de conexión eléctrica y cableado de los equipos:

www.slicetex.com/hmi/kinco/files/examples/mb_temp_read/plc_wiring.pdf

CARGAR LOS PROYECTOS DE DE EJEMPLO AL HMI Y PLC

Para que el ejemplo funcione es necesario que cargue los proyectos de software en el HMI y en el PLC.
El proceso de carga se explica en sus respectivos manuales.

A continuación puede descargar los proyectos y abrirlos en el entorno de programación del HMI y el PLC respectivamente.

HMI:

El proyecto para la pantalla HMI Kinco lo puede descargar desde el siguiente link:

www.slicetex.com/hmi/kinco/files/examples/mb_temp_read/PLC_Temperature_Module1.zip

Nota[1]: Se utiliza el HMI modelo GL100E en el ejemplo, pero puede cambiar a otro modelo desde el entorno de programación.
Nota[2]: El proyecto del HMI se abre con Kinco DTools.

PLC:

Para el PLC, puede descargar el proyecto desde los siguientes links:

Lenguaje Ladder:

www.slicetex.com/hmi/kinco/files/examples/mb_temp_read/MbTempKincoLadder1.zip

Lenguaje Pawn:

www.slicetex.com/hmi/kinco/files/examples/mb_temp_read/MbTempKincoPawn1.zip

Nota[1]: Se utiliza el PLC modelo STX8140-A2-R en el ejemplo, pero puede cambiar a otro modelo desde el entorno de programación.
Nota[2]: Al abrir el proyecto del PLC, lea el archivo info.txt incluido, allí se explica en detalle el funcionamiento del programa del PLC.
Nota[3]: El proyecto del PLC se abre con StxLadder.

PRUEBA INICIAL

Una vez armado el cableado de los equipos (verificar dos veces) y cargado el software a la pantalla HMI y el PLC, puede energizar los equipos para hacer una prueba de funcionamiento.

En el HMI debería leer la temperatura reportada por todos los canales del módulo de temperatura en una pantalla similar a la siguiente:



Y en el PLC, utilice Virtual-HMI para ver las temperaturas recibidas en el PLC:



Note que si no hay sensor de temperatura conectado al módulo de temperatura, el valor leído será -100 °C. Si la temperatura parece ser errónea, es decir algunos grados de más o de menos, intente conectar en orden inverso los terminales de la termocupla, ya que pueden estar en la posición incorrecta.

Si la pantalla muestra "PLC no response", asegúrese haber cableado correctamente el módulo de temperatura por RS-485, y además que el PLC tenga la dirección IP 192.168.1.81, conectado directamente al HMI con un cable ethernet, o en una red LAN con direcciones de red IP compatible (192.168.1.xxx). Si necesita cambiar estas IP, debe reflejar dichos cambios en el proyecto del HMI.

MÓDULO DE TEMPERATURA

El módulo de temperatura utilizado en este ejemplo es el TC8MB-K, que admite conexión RS-485 (ModBus RTU) y tiene ocho entradas para sensores de temperatura tipo termocupla K.



Los registros ModBus RTU de esté módulo son los siguientes:





Note como la comunicación por defecto es: 9600 bps, 8N1 y dirección RTU = 1.

En la última tabla, cada canal de temperatura tiene la dirección: 32 para el número 1, 33 para el número 2, etc.
Sin embargo, en el HMI Kinco es necesario sumarle "1" a las direcciones ModBus RTU para este módulo.
Por lo tanto nos queda: 33 para el número 1, 34 para el número 2, etc.


Por otro lado, el valor de temperatura es un entero de 16-bits con signo multiplicado por 10. Es decir, el valor 200 corresponde a 20 °C.
Cuando no hay sensor conectado, el valor por defecto es -1000, es decir -100 °C.

Link a hoja de datos completa:

https://slicetex.com/modules/temperature/tc8mb-k/docs/TC8MB-K-DS.pdf

DETALLES DE FUNCIONAMIENTO DEL HMI

Para practicar ejemplos de comunicación ModBus TCP entre el HMI y el PLC, recomendamos bajar y practicar por separado los ejemplos disponibles en nuestra página de manuales de la pantalla Kinco, que puede accederla desde aquí.

A continuación mostraremos las particularidades a prestar atención en el proyecto del HMI para hacer funcionar este ejemplo.

Una vez abierto el proyecto de ejemplo desde el software Kinco DTools vamos a la estructura del proyecto al área de conexión, como muestra la siguiente imágen:



Aquí el PLC está conectado por ModBus TCP (Ethernet) y su conexión "Net" se llama "PLC_0_1", mientras que el módulo de temperatura está conectado por ModBus RTU (RS-485), y su conexión "COM0" se llama "PLC_1_1". Ambos nombres se utilizarán como referencia en el proyecto para conectarnos a uno u otro dispositivo.

En la misma figura, hacemos doble-click en el dibujo de la pantalla HMI para ingresar a sus atributos:



Una vez en los atributos del HMI, buscamos la solapa "COM0 Setting":



En está última ventana, especificamos los parámetros de comunicación del puerto COM0, ver áreas resaltadas en amarillo.
Elegimos los valores de conexión que requiere el módulo de temperatura conectado por RS-485 (ver más arriba), por lo tanto Type=RS485, Baud Rate=9600, Data Bit=8, Parity Check=none, Stop Bit=1.

El siguiente paso es mostrar desde la pantalla HMI el valor de temperatura del módulo, accediendo directamente a un registro del módulo. Para ello, vamos al "Frame0" del HMI en la sección de estructura del proyecto, y aparecerá la siguiente ventana:



Hacemos doble-click en el objeto "NI5", que es el primer componente numérico que se muestra.

Aparecerá la siguiente ventana:



Las partes coloreadas en amarillo son las importantes.

Como esté componente numérico lee un registro ModBus y muestra su valor, configuramos lo siguiente para que acceda el módulo de temperatura:

PLC No: Elegimos PLC_1_1 (que es la conexión RS-485 al módulo, ver más arriba)
Addr Type: 4X (esto indica "leer un registro ModBus)
Address: 33 (dirección del registro ModBus a leer, ver más arriba).

Luego, en la misma ventana, vamos a la solapa "Numeric Data":



Aquí "adaptamos" el valor leído del registro, ya que si recordamos, es un número de 16-bits con signo, y cuyo valor está multiplicado por 10. Entonces, seleccionamos:

Data type: signed int (entero con signo)
Data Width: WORD (16-bits)
Integer: 5 (solo nos interesan 5 digitos de parte entera)
Decimal: 1 (solo nos interesa 1 dígito de parte decimal, es decir, dónde poner el punto o lo que es lo mismo a dividir por 10).
Show Plus Sign: tildar (muestra el signo)
Min: -9999 (valor mínimo a mostrar, podemos colocar cualquiera para límitar el valor a mostrar)
Max: 9999 (valor máximo a mostrar, podemos colocar cualquiera para límitar el valor a mostrar)

Listo, le damos click a "OK" para cerrar la ventana y aplicar los cambios.

Todos los controles numéricos de este "Frame0" están configurados iguales, pero con una dirección "Address" de ModBus diferente, para que lea los ocho canales de temperatura.

Ya fue explicado como mostrar la temperatura leyendo directamente el módulo por ModBus RTU.

Ahora será necesario explicar cómo enviar los valores de temperatura leídos por ModBus RTU (RS-485) al PLC utilizando ModBus TCP (Ethernet).

Esto lo haremos utilizando MACROS en el HMI. Un macro es un pequeño código escrito con un listado de operaciones que puede llamarse como una función desde el HMI.

Este macro será el encargado de leer 8 registros por ModBus RTU (dirección 33 a 40) desde el módulo y escribirlos por ModBus TCP (dirección 40041 a 40048) al PLC.

Para agregar un macro al HMI vaya a menú "Option > Macrocode ...". Allí una ventana le pedirá un nombre para el macro.

Como en el ejemplo ya está creado el macro, vaya al árbol de la estructura del proyecto, busque "Macro File" y haga click sobre "copy_temperature_array.c", como se muestra a continuación:



En esta nueva ventana puede escribir el código del macro. Pero antes, explicaremos como declarar los parámetros utilizados como variables dentro del código del macro.



En la sección "Parameters" puede agregar una variable nueva haciendo click-izquierdo y seleccionando "Add variable".

En este ejemplo ya fueron agregadas dos variables tipo array: "MODULE_TEMP" y "PLC_TEMP".
Una variable se utilizará para leer los registros del módulo, y la otra para escribir los registros del PLC.

Haga doble-click sobre "MODULE_TEMP" aparecerá la siguiente ventana:



En las partes en amarillo se elige:
Data Type: unsigned short (entero de 16 bits sin signo, no utilizaremos signo aquí)
PLC No: PLC_1_1 (es la conexión ModBus RTU, RS485)
Address Type: 4x (para leer un registro ModBus)
Address: 33 (dirección del primer canal de temperatura)
Array Variable: Tildar, ya que declararemos un array de 8 elementos.
R/W: Read (operación de lectura)
Array Length: 8 (tamaño del array y cantidad de registros a solicitar).

Cerramos la ventana.

Ahora haga doble-click sobre "PLC_TEMP" aparecerá la siguiente ventana:



En las partes en amarillo se elige:
Data Type: unsigned short (entero de 16 bits sin signo, no utilizaremos signo aquí)
PLC No: PLC_0_1 (es la conexión ModBus TCP, Ethernet)
Address Type: 4x (para leer un registro ModBus)
Address: 40041 (dirección del primer registro a escribir en el PLC)
Array Variable: Tildar, ya que declararemos un array de 8 elementos.
R/W: Write (operación de escritura)
Array Length: 8 (tamaño del array y cantidad de registros a escribir).

Cerramos la ventana.

Una vez declaradas ambas variables, podemos utilizarla en el código del macro.

El código que utilizamos es el siguiente:

Código: (Kinco HMI Macro) [Seleccionar]
int MacroEntry()
{
int i;

/* Copiamos la temperatura desde los registros del módulo ModBus RTU (RS-485) a los registros del PLC ModBus TCP (Ethernet) */

for(i=0; i<8; i++)
{
PLC_TEMP[i] = MODULE_TEMP[i];
}

return 0;
}

El código es muy simple. En un ciclo "for" incrementamos la variable "i" desde 0 a 7.

En cada incremento copiamos el array MODULE_TEMP del módulo de temperatura al array PLC_TEMP del PLC. En otras palabras, leemos los registros ModBus RTU desde el módulo y los escribimos en los registros ModBus TCP del PLC.

Código: (Kinco HMI Macro) [Seleccionar]
PLC_TEMP[i] = MODULE_TEMP[i];
Finalmente queda ejecutar el macro copy_temperature_array.c en el HMI para que periódicamente envié los valores de temperatura al PLC. En el HMI hay varios métodos para ejecutar un macro (ver manual del HMI), por ejemplo utilizando un temporizador o mediante "PLC Control". Nosotros utilizaremos "PLC Control".

En "PLC Control" configuraremos el HMI para que constantemente lea el registro 40040 del PLC mediante ModBus TCP. Si el valor leído, ha cambiado, es decir, difiere de la última lectura, se ejecuta el macro copy_temperature_array.c, y por lo tanto el HMI obtiene la temperatura del módulo y la copia a los registros del PLC.

Con este método, debemos procurar en el PLC cambiar el valor del registro 40040  periódicamente (o cada vez que necesitemos) para que la temperatura copiada al PLC esté actualizada.

Entonces, vamos a menú "Components > PLC Control" y aparece la siguiente pantalla:



Si queremos agregar una nueva regla, tocamos en "Add". Pero como en el proyecto ya está agregada, tocamos con doble-click la única definida y se muestra la siguiente pantalla:



La parte en amarillo es la importante a prestar atención:

PLC No: PLC_0_1 (Seleccionamos la conexión ModBus TCP, Ethernet)
Addr. Type: 4X (para leer un registro ModBus)
Address: 40040 (dirección del registro en el PLC a leer)
Control Type: Execute Macro Program (ejecutar macro cuando se cumpla la condición)
Macro ID: copy_temperature_array.c (seleccionamos el macro que queremos ejecutar)
Execute Method: Word register value changed (cuando el registro 40040 cambie de valor, ejecutar el macro)

Salimos de la ventana.

Listo, ahora cuando el PLC cambié el el valor del registro 40040 el HMI buscará los valores de temperatura y los copiará al PLC.

Consejo: En el PLC podemos definir una variable entera e incrementarla constantemente, luego copiar dicha variable al registro 40040, y de esta manera cumplimos la condición que espera el HMI, ya que el registro 40040 tendrá un valor diferente constantemente. En los ejemplos de código para el PLC suministrado, hacemos esto.

Esto es todo, si necesita ejemplos básicos para utilizar el HMI con el PLC los puede encontrar en el siguiente link:

www.slicetex.com/hmi/kinco/docs.php#Examples

La nota de aplicación AN022 detalla como usar ModBus TCP con el PLC:

www.slicetex.com/docs/an/an022

Consúltenos si tiene dudas, éxitos  8)









4
Miguel nos consulta:

Citar
Estamos probando y conociendo el equipo..ya nos conectamos y probamos el proyecto disklog3..descargamos el archivo bin y lo pasamos a csv..  de momento no le conectamos nada....y lo que observamos en el log en todas las lineas   y columnas  el valor 2.2 ... despues en el canal 2 simulamos un a señal de 3.2+ V en el entendido q la variables están en el rango -5 a 5v  y al correr el log nuevamente  observamos que en la columna 2 (canal 2) el mismo valor 2.2, bueno en todos los canales.

Estamos siguiendo el manual en cuanto a las conexiones en este caso,  vin2  el positivo de los 3.2 v simulados u en AIG el negativo.

Eseperabamos en el log el valor de 3.2 v pero no fue asi.

Saludos
Miguel


Buenos días Miguel,

El valor 2.2V en realidad significa que la entrada está flotante, es decir, que no tiene conectada ningún voltaje, y por lo tanto mide un voltaje no definido. Pero este valor no es fijo, cuando una entrada analógica no tiene conexión, la medición puede ser cualquier valor ya que no hay referencia.

Te recomiendo que hagas de nuevo la prueba con el voltaje bien conectado, quizás estás mirando un log viejo o el cable en los terminales no hace buen contacto.

Fijáte que en la página web del ejemplo " DiskSamplerLog3" hay un botón que dice "Reiniciar log a 0". Tocálo antes de hacer la medición, así borras todo lo anterior, y solo te concentrás en el último muestreo.

Para conectar la señal, podés conectar 3.2V a VIO2 y la masa de ese voltaje al terminal A1G, como te muestro en la siguiente imagen. Revisá que haga buen contacto el cable en los terminales. El registro del log debería mostrarte 3.2V en ese canal. También podés probarlo en el canal VIO1 a VIO5 para el ejemplo mencionado.



Avísame si luego de revisar y repetir la medición continua sin leer el voltaje.

Saludos!

5
STX8180 / Detección de daño eléctrico en canal VIO
« : mayo 26, 2022, 16:55:15 pm »
A veces, ya sea por error o distracción en la manipulación del cableado o configuración de software, se exceden los límites eléctricos soportados en los canales VIO (Voltage Input/Output) del PLC de acuerdo a su hoja de datos. En estos casos, actúan las protecciones del canal, las cuales protegen picos de tensión o corriente por cortos periodos de tiempo, pero si se exceden ciertos límites, se pueden producir daños.

Si tiene una medición errónea de voltaje o corriente en un canal VIO, recomendamos hacer la siguiente prueba para determinar si un canal tiene un daño eléctrico:

  • Desconectar todo cableado del PLC, incluso la alimentación.
  • Colocar un multímetro entre un canal VIO y el terminal A1G como muestra la figura de abajo.
  • Configurar el múltimetro para medir resistencia (óhmetro).
  • Si la resistencia medida es de varios mega-ohms, el canal no presenta daños eléctricos medibles. Si la resistencia es menor a 1000 ohms, o similar, hay daño eléctrico.
  • Repetir para todos los canales VIO.



Como se aprecia en la figura de arriba, los canales VIO tienen un diodo zener de protección (ver trazado con rayas discontinuas), si el mismo se daña, queda en "corto" (en realidad queda con una impedancia muy baja). También es posible medir con multímetro entre el canal VIO y A1G el voltaje del diodo, si es superior a varios voltios o fuera de rango, es probable que esté bien, si es menor a 0.5/1V, hay daño.

Esta puede ser una causa de daño si se exceden los límites eléctricos de voltaje, pero también la entrada puede estar dañada si se han excedido los límites eléctricos de corriente, pero esto es más difícil de determinar.

En caso de daño, puede enviar el PLC a nuestras instalaciones para reparación.

Nota[1]: Solo aplicable a versión de hardware de Peripheral Board (PB/V) número 3. Ver  hoja de datos.
Nota[2]: Versiones más modernas de hardware incorporarán otras protecciones adicionales.

6
Si está buscando muestrear uno o más canales analógicos VIN a una velocidad mayor de 5 muestras por segundo y a su vez guardar los datos en archivos dentro de la tarjera Micro-SD para luego analizarlos con Excel (por ejemplo), aquí podrá encontrar ejemplos que le serán útiles.



Los ejemplos utilizan los "SAMPLERS" del PLC, que permiten muestrear un canal VIN a una velocidad fija, por ejemplo a 200 o 2000 muestras por segundo. Si requiere velocidades menores o iguales a 5 muestras por segundo, puede evitar el uso de los SAMPLERS y utilizar solo temporizadores con eventos @OnTimer[X](), que son más fáciles de configurar y utilizar.

Si bien los SAMPLERS pueden muestrear una señal a alta velocidad, el cuello de botella, es decir, el lugar en donde el PLC tarda más tiempo de procesamiento, es en escribir las muestras dentro de un archivo de la tarjeta Micro-SD. Por lo tanto la escritura en tarjeta Micro-SD nos limita a una tasa de muestreo de 2000 a 3000 muestras por segundo para el modelo STX8180, y este valor puede variar según el tipo de proyecto, cantidad de canales analógicos a muestrear y el uso del procesador del PLC en otras lógicas.

Hay muchos caminos para hacer un log de datos, aquí damos algunos ejemplos con diferentes técnicas que puede utilizar como referencia inicial.

LENGUAJE PAWN

EJEMPLO #1: DiskSamplerLog1

www.slicetex.com/docs/an/an036/files/examples/DiskSamplerLog1.zip

Este ejemplo permite muestrear cinco canales analógicos VIN a 10 muestras por segundo (configurable) y almacenar las lecturas en un archivo de texto CSV que puede importar a Excel para análisis y gráficos. El acceso a las muestras es a través de la página web del PLC. Se recomienda leer el archivo "info.txt" del proyecto para una explicación detallada del ejemplo.

EJEMPLO #1 (B): DiskSamplerLog1B

www.slicetex.com/docs/an/an036/files/examples/DiskSamplerLog1B.zip
 
Ejemplo derivado del ejemplo "DiskSamperLog1", pero con diferencia que permite configurar los parámetros SAMPLERS_TS, SAMPLERS_LOG_TIME y SAMPLERS_BUF_SIZE desde la página web sin recompilar el código, ideal para pruebas rápidas.

EJEMPLO #2: DiskSamplerLog2

www.slicetex.com/docs/an/an036/examples/files/DiskSamplerLog2.zip

Este ejemplo permite muestrear cinco canales analógicos VIN a 200 muestras por segundo (configurable, por ejemplo 2000 muestras por segundo) y almacenar las lecturas en un archivo binario que luego puede convertir a CSV con la aplicación "SampleBinToText" y por lo tanto importar a Excel para análisis y gráficos. El acceso a las muestras es a través de la página web del PLC. Se recomienda leer el archivo "info.txt" del proyecto para una explicación detallada del ejemplo.

Este ejemplo, a diferencia del ejemplo DiskSamplerLog3, no utiliza las funciones DiskLogXXX() que simplifican el log de datos en archivos, pero muestran como utilizar las funciones genéricas DiskXXX() para manipular archivos.

EJEMPLO #3: DiskSamplerLog3

www.slicetex.com/docs/an/an036/files/examples/DiskSamplerLog3.zip

Este ejemplo permite muestrear cinco canales analógicos VIN a 200 muestras por segundo (configurable, por ejemplo 2000 muestras por segundo) y almacenar las lecturas en un archivo binario que luego puede convertir a CSV con la aplicación "SampleBinToText" y por lo tanto importar a Excel para análisis y gráficos. A diferencia del ejemplo DiskSamplerLog2, este ejemplo utiliza las funciones DiskLogXXX() para simplificar el log de datos en archivos.

El acceso a las muestras es a través de la página web del PLC. Se recomienda leer el archivo "info.txt" del proyecto para una explicación detallada del ejemplo.

EJEMPLO #3 (B): DiskSamplerLog3B

www.slicetex.com/docs/an/an036/files/examples/DiskSamplerLog3B.zip
 
Ejemplo derivado del ejemplo "DiskSamperLog3", teniendo como principal diferencia el nombre de los archivos de logs, que en este caso incluyen la fecha en el nombre. Además se va listando cada archivo de log como enlace en una página web a medida que nuevos archivos son creados. Información adicional en este mensaje.

EJEMPLO #4: DiskSamplerLog4

www.slicetex.com/docs/an/an036/files/examples/DiskSamplerLog4.zip

Este ejemplo es idéntico al ejemplo DiskSamplerLog3, con la diferencia que permite configurar todos los parámetros del Log desde la página web, por ejemplo velocidad de muestreo, tiempo de muestreo, etc. Puede ser muy útil para hacer pruebas de desempeño de forma fácil, sin necesidad de modificar código y transferir el programa al PLC una y otra vez.

El acceso a las muestras es a través de la página web del PLC. Se recomienda leer el archivo "info.txt" del proyecto para una explicación detallada del ejemplo.

LENGUAJE C#

EJEMPLO: SampleBinToText

www.slicetex.com/docs/an/an036/files/examples/SampleBinToText.zip

La aplicación toma un archivo binario con muestras de canales analógicos VIN (ver ejemplos arriba) y los convierte a un archivo de texto en formato CSV (Comma Separated Values), que luego puede utilizar para importar desde Microsoft Excel.

Esta aplicación se suministra con el código fuente en Microsoft Visual C# para que pueda utilizarla como referencia y modificarla de acuerdo a sus necesidades.



Consejo: Puede copiar esta aplicación a la tarjeta Micro-SD y hacerla disponible para descarga en la página web del PLC. De esta manera sus clientes tienen siempre a mano la aplicación de conversión.

Nota[1]: Otra versión de este programa, pero con conversión a unidades de ingeniería lo puede encontrar aquí.

ANEXO

ARCHIVO CON FORMATO CSV TÍPICO

En la siguiente imagen puede apreciar un archivo de texto CSV con las muestras de cinco canales VIN muestreados mediante las técnicas descriptas arriba. Cada campo está separado por un punto y coma (";"). Notar como la fecha/hora es añadida en cada entrada (línea), junto con los voltajes de los canales analógicos. Este archivo luego se puede importar fácilmente a Excel (ver imagen al comienzo de este post) y realizar gráficos u otros cálculos.







7
STX8180 / Reproducir archivo de sonido WAV (audio)
« : abril 22, 2022, 17:25:00 pm »
Hola a todos, cargamos un ejemplo que permite reproducir audio de un archivo WAV de sonido almacenado en la tarjeta Micro-SD del PLC.



Este proyecto es un demostrativo tecnológico, es decir, pretende mostrar las capacidades analógicas y de procesamiento del PLC mediante una aplicación práctica que hace uso de varios elementos de hardware (tarjeta de memoria Micro-SD, salida analógica, velocidad de muestreo, etc).

El PLC no fue concebido originalmente para reproducir audio, por lo que no está optimizado para dicha tarea, sin embargo, este proyecto puede ser útil para aquellas aplicaciones que requieran reproducir un sonido (un mensaje de bienvenida, mensaje de ayuda, una voz alerta, una orden para un operario, etc) y se pueda integrar en una solución económica.

Finalmente, es una buena oportunidad para que observe la versatilidad del PLC o aprenda con fines educativos, ya que en el código del proyecto podrá ver una aplicación compleja de uso práctico, pudiendo ver en acción las siguientes operaciones, tales como abrir un archivo, leer sus datos, interpretar su información, conocer la tecnología WAV, procesar los datos leídos y escribirlos en una salida analógica.

CARÁCTERISTICAS DEL REPRODUCTOR

  • Admite archivos en formato WAV.
  • Comprueba especificaciones del archivo y en caso de no ser soportado, devuelve código de error.
  • Frecuencia de sampleo admitida: 8 KHz.
  • Resolución de las muestras (samples) admitida: 8 o 16 bits .
  • Formato de audio admitido: PCM.
  • Solo un canal de audio está soportado (mono).
  • Utiliza una salida analógica para generar el voltaje positivo/negativo de la señal de audio.

ARCHIVOS PARA DESCARGAR

Código del proyecto en StxLadder (lenguaje Pawn):

www.slicetex.com/docs/an/an036/files/examples/DiskWavPlayer1.zip

Diagrama de conexionado y elementos necesarios:

www.slicetex.com/docs/an/an036/files/examples/DiskWavPlayer1.pdf

Leer el archivo info.txt dentro de la carpeta "Documentos" del proyecto para información sobre detalles técnicos, modo de uso y recomendaciones prácticas. También, dentro de la misma carpeta puede encontrar archivos WAV de muestra para utilizar en el proyecto.

8
A veces puede ser muy útil centrar un texto o mensaje en una cadena para luego mostrarla en una pantalla.

A continuación mostramos un ejemplo en lenguaje Pawn de como hacerlo.

El funcionamiento es el siguiente (está detallado y mejor explicado en el ejemplo adjunto a este mensaje):

La función "StringCenterText(StrIn[], StrOut[], StrOutSize)" centra la cadena "StrIn" en la cadena "StrOut" de tamaño "StrOutSize".

Entonces, si queremos centrar la cadena "Hola Mundo!" en una cadena de salida llamada "Mensaje[]" de 16 caracteres, hacemos:

Código: (Pawn) [Seleccionar]
StringCenterText("Hola Mundo!", Mensaje, 16)
Y luego podemos imprimirla en VirtualHMI:

Código: (Pawn) [Seleccionar]
nLcdPrintf(0, 3, LCD_NONE, "Text2 : %s", Mensaje)
En el proyecto de ejemplo, se utiliza VirtualHMI para hacer las pruebas y la salida debería ser la siguiente:



"Chars : XXXXXXXXXXXXXXXX", simula los 16 caractres completos para referencia.

Y Text1, Text2, etc son los textos de ejemplo.

Adjuntamos abajo el proyecto "StringCenterText_Version_1.zip" con el ejemplo y código para realizar el centrado.

9
Los canales analógicos VIO (Voltage Input/Output) pueden ser configurados como salidas digitales de voltaje VDOUT. Pudiendo entregar 0V para el "cero lógico" y hasta 10V para el "uno lógico". Al ser salidas de voltaje, no pueden conectarse a cargas de potencia directamente (relés grandes, contactores, electroválvulas, motores, ventiladores, etc), por lo que es necesario utilizar alguna interfaz eléctrica intermedia.

En esta oportunidad mostramos como comandar relés de estado sólido con las salidas VDOUT, y de esta manera poder controlar cargas de potencia, aumentando la cantidad de salidas digitales del PLC.



En la imagen de arriba vemos un módulo PN5-10DA de cinco relés de estado sólido conectado al PLC en los canales VIO6 a VIO11.

El diagrama de conexionado corresponde a la siguiente imagen:



En las imágenes siguientes se muestran algunas fotos de opciones comerciales para relés de estado sólido. Hay modelos para controlar cargas de CC (ej: 110VCC) y CA (ej: 380VCA). Pero lo principal, es que requieren bajo voltaje de operación para su comando, por lo tanto, con una salida VDOUT configurada en 5V es posible activarlos directamente (generalmente admiten un comando de 3V a 32V). Otra ventaja es que están opto-acoplados o aislados eléctricamente, ideal para evitar problemas de interferencia o de seguridad al utilizar los canales analógicos VIO para el control de grandes cargas de potencia.





PRECAUCIONES

Hay que tener precaución en la cantidad de corriente requerida consumida por relé
de estado sólido al aplicar voltaje a su entrada.

Como un canal VIO tiene un límite de 25 mA (50 mA para periodos breves), debemos procurar
que la corriente total utilizada sea menor o igual.

Algunos ejemplos de consumo de corriente a 5V para relés de estado sólido externos:

•   Modelo PN5-10DA: Consume 6.83 mA @ 5V por cada salida de CA.
•   Modelo ST5-5DDG: Consume 0.6 mA @ 5V por cada salida de CC.
•   Modelo SSR-25DA: Consume 12 mA @ 5V por cada salida de CA.
•   Modelo SSR-25DD: Consume 3 mA @ 5V por cada salida de CC.

EJEMPLOS EN SOFTWARE

Adjunto en el archivo VdoutPowerLadder1.zip, puede encontrar un proyecto de ejemplo en lenguaje Ladder para comandar el módulo de relés de estado sólido PN5-10DA o ST5-5DDG.

También en la imagen "conexionado.jpg" se muestra un ejemplo de conexionado para los relés individuales SSR-25DA (para CA) o SSR-25DD (para CC). Estos pueden controlarse con lógica directa, 5V (ON), 0V (OFF). Es más simple si solo necesitamos uno o dos relés externos.


10
Nextion / Soporte básico inicial para pantallas Nextion
« : octubre 15, 2021, 20:58:11 pm »


INTRODUCCIÓN

Presentamos un soporte inicial (beta) para las pantallas HMI de bajo costo Nextion.

Estas pantallas son óptimas por su bajo costo para aplicaciones de productos personalizados de fabricantes, productos comerciales con gabinetes a medida, educación/didácticos o fines de pruebas. También ofrecen mayor control de gráficos que los HMI estándar.

No están preparadas para uso industrial directo en ambientes con grandes ruidos eléctricos o expuestas a uso intensivo dentro de una planta de producción, para ello recomendamos otras opciones en pantalla HMI, como las pantalla de la línea Kinco, Weintek, etc.

ESTADO ACTUAL

Actualmente la pantalla es soportada solo por el PLC modelo STX8081 y únicamente permite comunicación para transmisión (no es posible leer táctil o touchscreen). También, requiere modificar el hardware del STX8081, desoldando los resistores R96 (funciona como TX) y R97 (funciona como RX). Requiere instalar última versión de firmware y del entorno StxLadder. A futuro será soportada por los nuevos modelos de la línea STX81XX.

EJEMPLOS PARA EDITOR DE PANTALLA

Descargue a continuación ejemplos básicos para la pantalla utilizando el Editor Nextion:

www.slicetex.com/hmi/nextion/files/examples/hmi/nextion_editor_examples.zip

EJEMPLOS PARA EL PLC

Descargue a continuación ejemplos básicos para el PLC utilizando StxLadder:

www.slicetex.com/hmi/nextion/files/examples/plc/NextionBasic1.zip

www.slicetex.com/hmi/nextion/files/examples/plc/NextionBasic2.zip

www.slicetex.com/hmi/nextion/files/examples/plc/NextionWiegand1.zip

Nota: En todos los ejemplos del PLC, leer el archivo "info.txt" incluido para una descripción del proyecto.

LINKS ÚTILES


MÁS INFO

Pueden consultarnos por información general o dudas aquí en el foro.

¡Éxitos!  8)




11
STX8180 / Nuevo modelo STX8180 cerca del lanzamiento inicial
« : septiembre 23, 2021, 10:42:13 am »
¡Buenas noticias!

Anunciamos que estamos en la fase final de desarrollo del nuevo modelo STX8180 de la línea STX81XX.

La documentación y soporte completo en software aún están en elaboración. Pronto tendremos el primer lote de producción terminado y las primeras unidades disponibles para la venta.



CARACTERÍSTICAS DE HARDWARE

En el siguiente link dispone un resumen en archivo PDF de las características de hardware:

www.slicetex.com/hw/stx8180/docs/STX8180-STS.pdf

Y en el siguiente link dispone en archivo PDF la Hoja de Datos con especificaciones completas de Hardware:

www.slicetex.com/hw/stx8180/docs/STX8180-DS.pdf

EN RESUMEN

Alimentación: 8-32 VCC / 9-25 VCA (fuentes internas aisladas)

Entradas digitales DIN: 12 a 16 (según modelo), dual tipo NPN/PNP
Salidas digitales DOUT: 12 (8 reles, 4 transistor)

Entradas/Salidas analógicas (VIO) configurables, aisladas, compartidas en funciones:

  • Entradas voltaje: 11 (admite modo diferencial)
  • Entradas corriente 4-20 mA: 9
  • Salidas de corriente 4-20 mA: 5
  • Salidas analógicas de voltaje: 11
  • Otros modos: Entrada/Salida Digital, Switch analógico, etc
  • Rangos de voltaje: -10V a 10V

Entradas/Salidas que varían de acuerdo al modelo seleccionado:

Modelo STX8180-A1: Puerto RS232/485
Modelo STX8180-A2: Puerto RS232/485 + dos entradas Termocuplas
Modelo STX8180-A3: 4 entradas Termocuplas (a futuro)
Modelo STX8180-A4: Puerto RS232/485 + dos entradas PT100
Modelo STX8180-A5: 4 entradas PT100 (a futuro)
Modelo STX8180-A6: 1 entrada PT100, 1 entrada Termocupla + Puerto RS232/485
Modelo STX8180-XX: Otras opciones a futuro.

Sistema:

2 watchdog, 1 sistema, 1 para usuario
Estado de fuente de alimentación (Power-Good) y control de reinicio de energía (Power-Cycle).
RTC más preciso y libre de mantenimiento (recargable, pero sin baterías).
Se eliminan jumpers de hardware, todo es configurado por software.
Log de eventos de sistema (inicios, errores, etc)
Medición y control de temperaturas internas.

Memorias para datos (tamaños disponibles para el usuario)

12 MB para almacenamiento de datos de uso general.
30 KB de NV-RAM (para almacenar datos no volátiles con infinito ciclos de escritura)
230 KB EEPROM (para almacenar datos no volátiles con limitados ciclos de escritura)
Ranura para tarjeta Micro-SD (almacenamiento masivo, hasta 32 GB).

COMENTARIOS FINALES

Este modelo fue pensado para aplicaciones que requieren grandes capacidades analógicas, versatilidad, registro de datos y robustez.

Gracias al nuevo tipo de Entradas/Salidas analógicas llamadas VIO (Voltage Input/Output) podrá tener a su disposición más de 15 configuraciones diferentes, como entradas de voltaje, entradas de corriente, salidas de voltaje, salidas de corriente, entradas/salidas para circuitos digitales, switch analógicos, adaptadores de lógica digital, etc. Las entradas analógicas se puede configurar como entradas simples o diferenciales.

También se a puesto énfasis en el almacenamiento de datos, teniendo a disposición diferente tipo de memorias aplicable a diferentes requerimientos. Por ejemplo, la memoria NV-RAM, es una memoria no volátil que tienen infinitos ciclos de escritura, ideal para almacenar datos que se modifican constantemente y que no deben perderse. Luego con la memoria interna de 12 MB (se prevee futuras opciones con mayor memoria interna), puede realizar logs sin recurrir a una tarjeta externa (que tienen sus pro y contras), pero en caso que necesite almacenamiento masivo, puede emplear la tarjeta.

Desde el punto de vista electrónico se ha mejorado completamente la inmunidad frente al ruido eléctrico luego de años de investigación, un diseño con sistema de capas de aislación eléctricas, así como buses aislados de alta velocidad, hacen de este dispositivo ideal para ambientes industriales.

¡Esperamos que este nuevo modelo sea de su utilidad para sus futuros proyectos!.   ;D

Cualquier consulta, comentario o información no duden en hacerlo llegar.

El equipo de Slicetex Elecronics.

12
Discusión General / MOVIDO: Conexión PLC relé
« : septiembre 06, 2021, 11:01:21 am »
El tema ha sido movido a STX8091 para mejor organización.

Puede ver las repuestas en el siguiente link:

http://foro.slicetex.com/index.php?topic=500.0

13
STX8081 / Conexión de display LCD OLED con controlador WS0010
« : agosto 20, 2021, 20:01:22 pm »
El controlador WS0010 de los display Winstar tipo OLED no es totalmente compatible con la STX8081 y su librería LCD instalada por defecto, ya que fue diseñada para display LCD basados en los controladores 100% compatibles con el tipo HD44780.

Si al conectar un display LCD de este tipo no tiene problemas, no es necesario hacer ninguna acción, pero si se imprimen caracteres extraños o el comportamiento es errático, como muestra la siguiente imagen:



Recomendamos realizar el siguiente procedimiento:

  • Actualizar firmware del STX8081 a versión 244 o superior
  • Alimentar el display LCD en su pin #2 (VDD) con 3.3V. Esto permite que el "nivel alto" generado por la placa sea compatible con el display. Ver hoja de datos PDF adjunta de display de referencia, donde menciona que nivel alto es 0.8 * VDD.
  • Puede llevar 3.3V desde la bornera disponible en el STX8081 al display LCD. Recomendamos colocar entre los pines VSS #1 y VDD #2 del lado display un capacitor de 470uF/16V para estabilidad de alimentación. En el conector principal del PLC para el LCD (cable plano, lado PLC) recuerde cortar el cable que lleva los 5V o pin #2.
  • Desde el programa del PLC llamar a la función LcdInit() dos veces antes de utilizar cualquier otra función del display. Ver proyecto "LcdText_WS0010.zip" que adjuntamos de ejemplo.

¡Éxitos!

14
Kinco / Crear un botón invisible o transparente
« : junio 18, 2021, 17:32:58 pm »
Para crear un botón invisible, que puede ser utilizado sobre una imagen, objeto o cualquier parte de la pantalla, primero debemos colocar el botón en la pantalla normalmente.

Por ejemplo, insertamos un botón desde menú "Componentes (I) > Button/Switch > Bit State Setting":



Luego, en las propiedades o atributos del botón, vamos a la pestaña "Graphics" y deseleccionamos "Vector Graphics" y "Bitmap":



Finalmente tenemos el botón invisible o transparente:




Nota:
Desde la pestaña "Bit State Setting" podemos elegir el comportamiento del botón, ya sea "Toggle", "Set", etc

15
El tema ha sido movido al área STX8092.

Ver tema y continuar consulta en el siguiente link:

http://foro.slicetex.com/index.php?topic=477.0



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