Mensajes recientes

Páginas: 1 ... 7 8 [9] 10
81
STX8140 / Re:HTTP GET a diferentes IP
« Último mensaje por Soporte mayo 13, 2022, 10:23:37 am »
Buenos días Esteban.

Conectarse al mismo tiempo no se puede. Lo que podés hacer es conectarte a un Sonoff primero, enviar los datos, y luego modificar la dirección de destino con el componente HttpSendInit (HTTP SEND INIT) de lenguaje Ladder para el próximo Sonoff.

Podrías implementar una función Ladder, que tome como argumento un número del 1 al 10. De acuerdo al número recibido, llama a HttpSendInit con una dirección precargada. Luego te conectás por HTTP GET.

Para que HttpSendInit tenga efecto, la actual conexión debe estar cerrada o finalizada, no en curso, sino el componente no actualiza la dirección hasta que la conexión anterior no haya finalizado, devolviendo ENO=0.

El evento "OnHttpSendCompleted" se llama cuando una transacción HTTP fue completada, te puede ser de utilidad para cambiar desde ahí los parámetros de conexión con HttpSendInit para la próxima conexión. Ver ejemplos.

Saludos!
82
STX8140 / HTTP GET a diferentes IP
« Último mensaje por Esteban E mayo 12, 2022, 17:46:48 pm »
Hola Ing. Boris: Estoy necesitando controlar distintos dispositivos Sonoff a los cual los modifico y le cargo un web server de los cuales con método http get puedo hacerlo encender o apagar, el inconveniente que tengo es que en el PLC solo puedo hacer con uno solo y necesito con alrededor 10 unidades. Cada uno de los dispositivo que controla solo un relé tiene un dirección IP distinta.


Saludos.
Esteban
83
STX8180 / Re: Rango de direcciones Modbus TCP y Modbus RS-232
« Último mensaje por leonardo mayo 11, 2022, 18:00:14 pm »
Muchas gracias! espero con ansiedad! 
84
STX8180 / Re: Rango de direcciones Modbus TCP y Modbus RS-232
« Último mensaje por Soporte mayo 11, 2022, 17:14:17 pm »
Buenas tardes, estuve leyendo el tema del foro donde se habla del rango de direcciones que se pueden utilizar en modbus tcp y vi que son solo 64. Existe una posibilidad de llevarlo a 100 direcciones?

Buenas tardes. Si, para este modelo podríamos ampliarlo, estaba planificado darle mayor cantidad de direcciones. Es un tema de memoria interna donde se le asigna más cantidad de RAM para los registros.

Dame hasta el viernes y te subo por este medio una actualización de firmware que te permita utilizar más direcciones.

Saludos!
85
STX8180 / Rango de direcciones Modbus TCP y Modbus RS-232
« Último mensaje por leonardo mayo 11, 2022, 14:40:33 pm »
Buenas tardes, estuve leyendo el tema del foro donde se habla del rango de direcciones que se pueden utilizar en modbus tcp y vi que son solo 64. Existe una posibilidad de llevarlo a 100 direcciones? Como podría hacer si no fuese posible ampliar a 100 direcciones? Solo se me ocurre multiplexar las variables.

Un cordial saludo
86
Mil disculpas. Ya encontré el manual que me dice todas las funciones. Muchas gracias!!! IntToFloat, FloatToInt.

Buenos días. Ningún problema, la finalidad es aprender.

No me di cuenta antes porque estoy acostumbrado que en el visual basic cuando las escribis se ponen con caracteres azules.

Si, en lenguaje Pawn, no hay "cast" propiamente dicho. Todas las variables por defecto son enteros de 32-bits con signo. Pero se pueden interpretar de diversas formas. Un float, no es más que un valor de 32-bits con un formato binario especial. Por ello, cuando llamamos a IntToFloat() lo que hacemos es convertir un número al formato binario float,  y viceversa con FloatToInt().

Para enteros de 16-bits, están las funciones UnpackFloatToInt16() y PackInt16ToFloat() que las explica el mismo manual.

Para declarar una variable como float, usamos el tag "Float:":

Código: (Pawn) [Seleccionar]
new Float: Voltaje
Otra consideración, un poco más avanzada, pero que puede ser útil. Si tenemos un valor float codificado en una variable entera, por ejemplo lo obtuvimos de un registro ModBus, en este caso sí usamos un "cast". Supongamos que de dos registros ModBus recibidos de 16-bits cada uno, armamos un entero de 32-bits llamado "TemperaturaModBus". Como "TemperaturaModBus" es un entero, pero que almacena un valor binario codificado como float, hacemos un cast para que el lenguaje lo interprete correctamente como un float.

Ejemplo:

Código: (Pawn) [Seleccionar]

// Variable de 32-bits con un valor codificado en float que fue armado previamente al recibir por ModBus.
// Pawn sin embargo la trata como un entero normal (si lo imprimimos su valor será un número gigante).
new TemperaturaModBus 

// Variable que Pawn interpreta como float.
new Float: Temperatura

// Hacemos un "cast" para copiar el entero codificado en float a la variable float.
Temperatura = Float: TemperaturaModBus

// Ahora podemos leer y usar "Temperatura" en su valor normal float, ejemplo: 25.5,
// ya que Pawn sabe que "Temperatura" fue declarado como "Float" y lo interpreta normalmente.



Saludos!
87
Mil disculpas. Ya encontré el manual que me dice todas las funciones. Muchas gracias!!! IntToFloat, FloatToInt. No me di cuenta antes porque estoy acostumbrado que en el visual basic cuando las escribis se ponen con caracteres azules.
88
Buenos días, disculpen la molestia y la ignorancia de este triste servidor. No tengo mucho conocimiento del lenguaje pawn y aunque he buscado en internet no he encontrado mucho para leer. Estoy intentando hacer un calculo entre un integer y una variable float. Existe un modo para convertir el float en integer y viceversa?
89
STX8180 / Re:Wincc 7 (SCADA) ModBus TCP, tiempo de repuesta
« Último mensaje por Soporte mayo 09, 2022, 11:04:54 am »
Quedó funcionando perfectamente con esa función! Muchisimas gracias!!!!

Bien, perfecto   :)
90
STX8180 / Re:Wincc 7 (SCADA) ModBus TCP, tiempo de repuesta
« Último mensaje por leonardo mayo 09, 2022, 11:00:59 am »
Quedó funcionando perfectamente con esa función! Muchisimas gracias!!!!
Páginas: 1 ... 7 8 [9] 10