============================================== Title : STX8091 FIRMWARE Version : 220 Date : 10/Feb/2019 Author : Boris Estudiez Mail : devel@slicetex.com Website : www.slicetex.com (C) Copyright Slicetex Electronics 2001-2019 ============================================== DIRECTORIOS =========== ax/ : Firmware para modelos AX. bx/ : Firmware para modelos BX. cx/ : Firmware para modelos CX. dx/ : Firmware para modelos DX. DESCRIPCION =========== Firmware del dispositivo STX8091. Los archivos del firmware se distribuyen en el formato .SFF (Slicetex Firmware File). Para actualizar el firmware debe utilizar el entorno StxLadder desde el menu "PLC / Actualizar Firmware", ver documento STXLADDER-FU. Es posible tambien actualizar el firmware con la aplicacion AxBoot incluida en el paquete STX80XX-SDK (Software Development Kit), consulte la nota de aplicacion AN004. CAMBIOS ======= [Version 220] - Modelos AX/CX/DX: + Corrige bug de "evento que no se llama" al utilizar "samplers" para muestrear entradas analógicas y leer contenido al llenarse buffer interno. [Version 219] - Modelos AX/CX/DX: + Agrega función VoutWriteVolt() que permite especificar voltaje para salida analógica. + Agrega funcionalidad para utilizar puerto RS-485 con funciones de puerto serie existentes para crear protocolos arbitrarios: SerialRs485SelectTx(), SerialRs485SelectRx() y opción SERIAL_INTERFACE_RS485 para SerialInit(). [Version 218] - Modelos AX/CX/DX: + Agrega función SerialSendStr() para enviar cadenas por el puerto serie (con formato opcional). [Version 217] - Modelos AX/CX/DX: + Corrige bug en función UnpackBytes() + Agrega funciones StrPack() y StrUnpack() para realizar conversiones entre "strings packed" y "string unpacked". + Agrega función EepromMemSet() que permite inicializar un segmento de memoria EEPROM con un valor definido. + Corrige Bug cuando se intenta programar PLC mientras un Master ModBus RTU (ej: HMI SH-300, Kinco) esta conectado por RS232/485 y realiza múltiples peticiones en intervalos pequeños. + Corrige Bug cuando se realizan escrituras en memoria flash por configuración (ejemplo declaración de módulos, cambio de IP, etc) y hay un Master ModBus RTU (ej: HMI SH-300, Kinco) conectado por RS232/485. [Version 216] - Version preview, no oficial. [Version 215] - Modelos AX/CX/DX: + WebServer: Se procesan correctamente dos o más Query String enviados con diferentes formularios POST. Funciones relacionadas para procesar datos recibidos por metódo POST: WebServerCheckFieldValueStr(), WebServerGetFieldValueInt(), etc. + Función WebServerGetFieldValueStr() admite argumento "packed" para devolver string con formato packed o unpacked (valor por por defecto). + Funciones para memoria EEPROM: Corrige bug de límite de memoria 16KB para dispositivos con 32KB de memoria EEPROM. [Version 214] - Version preview, no oficial. [Version 213] - Version preview, no oficial. [Version 212] - Modelos AX/BX/CX/DX: + Corrige funciones para filtros de entradas analógicas (evita "error aleatorio de valor extremo"). + Minimo período de muestreo para filtros analógicos: 800 uS + Corrige bug "cuelgue" al intentar programar cuando sampler/filtros para entradas analógicas tiene frecuencia alta. - Modelos AX/CX/DX: + Servidor web: se amplia de 4 a 6 la cantidad de conexiones abiertas simultáneas. + Proceso de carga de programa a PLC mejorado. + Funciones SysGetDeviceName() y SysGetDevicePartNumber() admiten argumento "packed" para devolver string con formato packed o unpacked. [Version 211] - Modelos AX/BX/CX/DX: + Se verifica memoria RAM/ROM disponible en PLC antes de cargar programa (independiente de StxLadder) para evitar desborde de memoria. Se RECOMIENDA actualizar firmware a esta versión junto con StxLadder a versión 1.9.0 o superior. + Se amplia de 6 a 10 la cantidad de conexiones abiertas simultáneas TCP. + Se amplia de 12 a 20 la cantidad de puertos disponibles para escucha de paquetes TCP. + Se amplia de 2 a 4 la cantidad de conexiones abiertas simultáneas ModBus TCP (esto se conoce en documentación como parámetro "NumberMaxOfTransactions"). + Nueva función SysGetUptime() que devuelve el tiempo de actividad del sistema en segundos desde el último inicio/reset. + Nueva función SysGetPowerupTimestamp() que devuelve el timestamp del último inicio/reset. + Nueva función SysGetTickCount() que devuelve el contador de ticks del sistema operativo (frecuencia de cuenta definido por TICK_RATE_HZ). + Cambio interno para mejorar velocidad de puertos I/O. + Nuevas funciones SysGetScriptMemInfo(), SysGetTaskStackRemain(). [Version 210] - Version preview, no oficial. [Version 208] - Modelos AX/CX/DX: + Agrega soporte para actualizar RTC con hora/fecha de red utilizando servidores NTP. Funciones: NtpEnable(), NtpDisable(), NtpGetLibStatus(), NtpIsEnabled(), NtpIsRtcUpdated(). + Agrega funciones SysGetFirmInfo(), SysGetDeviceName(), SysGetDevicePartNumber() + Corrige retorno de función SysGetBoardVer() + Agrega funciones Int16ToInt(), PackBytesArrayToInt(), PackBytesToInt(), UnpackIntToByteArray(), UnpackFloatToInt16(), PackInt16ToFloat() + ModBus RTC y ModBus TCP en Modo Servidor / Esclavo: Se expande el número de "Holding Registers" a 64, nuevo rango de direcciones validas: ModBus TCP 40001 a 40064 (Modo Servidor / Esclavo) ModBus TCP 42001 a 42064 (Modo Servidor / Esclavo) - Modelos AX/BX/CX/DX: + Indicador de RTC ERROR o RTC FAIL, se limpia (vuelve a 0) correctamente, si se actualiza fecha/hora por cualquier medio disponible (comando, actualización por NTP, software StxLadder, etc). No es necesario volver a resetear al dispositivo. + Información "Uptime" calculada correctamente en modelos con RTC sin bateria. [Version 207] - Modelos AX/CX/DX: + Corrige bug en funcion TimeGetTimestamp(). + Correcciones internas en funciones de red que resuelven nombres de host (STMP, HTTP SEND). + Funcion ResolvLookUp() permite "forzar" resolver nombre con opcion RESOLV_OPT_FORCE en tercer argumento. + Correción para envio de mails con función SmtpSimple(), adaptado para mejorar calidad del mail y no ser considerado SPAM. + Mails enviados con funciones SMTP contienen encabezado "Reply-To". [Version 206] - Version preview, no oficial. [Version 205] - Modelos AX/CX/DX: + Cliente Web, funciones para realizar transacciones a servidor web, HTTP GET y POST. Funciones HttpSendGet(), HttpSendPost(), etc. + Funcion SmtpInitSimple() para enviar emails a traves de servidor SMTP configurado por el PLC. + Se agregan funciones para generar numeros aleatorios: Random(), RandomRange(), RandomSeed(), RandomR() y random(). + Mejora interna para funciones para modulo STX810. Manejo de argumentos fuera de escala. + Buffer de salida para cliente TCP se aumenta de 200 a 250 bytes. + Funciones que utilizan impresion de formato en cadena, aceptan un string de parametro de formato (%s)con longitud de hasta 200 caracteres. Ejemplo: StrFormat(), WebServerPrintStr(), xxx-Printf-xxx(), etc - Modelos AX/DX: + Importante: Solo lenguaje Ladder Correcta carga de valores de entradas DIN en memoria al inicializar el sistema. Se cargan valores inmediatos, para reflejar el estado actual por hardware de las entradas DIN. Versiones anteriores de firmware, partian de valores de memoria por defecto y la actualizacion inicial ocurria 10 mS despues. A menos que se utilizara el componente DinDelay, con argumento 0. [Version 204] - Version preview, no oficial. [Version 203] - Version preview, no oficial. - Modelos AX/CX/DX: + Funciones para controlar display LCD por I2C: dLcdPrintf(), dLcdSetSize(), dLcdClear(), etc [Version 202] - Modelos AX/CX/DX: + Importante: Restauracion de parametros de fabrica mediante boton DEF/BOOT, ahora requiere una secuencia para evitar una ejecucion indeseada. Ver hoja de datos actualizada del producto para procedimiento. + Protecciones contra borrado/escritura ocacional de memoria flash. + Mejoras internas en vectores ISR. + Corregido rango de valores de cuentas para Pawn de DinCounterGetValue(), limitado a 31 bits o valor 2147483647. + Corregido rango de valores de cuentas para Pawn de Count1GetEventCnt()y Count2GetEventCnt(), limitado a 31 bits o valor 2147483647. + El boton DEF/BOOT se puede leer como entrada DIN13, permite uso para proposito general con fines de prueba. + Otros cambios internos. [Version 201] - Modelos AX/CX/DX: + Funcion DinOnChangeSetEvent() acepta parametro SampleRate para especificar la velocidad de deteccion de cambios sobre entradas. + Nuevas funciones para utilizar todas las entradas DIN como contadores y medicion de frecuencia/RPM: DinCounterConfig(), DinCounterGetValue(), DinCounterGetFreq(), DinCounterGetRPM(), DinCounterClear(), DinCounterDisable(). [Version 200] - Modelos AX/CX/DX: + Soporte protocolo Wiegand 32 para Puerto de Expansion. + Corrige bug cuando se intenta programar PLC durante conexiones TCP/UDP activas que llaman eventos del PLC. + Servidor Web: soporte archivos JSON extension .json con contenido dinamico. [Version 199] - Modelos AX/CX/DX: + Corrige lectura de voltaje/corriente de canales VIN1, VIN2 y VIN3 cuando se utilizan funcines VinReadVolt() y VinToCurrent(). + Funcion Stx810_WriteChVolt() corregida en argumento voltaje. [Version 198] - Modelos AX/CX/DX: + Servidor Web: soporte para compresion de archivos. + Funcion TcpServerProcessId(), correcciones. + Funcion Stx810_WriteChVolt() mejorada, requiere StxLadder v1.7.4. [Version 197] - Modelos AX/CX/DX: + Soporte para modulo de expansion STX810 (salidas analogicas). Funciones Stx810_Init(), Stx810_WriteCh() y Stx810_WriteChVolt(). + Servidor ModBus TCP y ModBus RTU: Funcion MbServInit() y MbRtuServInit(), admite opcion ZERO ADDRESS OFFSET. Para mapear direcciones a partir de 0. + Servidor ModBus TCP y ModBus RTU: Se permiten leer bits con funciones ModBus (codigos 1, 2, 15) en bloques de hasta 32 bits para bobinas o entradas discretas. + Servidor Web: soporte archivos extension JavaScript (.js). + Funcion NetConfigOption() para configurar opciones de red, opcion disponible NET_OPT_SPLIT. + Nuevas funciones NetTcpSplitOff() y NetTcpSplitOn(). [Version 196] - Modelos AX/CX/DX: + Soporte para Servidor Web embebido. + Soporte para servidor TCP/IP de proposito general. + Soporte protocolo Wiegand 26 (para tarjetas) para Puerto de Expansion. + Mejor tiempo de respuesta en servidores TCP/IP. + Agrega funciones: SysGetIP(), SysGetDnsIP(), SysGetRouterIP() y SysGetSerialNumber(). + Nueva funcion Sqrt() para calcular raiz cuadrada. + Agrega funciones standard del lenguaje: numargs(), getarg(), setarg(), util para crear funciones Pawn que acepten argumentos variables. + Cliente TCP: ahora buffer de transmision permite 200 bytes. + Funcion StrFormat(): permite generar cadena de 400 caracteres. [Version 195] - Modelos AX/CX/DX: + Nueva opcion SMTP_OPT_NO_AUTH para SmtpInit(). Permite enviar mails sin autentificar en servidores habilitados. [Version 194] - Modelos AX/CX/DX: + Nueva funcion I2C: I2C0ForceStandardSpeed(). [Version 193] - Modelos AX/CX/DX: + Funcion UdpSendWakeOnLan(): Permite activar computadoras mendiante protocolo Wake-On-LAN. + Nueva funciones matematicas para logaritmos: LogN(), Log10(). + Funciones para utilizar bus I2C en puerto de expansion: I2C0MasterSend(), I2C0MasterReceive(), I2C0MasterSendProtocol(), I2C0MasterSendByte(), I2C0MasterReceiveByte(), I2C0Init(), I2C0SetSpeed(), etc [Version 192] - Modelos AX/CX/DX: + Funcion MbClGetRxData() para ModBus TCP, agrega nuevo argumento ByteOffset. + Soporte para "Modulos > Administracion de expansiones > STX570" desde StxLadder, lenguaje Ladder. [Version 191] - Modelos AX/CX/DX: + Nueva funcion PwmInit(Ch): Permite re-inicializar un canal PWM que fue inicializado como salida DOUT. + Nueva funcion VinToCurrent() para leer corriente utilizando un resistor como elemento de sensado. - Modelos AX/BX/CX/DX: + Se incrementa el requisito de firmware minimo a 191, lo que fuerza a actualizar StxLadder a version 1.6.4 o superior para usar este firmware. + Primera version comercial-final p/STX8091 liberada. [Version 190] Modelos AX/BC/CX/DX: + Version preview-beta p/STX8091 liberada. [EOF]