Mensajes recientes

Páginas: [1] 2 3 ... 10
1
Kinco / Crear un botón invisible o transparente
« Último mensaje por Soporte junio 18, 2021, 18: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
2
Buenas tardes. Está bien según las imágenes.

¿Podrá ser que desde otro lugar del proyecto estés sobrescribiendo la variable "LIMITE" con otro valor y por lo tanto se pierde el valor que tomás desde el HMI?.

Saludos!

3
Hola buenas tardes. tengo un 8091 D2 y un hmi KINCO MT4434 TE
La cuestion es que quiero visualizar temperatura y establecer un SETPOINT desde el HMI.
La temperatura la puedo visualizar con la programacion que hay en la pagina y funciona bien.
Lo que no puedo hacer es escribir el SETPOINT en el HMI y que el PLC me lo reconozca para que, de acuerdo a si es mayor o menor la temperatura respecto al setpoint, se active o desactive una variable.
Envio adjuntas 2 imagenes donde muestra la programacion ladder y la configuracion del programa del HMI. Cualquier otra informacion que necesiten se la puedo enviar.
4
Kinco / Re:Configurar HMI esclava de un PLC genérico ModBus TCP
« Último mensaje por Soporte abril 22, 2021, 19:43:24 pm »
Buenas tardes.

Hasta donde sé, no se puede configurar el HMI como esclavo en ModBus TCP, solo tiene opción para HMI maestro.

Si se puede configurar el HMI como esclavo en ModBus RTU (por RS232/485).

Ver los siguientes ejemplos:

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

Saludos!

5
Kinco / Configurar HMI esclava de un PLC genérico ModBus TCP
« Último mensaje por Jose Hernandez abril 22, 2021, 18:12:18 pm »
Me gustaría saber cómo configurar la pantalla MT4532TE como esclava de un PLC. La pantalla estará conectada mediante ethernet al un plc Unitronics. Sé cómo configurar el HMI para que sea maestro y el PLC esclavo, pero no al revés.
6
StxLadder - Slicetex Ladder Designer Studio / Re:CONTROL PID
« Último mensaje por Soporte abril 07, 2021, 19:42:53 pm »
Buenas tardes,

Si es posible, en el ejemplo utiliza la salida PWM, variando su valor entre 0 y 1000.

Si usas la salida analógica, la misma varia entre 0 y 10V (si le escribís un valor de voltaje) o entre 0 y 1023, si escribís el valor digital.

En la función de inicialización del ejemplo, deberías colocar alguno de esos dos límites, y luego remplazar la salida PWM por la salida analógica VOUT1. La salida analógica, la hacés variar entre 0 a 1023 o 0 a 10V, depende de la función que elijas para modificar su valor.

Es lo mismo, nada más que cambiás el tipo de salida y el rango de valores de salida a controlar.

Si hay algo que no se entienda, avísame.

Saludos!
7
StxLadder - Slicetex Ladder Designer Studio / CONTROL PID
« Último mensaje por Mariano Leiva abril 07, 2021, 16:57:52 pm »
Hola buenas tardes. Tengo un 8091-d2 y quiero usar el controlador PID del mismo.
La diferencia con el ejemplo que hay en la pagina es que, la salida del controlador la quiero manejar con la salida analógica del PLC.
Es posible hacer eso?
Desde ya muchas gracias
8
STX8081 / Re:Consulta por problemas de conectividad con internet HTTP
« Último mensaje por PabloGa marzo 17, 2021, 17:15:05 pm »
Hola Boris, muchas gracias por tu respuesta.

Efectivamente, el problema es solo al usar http.

Este es un extracto del código que uso. La función "ThingSpeakUp" se ejecuta una vez por minuto. Cuando la transacción http finaliza, ejecuta "@OnHttpSendCompleted()". Según mi análisis, lo que ocurre es que @OnHttpSendCompleted() no se estaría ejecutando (deja de ejecutarse porque por alguna razón no se completó la transacción), y por ende ThingSpeakError queda = 255, que es el valor con el que se inicializó al iniciar la funcionalidad.
La forma que yo tengo de "detectar" este problema es -precisamente- detectando que ThingSpeakError se queda clavado en 255.

Buen viaje, y lo seguimos más adelante.
Gracias desde ya,
Pablo

// --------------------------------------------------------------------------------
// Funcion     : ThingSpeakUp
// Descripcion : Sube la información a ThingSpeak
//               SE EJECUTA 1 VEZ POR MINUTO
// --------------------------------------------------------------------------------

ThingSpeakUP()
{
   // Comprobar que no haya otras conexiones http en curso, ni el envío de email en curso
   if(ThingSpeakSending == 0 && EmailSending == 0)
   {
      // Marca que hay un envío en curso
      ThingSpeakSending = 1
         
      // Inicializar cliente Thingspeak
      ThingSpeakInit()
     
      // Limpia las variables con el string que se enviara a ThingSpeak:
      ThingSpeak_String1 = ""
      ThingSpeak_String2 = ""
      ThingSpeak_String3 = ""
      ThingSpeak_String4 = ""
      ThingSpeak_String5 = ""
      ThingSpeak_String6 = ""     
      ThingSpeak_String  = ""

      StrFormat(ThingSpeak_String1, 50, true, "field1=%d.%d&field2=%d&", Dato1,Dato1_d,Dato2)
      StrFormat(ThingSpeak_String2, 50, true, "field3=%d&", Letra1+Letra2+Letra3)
      StrFormat(ThingSpeak_String3, 50, true, "field4=%d.%d&", Dato2,Dato2_d)
      StrFormat(ThingSpeak_String4, 50, true, "field5=%d&field6=%d&", Tiempo_1,Tiempo_2)     
      StrFormat(ThingSpeak_String5, 50, true, "field7=%d.%d&", Dato3,Dato3_d)
      StrFormat(ThingSpeak_String6, 50, true, "field8=%d", Dato4)
     
      // Concatena los 6 segmentos
      StrFormat(ThingSpeak_String, 100, true, "%s%s%s%s%s%s", ThingSpeak_String1,ThingSpeak_String2,ThingSpeak_String3,ThingSpeak_String4,ThingSpeak_String5,ThingSpeak_String6)
       
      // Aquí hace la subida de la info a ThingSpeak
      HttpSendGet("/update?key=%s&%s", THINGSPEAK_APIKEY, ThingSpeak_String)
     
   }
   return 0
}

