Mensajes recientes

Páginas: 1 ... 7 8 [9] 10
81
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
82
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!
83
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.
84
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?
85
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   :)
86
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!!!!
87
STX8180 / Re:Wincc 7 (SCADA) ModBus TCP, tiempo de repuesta
« Último mensaje por Soporte mayo 09, 2022, 10:51:43 am »
Estoy leyendo dos variables ahora. Estoy usando el lenguaje ladder. empecé leyendo aproximadamente 30 variables y he disminuido a 2 pero se comporta de igual manera. Tambien deshabilite la lectura de variables en el PLC y solo está escribiendo en los registros. Tambien en el wincc me muestra como si estuvieran las variables desconectadas y se conectan un por un instante y ahi actualiza en valor y se vuelven a desconectar.

Probar agregar el siguiente código en diagrama Inicio.sld (solo componente NETWORK SPLIT con opción SPLIT=OFF):



Esto hace que las conexiones TCP de redes sean más estándar, a veces cada soft tiene sus particularidades.

Avísame si te da resultado.

PD: Para lenguaje Pawn, el código equivalente es:

Código: (Pawn) [Seleccionar]
   // Deshabilitar la división de paquetes de red en el PLC.
   NetTcpSplitOff()
88
STX8180 / Re:Wincc 7 (SCADA) ModBus TCP, tiempo de repuesta
« Último mensaje por leonardo mayo 09, 2022, 10:43:17 am »
Estoy leyendo dos variables ahora. Estoy usando el lenguaje ladder. empecé leyendo aproximadamente 30 variables y he disminuido a 2 pero se comporta de igual manera. Tambien deshabilite la lectura de variables en el PLC y solo está escribiendo en los registros. Tambien en el wincc me muestra como si estuvieran las variables desconectadas y se conectan un por un instante y ahi actualiza en valor y se vuelven a desconectar.
89
STX8180 / Re:Wincc 7 (SCADA) ModBus TCP, tiempo de repuesta
« Último mensaje por Soporte mayo 09, 2022, 10:40:05 am »
Buenos días.

Buen dia, ha mejorado un poco pero no lo suficiente. Lee mas o menos una vez cada 10-20 segundos dos variables.

Es mucho tiempo, hay otras posibilidades, decime ¿qué lenguaje estás utilizando en el PLC, Ladder o Pawn?.

Lo extraño que no logro comprender es que con la aplicacion Modbus TCP Master que trae el Ladder designer lo puedo leer cada vez que quiero sin problemas. He usado wincc con el driver para modbus con otros dispositivos y no he tenido nunca un problema de este tipo. Por ejemplo lo utilicé con el Siemens Sentron pac

En el proyecto de Wincc 7 con el que estás haciendo la prueba, ¿cuántos registros estás leyendo al mismo tiempo?.

Saludos!



90
STX8180 / Re:Wincc 7 (SCADA) ModBus TCP, tiempo de repuesta
« Último mensaje por leonardo mayo 09, 2022, 09:53:23 am »
Buen dia, ha mejorado un poco pero no lo suficiente. Lee mas o menos una vez cada 10-20 segundos dos variables. Lo extraño que no logro comprender es que con la aplicacion Modbus TCP Master que trae el Ladder designer lo puedo leer cada vez que quiero sin problemas. He usado wincc con el driver para modbus con otros dispositivos y no he tenido nunca un problema de este tipo. Por ejemplo lo utilicé con el Siemens Sentron pac
Páginas: 1 ... 7 8 [9] 10