Inicio > Foro > Programación IEC 61131 (LogicLab) > Comunicación Modbus entre SlimLine e inversor
- Este tema tiene 14 respuestas, 1 participante y se actualizó por última vez 2 años, hace 5 meses da Sergio Bertana.
-
autorPublicación
-
Marzo 4, 2019 en 3: 44 pm #46707Alessandro Campodonicopartícipe
Necesitaría comunicarme con el inversor 4 schneider ATV12 para darle un comando básico, dirección de inicio, referencia de velocidad y tomar algunos otros datos básicos, absorción, frecuencia, alarmas.
La comunicación del ATV12 es modbus en RS485, yo uso uno SlimLine CPU compacta ethernet, que tiene un puerto TCP / IP y un puerto RS232, le di un vistazo al foro y no sé si entendí bien, pero podría existir la posibilidad de tener un convertidor TCP / IP -> Modbus RS485 directamente a SlimLine utilizando varios FB? ¿Entendí correctamente o estoy completamente fuera de la pista?
De cualquier otra manera, todavía podría usar el puerto RS232 de la CPU, pero en este punto tendría que poner un convertidor, ¿no?
Para información, ya uso la conexión TCP / IP del SlimLine para comunicarse con un panel weintek HMI y un enrutador.
Marzo 4, 2019 en 5: 34 pm #46756Sergio BertanaAdministrador del foroEl sistema SlimLine puede hacer ambas cosas como un convertidor TCP / serie (Tema) como convertidor Modbus TCP / Modbus RTU (Tema) pero estas dos funciones no son necesarias en su caso. Por lo que tengo entendido, desea administrar el inversor desde un programa de PLC.
Para ello solo necesitas instanciar un FB. ModbusMaster y administrar comandos a los inversores (puede consultar este tema). Por supuesto, fue mejor usar un módulo de CPU MPS054A1 * 0 que ya tiene el puerto serie RS485 aislado, pero si tiene el modelo compacto en la gama de convertidores Serie / Serial Usted puede encontrar el convertidor que sea adecuado para usted.
En cuanto a la conexión TCP puedes usarla para conectarte con lo que quieras, los únicos límites están dados por la cantidad de sockets que puede manejar el sistema (actualmente 32) y por el uso de memoria reubicable RMalloc. Cada socket usa la cantidad de memoria definida en su creación.
Abril 17, 2019 en 12: 04 pm #47310Alessandro CampodonicopartícipeGracias por las aclaraciones, todavía tengo una pregunta, ¿para poder administrar todos los inversores 4 que necesitaría 4 serie / serie convertidores? ¿O es uno suficiente?
En caso de que uno sea suficiente, ¿cómo deberían estar conectados?
Abril 17, 2019 en 12: 09 pm #47314Sergio BertanaAdministrador del foroLa característica principal del protocolo Modbus es precisamente la de poder operar en multipunto, es decir, tener un sistema maestro que en un diálogo de conexión de dos cables con uno o más sistemas esclavos, cada sistema esclavo tendrá su propia dirección (nodo Modbus definido).
Entonces, en su caso, tendrá que configurar una dirección diferente (Modbus Node) para cada inversor y luego podrá hablar con todos con una sola línea serie RS485. La conexión es simplemente en paralelo, los dos cables están en paralelo en todos los dispositivos (ver esto nota de aplicación).
Abril 18, 2019 en 12: 02 pm #47318Alessandro CampodonicopartícipePerfecto, muy amable como siempre. Última pregunta :) en lugar de utilizar un convertidor RS485 / ethernet tcp / ip y conectar los inversores en tcp / ip alelsist ¿Podría tener la ventaja de poder acceder directamente a los inversores a través de easyaccess? ¿Entonces tal vez sería posible cambiar los parámetros a distancia?
Abril 18, 2019 en 12: 11 pm #47320Sergio BertanaAdministrador del foroUn poco de confusión ... Mientras tanto, si usa un convertidor Ethernet / Serial para comunicarse con los inversores y si desea acceder a él desde la HMI a través de EasyAccess, debe "desengancharlo" del SlimLine, de lo contrario, el ModbusMaster de la SlimLine se encarga de la comunicación.
Mucho, pero mucho, mucho mejor es usar el puerto serie delo SlimLine para dialogar con el inventor, luego pasar a SlimLine un servidor TCP en un puerto TCP (supongamos que el puerto 1000). Cuando se conecta desde Ethernet al puerto 1000 del SlimLine (Puede hacerlo usando EasyAccess), desde el programa puede deshabilitar ModbusMB FB y habilitar FB DataStreamExch o ModbusTCPGateway para enrutar datos desde la conexión Ethernet al puerto serie al que se encuentran los inversores (Foro).
Noviembre 27, 2020 en 8: 09 am #58344Alessandro CampodonicopartícipeEstoy usando el Modbus Master FB con excelentes resultados para comunicarme con 5 inversores. Pero aparentemente al azar el FB me reporta un error que espiarlo con Toolly es 10007506, si no lo he entendido mal indica un error en la recepción de datos, este error sin embargo no interrumpe la comunicación, la cual continúa sin problemas. El error sale al azar un poco en todos los inversores más o menos cada 2/4 minutos, aquí está el informe de la consola espía
03:23:03 (.310)|Tx|02 03 1C 20 00 01 82 63 03:23:03 (.011)|Rx|02 03 02 00 03:23:03 (.002)|Rx|Error:10007606, On Case:212, Back:51 ... 03:23:05 (.310)|Tx|03 03 1C 20 00 01 83 B2 03:23:05 (.016)|Rx|02 03 02 00 05 01 B7
Está claro que faltan algunos caracteres en la respuesta, pero no entiendo por qué. La configuración de la velocidad en baudios, etc. Yo diría que es correcta, de lo contrario, creo que nunca se comunicaría, sino que puedo controlar los inversores.
El tiempo de espera es de 100 mS, el retardo es de 10 mS (pero incluso llevándolo a valores más altos de 300 mS) el problema ocurre igual. Algún consejo ?
Noviembre 27, 2020 en 8: 21 am #58347Sergio BertanaAdministrador del foroComo dices y como puedes ver en el informe de espionaje, los personajes de la respuesta se pierden en el FB ModbusMaster el parámetro debe estar definido IFTime indicando el tiempo entre cuadros. En el protocolo RTU los paquetes están separados por un tiempo que varía según la velocidad en baudios, por lo que debe configurarse correctamente.
Si el dispositivo que responde por algún motivo inserta una pausa en la respuesta, el FB lo interpreta como el final del paquete y va a comprobarlo, encontrándolo por error.
El FB ModbusMaster_v1 se ha rediseñado por completo, se ha eliminado el control sobre el tiempo entre cuadros, el paquete es completamente olfateado y verificado haciéndolo independiente de los tiempos.
No me digas que FB usas, te sugiero que cambies a la versión v1 y verifiques su funcionamiento, cuidado que en la transición a v1 cambiamos la definición dy los tiempos de espera y retardo, ahora son valores REALES expresados en segundos.
Noviembre 27, 2020 en 11: 34 am #58348Alessandro CampodonicopartícipeGracias por la respuesta rápida, quería intentar actualizar la biblioteca con el FB ModbusMaster_v1 ¿Dónde puedo encontrarlo?
Noviembre 27, 2020 en 11: 37 am #58350Sergio BertanaAdministrador del foroNoviembre 27, 2020 en 2: 04 pm #58352Alessandro CampodonicopartícipePerfecto, parece que al actualizar a ModbusMaster_v1 el problema se ha ido.
¡Siempre muy útil y útil como siempre!
Febrero 18, 2021 en 8: 24 am #59081Alessandro CampodonicopartícipeDeambulando por el foro llegué a conocer este FB ACModbus, considerando que en ciertos instrumentos utilizo sus sistemas para comunicarme vía Modbus RS485 con 5 Inverters, me gustaría tener más información sobre este FB que presumo nació recientemente.
Si no lo he entendido mal, es "conveniente" usarlo cuando necesite leer registros no consecutivos en varios dispositivos, ¿correcto?
¿Cómo mejora la comunicación? ¿Podría el uso de este FB mejorar el rendimiento de la comunicación y, por tanto, también la velocidad?
Gracias por las explicaciones
Febrero 18, 2021 en 8: 33 am #59086Sergio BertanaAdministrador del foroComo bien dijo el FB ACModbus, Array command Modbus, fue creado precisamente para facilitar la comunicación con los dispositivos Modbus al permitirle definir los comandos que se ejecutarán a través de una variedad de estructuras de tipo ACMODBUS_DATA.
El uso del FB ciertamente simplifica la escritura de programas ya que se encarga de todas las operaciones de programación de los comandos, optimizando el paso de un comando a otro, precisamente con el objetivo de obtener el mejor rendimiento posible.
Pero si quien escribió un programa en ST usando el FB ModbusMaster al programar adecuadamente los comandos ya ha implementado todas las estrategias posibles para minimizar las veces que ya ha obtenido el máximo rendimiento y por tanto también el FB ACModbus no podrá hacer más.
Noviembre 22, 2021 en 8: 12 am #62156Andrea T.partícipeLo siento, no puedo encontrar el bloque de funciones ModbusMaster en la biblioteca eLLabMdbDevsLib.plclib.
Noviembre 22, 2021 en 8: 21 am #62167Sergio BertanaAdministrador del foroNo sé qué versión de la biblioteca tiene, pero si descarga la última versión del sitio, seguramente encontrará el FB de administración maestra de Modbus.
Ahora se llama ModbusMaster_v1, quien esté familiarizado con nuestras bibliotecas sabe que cada vez que se cambian los parámetros de E / S en un objeto de biblioteca (Función o FB), el nombre del objeto también se cambia agregando una versión, como en este caso "_v1".
Si se ha utilizado un objeto ModbuMaster anterior en un proyecto antiguo, se puede recuperar de la biblioteca. eLLabObsoleteLib.
No hace falta decir que, en caso de revisión de un proyecto antiguo, sería mejor utilizar siempre las últimas versiones disponibles.
-
autorPublicación
- Debe iniciar sesión para responder a este tema.