// --------------------------------------------------------------------------------
// Funcion     : ThingSpeakInit
// Descripcion : Inicializa las funcionalidades para ThingSpeak
// --------------------------------------------------------------------------------

ThingSpeakInit()
{
   ThingSpeakError = 255

   // Inicializar cliente HTTP.
   HttpSendInit("api.thingspeak.com", 80, HTTP_SEND_OPT_DEFAULT, 60)

   // Activar evento OnHttpSendCompleted()
   HttpSendSetCompletedEvent()
   
   return 0
}

// ********************************************************************************
// Funcion     : OnHttpSendCompleted()
// Descripcion : Evento generado al finalizar transaccion HTTP.
// ********************************************************************************

@OnHttpSendCompleted()
{   
   // Aquí si el evento http es por ThingSpeak
   if (ThingSpeakSending == 1)
   {     
      // Actualizar flag de error.
      ThingSpeakError = !HttpSendCheckValidTransaction()
   }
     
   // marca la finalización del comando http y habilita el siguiente
   ThingSpeakSending = 0
   
return 0
}
9
STX8081 / Re:Consulta por problemas de conectividad con internet HTTP
« Último mensaje por Soporte marzo 16, 2021, 20:21:20 pm »
Buenas tardes Pablo,

El problema es que de un momento para otro "dejan de andar": los correspondientes http utilizados para ThingSpeak o PushingBox dejan de realizar su función, y retornan códigos de error. Eso es así de un momento para otro, y no se subsana más .... HASTA QUE hago un PLC reset.
El sistema funciona bien por unos 5 días (a veces solo 2), y luego deja de andar la conectividad. Todo lo demás anda perfecto (incluyendo los emails y ModBus).

¿Cuál código de error te devuelve las funciones? ¿Y qué función?.

La solución que estoy buscando es una de dos: a) Encontrar la causa de este problema  o bien b) Como puedo ejecutar comandos para resetear completamente la parte de conectividad a internet (stacks, resolucion de nombres, etc, etc) que sea EQUIVALENTE a un PLC RESET ... pero sin hacer PLC RESET.  Será esto factible?.

Por lo que me comentás parece algo particular del protocolo HTTP, ya que el resto te sigue funcionando.

¿En alguna función relacionada, de argumento variable o con datos tipo array/string, podés estar estar pasando cadenas con formato demasiado largas? ¿O es simpre fija la información y acotada a un límite?.

No hay una forma de hacer un reset de memoria a todo el stack TCP/IP, sin justamente reiniciar. Lo que si, si tenés el fragmento de código que sospechás que no funciona y que pueda ser el origen del problema, seria ideal para tener una pista de la raiz del error, y ver que medida tomar. ¿Lo has identificado como para compartirlo?.

Esta semana voy a estar de viaje, pero si podés bridarme más información, lo veo al regresar.

Saludos!

10
STX8081 / Consulta por problemas de conectividad con internet HTTP
« Último mensaje por PabloGa marzo 16, 2021, 13:36:38 pm »
Hola Boris buen día,

Estoy tratando de resolver un problema de conectividad en el que llevo meses y no lo puedo resolver.

Tengo 2 tipos de conectividad en uso, en las que tengo problemas: a) Subida de datos a ThingSpeak b) Un servicio de notificación que es llama PushingBox, que es muy util y se invoca por http.

El problema es que de un momento para otro "dejan de andar": los correspondientes http utilizados para ThingSpeak o PushingBox dejan de realizar su función, y retornan códigos de error. Eso es así de un momento para otro, y no se subsana más .... HASTA QUE hago un PLC reset.
El sistema funciona bien por unos 5 días (a veces solo 2), y luego deja de andar la conectividad. Todo lo demás anda perfecto (incluyendo los emails y ModBus).

He actualizado firmware y PLCLadder a lo último, pensando que allí había algunas mejoras sobre la parte de stacks y TCPIP, pero no, el problema persiste.

Ya tengo hecho un pequeño código que todos los días "detecta" la situación y me envía un email para avisarme y resetar el PLC y así todo comienza a funcionar de nuevo. El problema es que resetear el PLC es demasiado "hard", y podría estar apagando dispositivos que están encendidos, y se pierden también los totalizadores y variables que están en RAM.

La solución que estoy buscando es una de dos: a) Encontrar la causa de este problema  o bien b) Como puedo ejecutar comandos para resetear completamente la parte de conectividad a internet (stacks, resolucion de nombres, etc, etc) que sea EQUIVALENTE a un PLC RESET ... pero sin hacer PLC RESET.  Será esto factible?  Si esto se puede hacer, yo puedo detectar diariamente cuándo se da la situación anómala, y "reseteo" lo necesario para que vuelva a funcionar.

Ya he probado a ejecutar   ResolvClearCache()  +  HttpSendClose()  + HttpSendSetCompletedEvent() cuando la situación se da, pero no soluciona el problema. No equivale a resetar el PLC.

Desde ya muchas gracias,
Pablo.
Páginas: [1] 2 3 ... 10