Mensajes recientes

Páginas: 1 2 [3] 4 5 ... 10
21
StxLadder - Slicetex Ladder Designer Studio / Re:RS 485 - cliente - ladder
« Último mensaje por Soporte junio 21, 2019, 19:59:37 pm »
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!
22
StxLadder - Slicetex Ladder Designer Studio / Re:RS 485 - cliente - ladder
« Último mensaje por fruiz junio 21, 2019, 09:53:25 am »
Buenas, logré conectarme a las tres balanzas y recibir datos de ellas. ahora tengo el programa que recibo datos que no puedo interpretar. por ejemplo cuando la balanza está en cero recibo 1024 y cuando esta a fondo de escala recibo 1056.

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

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



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!
23
STX8091 / Re:Agregar nuevo Cliente PLC al servidor TCP
« Último mensaje por Soporte 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!
24
STX8091 / Re:Agregar nuevo Cliente PLC al servidor TCP
« Último mensaje por Mariano junio 18, 2019, 20:37:38 pm »
Estimado Boris buenas noches.

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.
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?

Saludos

Mariano
25
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!

26
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? Como hacer un enclavamiento para que el START no pueda ser pulsado hasta alcanzar la temperatura seteada? No se genera conflicto entre el PID con la secuencia que sigue el programa de las salidas temporizadas? Se requiere uno de los modelos con mayor memoria? Gracias
27
StxLadder - Slicetex Ladder Designer Studio / Re:RS 485 - cliente - ladder
« Último mensaje por fruiz junio 07, 2019, 08:34:51 am »
GRACIAS!
28
StxLadder - Slicetex Ladder Designer Studio / Re:RS 485 - cliente - ladder
« Último mensaje por Soporte junio 06, 2019, 18:34:37 pm »
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!



29
StxLadder - Slicetex Ladder Designer Studio / RS 485 - cliente - ladder
« Último mensaje por fruiz junio 06, 2019, 13:47:28 pm »
Buenas tardes, tienes algún ejemplo como implementar 485 en ladder? algo me debe estar faltando porque no logro leer los registros de una balanza y quiero saber si el problema lo tengo en el programa. Ya probe conectando dos plc en el mismo cableado y funcionó correctamente, pero cuando conecto la balanza no recibo ningún dato.
Gracias
PD como alternativa puedo implementarlo en pawn, pero no me va bien mezclando pawn con ladder
30
Una cosnulta mas veo que esta la version StxLadder-Setup-1.9.9.zip con respecto a la 1.9.8 no hay que cambiar nada para el plc ? es decir version de Fimware, es porque no tengo para enviarle y que instale la 1.9.8. O si me puedes pasar el 1.9.8 para no tener problema.

No, respecto a la 1.9.8 no hay que cambiar el firmware si no utilizás funciones nuevas que salieron en la 1.9.9.

Igual, por si querés, podés descargar las versiones anteriores de StxLadder desde:

http://www.slicetex.com/ladder/soft/soft_old.php

Saludos!

Páginas: 1 2 [3] 4 5 ... 10