Inicio > Foro > Información del entorno de desarrollo de LogicLab > Problemas de compilacion
- Este tema tiene 5 respuestas, 4 participantes y se actualizó por última vez 3 años, hace 6 meses da Sergio Bertana.
-
autorPublicación
-
Octubre 30, 2018 en 10: 27 am #45721Paulpartícipe
Si completo mi solicitud utilizando el FB FileMemoryDump con Logiclab 4.0 + library eLLabLogLib_B200 obtengo el resultado:
compilación: OK.
compilación con simulador activado:FileMemoryDump (286) - error G1546: Acumulador => Convertir un número en una cadena
FileMemoryDump (286) - error G0057: JMPCN => operando booleano requeridoCon Logiclab 4.0 + eLLabLogLib_B310 biblioteca obtengo el resultado:
compilación: OK.
compilación con simulador activado: error pero sin descripción del error.Con Logiclab 5.0 + eLLabLogLib_B200 biblioteca obtengo el resultado:
Archivos de programa (x86)Elsist\ LogicLab \ Libraries \ eLLabLogLib_B200.plclib (286) - error G1799: $$ Accumulator $$ => Convertir una cadena en un número
Con la biblioteca Logiclab 5.0 + eLLabLogLib_B310:
TENGO QUE CAMBIAR EL CÓDIGO PARA CUMPLIR CON LAS RESTRICCIONES EN LA DECLARACIÓN DE PUNTOS.
Resultado de la finalización: OK.
compilación de resultados con simulador activado:Archivos de programa (x86)Elsist\ LogicLab5 \ Libraries \ eLLabLogLib_B310.plclib (88) - error G0129: NULL => Comparación entre referencia y no referencia
Archivos de programa (x86)Elsist\ LogicLab5 \ Libraries \ eLLabLogLib_B310.plclib (280) - error G0129: NULL => Comparación entre referencia y no referenciaSe producen problemas similares cuando se utilizan las versiones eLLabUtyLib_C040 y C060 de modbusMaster. Me pregunto si es un problema de simulador.
Octubre 30, 2018 en 10: 37 am #45728Sergio BertanaAdministrador del foroEn la evolución de las versiones de LogicLab que siguen también los cambios en las especificaciones IEC61131, se han introducido mayores restricciones en el control de código. Y puede suceder que el compilador del objetivo sea menos restrictivo que el compilador del simulador o viceversa. Por ejemplo, el error JMPCN podría surgir del código:
IF (Var) THEN …. END_IF;
Paloma Var no es un BOOL. Esto fue aceptado antes, luego nunca lo ha sido. Ahora no voy a enumerar todas las restricciones que se han agregado a lo largo del tiempo. Digamos que, como regla general, siempre es utilizar la última versión de LogicLab con la última versión de las bibliotecas.
Pero como somos falaces, también puede ser que en algunas funciones y / o FB de una biblioteca todavía haya condiciones que determinan la aparición de advertencias o, peor aún, errores en la compilación. Tan pronto como seamos notificados, los resolveremos.
Tenga en cuenta que, por lo general, las bibliotecas se prueban en el destino real, puede ser que en el simulador se generen advertencias y errores que no aparecen en el destino. Además, solo algunas funciones y FB se pueden usar en el simulador.
Noviembre 21, 2018 en 1: 08 pm #45899Alessandro CampodonicopartícipeBuenas noches, me encontré con un problema similar después de actualizar a LogicLab 5 en la compilación con el EMailSend FB, este es el error que me da en la compilación:
GESTIONE_MAIL(35) – errore G1799: $$Accumulator$$ => Conversione di una stringa in un numero
y esta es la línea de comando "ofensiva":
i:=TO_UINT(SysVarsnprintf(Subject, SIZEOF(Subject), ‘SANIBOX: %s’, STRING_TYPE, ADR(NOME_SANIBOX)));
Donde la variable "name_sanibox" es una variable global STRING 32 pasada por el panel HMI que me muestra el nombre del HMI de hecho. La variable "Asunto" es una variable de cadena local en el PROGRAMA "email_management". La variable "i" es una INT siempre local.
la línea de comandos que copié de su ejemplo de uso de FB emailsend y la adapté a mis necesidades. Luego conecto la variable "asunto" a la entrada del emailsend FB así
MAIL.Subject:=ADR(Subject);
Lo que me gustaría obtener es en los correos electrónicos enviados por el sistema, la parte del objeto es SANIBOX: "NOME_SANIBOX", así que según el nombre que establezca en las distintas máquinas tendré correos electrónicos divididos en el asunto por nombre.
Todo funcionó con LogicLab 4.
Noviembre 21, 2018 en 1: 18 pm #45905Sergio BertanaAdministrador del foroComo dije antes, se han introducido más restricciones en el control de código, en su caso, el prototipo de la función SysVarsnprintf (Lo ves colocando el mouse sobre el nombre de la función) es:
(@USINT, UDINT, STRING, USINT, UDINT)
Entonces, el primer parámetro debe ser una dirección, ahora pasando el objeto Subject con LogicLab4, ya que era una variable de cadena, consideraba su dirección por defecto, ahora debe especificarla. Entonces tienes que escribir:
i:=TO_UINT(SysVarsnprintf(ADR(Subject), SIZEOF(Subject), ‘SANIBOX: %s’, STRING_TYPE, TO_UDINT(ADR(NOME_SANIBOX))));
Octubre 7, 2020 en 8: 32 am #57827MarcooopartícipeCompilo mi programa y me sale este error:
HWgHTemp485.File – error A4108: eFILEP => Base object not found
¿Qué significado tiene?
Octubre 7, 2020 en 8: 42 am #57830Sergio BertanaAdministrador del foroCon la transición a la versión XUnified (Ver artículo) cambiamos los nombres de algunos objetos (Funciones y FB) y de algunas declaraciones de tipo, en su caso, el puntero del archivo será FILEP se ha convertido eFILEP.
Probablemente esté creando un programa para un sistema XTarget12 pero está utilizando el FB HWgHTemp485 tomado de la biblioteca eLLabUtyLib de la nueva distribución de LogicLab que ya se ha convertido para su uso en sistemas XUnified.
Hemos proporcionado para estos casos y para todos los casos en los que desee utilizar los ejemplos del manual en línea en los sistemas XTarget12 una biblioteca especial, debe insertar la biblioteca en su proyecto eLLabXTargetAdjLib.
-
autorPublicación
- Debe iniciar sesión para responder a este tema.