Note di rilascio per il Firmware SFW198

» Home » Note di rilascio per il Firmware SFW198

Questa Knowledge è applicabile ai codici: MPS054***0, PCB137***0

Note di rilascio del firmware installato sulle CPU SlimLine Cortex M7 LogicLab.


Codice package completo: N/AData rilascio: 23/11/2016XTarget_12
Codice Fw: SFW198A010Codice Bootloader: N/ACodice Webpages: MDP020C000
  • Primo rilascio

Codice package completo: N/AData rilascio: 15/02/2017XTarget_12
Codice Fw: SFW198A020Codice Bootloader: N/ACodice Webpages: MDP020C000

Migliorie e nuove implementazioni

  • Modificato comandi FTP per tornare path con ‘/’,  per compatibilità con Filezilla,
  • Bloccati i comandi di accesso alla SD Card quando questa non è inserita nel sistema,
  • Bloccato utilizzo delle Function SysUDPSktSend e Sysfopen nelle task Slow o Fast visto che la gestione dello stack TCP/IP è svolta da sistema operativo in main,
  • Bloccato utilizzo delle FB SysSktListen SysUDPSktRcv SysIPReach nei task diversi da Back visto che la gestione dello stack TCP/IP è svolta da sistema operativo in main,

Bug risolti

  • Risolto bug minori su TCP server,
  • Risolto bug su ping da telnet in caso di URL non raggiungibile,
  • Risolto alcuni bug legati all’accesso ai file,
  • Risolto bug in settaggio login e password con comando userconfig (permetteva di inserire un valore più lungo di 10 caratteri memorizzandone solo 10),
  • Risolto bug in SysSktListen (dava il Done anche quando non faceva bind in UDP),
  • Risolto bug legato al DNS (quando l’url non era risolvibile o il DNS server non era raggiungibile poteva causare il reboot del PLC),
  • Risolto bug legati al mancato controllo lunghezza dati presenti nei protocolli ICMP, TCP e UDP (In alcune reti si poteva avere il reboot del PLC).

Codice package completo: PCK043A000Data rilascio: 17/03/2017XTarget_12
Codice Fw: SFW198B000Codice Bootloader: SFW200A000Codice Webpages: MDP020C000

Migliorie e nuove implementazioni

Bug risolti

  • Risolto bug in SysVarfprintf e SysVarsnprintf (su tipi INT e SINT non formattavano i valori negativi).
  • Risolto bug che non consentiva di gestire variabili VAR_IN_OUT delle FB se di tipo array o struct.

Codice package completo: PCK043A010Data rilascio: 07/04/2017XTarget_12
Codice Fw: SFW198B010Codice Bootloader: SFW200A000 Codice Webpages: MDP020C000

Migliorie e nuove implementazioni

  • Implementato gestione CAN bus.

Codice package completo: PCK043A020Data rilascio: 27/02/2018XTarget_12
Codice Fw: SFW198B020Codice Bootloader: SFW200A000 Codice Webpages: MDP020C000

Bug risolti

  • Risolto bug comunicazione con moduli di estensione con gestione EchoFlush sulla loro seriale (es.: Pcb099).
  • Risolto bug relativo a comparsa retries su bus I2c quando si usano moduli di estensione Pcb099 o Pcb122 che usano la seriale PCOM.
  • Risolto bug evidenziabile quando, sul bus di estensione I2C, sono presenti più di 3 Pcb122.

Codice package completo: PCK043A030Data rilascio: 12/10/2018XTarget_12
Codice Fw: SFW198B030Codice Bootloader: SFW200A000 Codice Webpages: MDP020C000

Bug risolti

  • Aumentato il tempo di attesa operazioni su flash SPI (poteva produrre l’errore “AT45DB161E IsBfEqToMem busy”).
  • Ridotto lo stress di scrittura della flash SPI legato al numero max di scritture.

Codice package completo: PCK043B000Data rilascio: 27/04/2018XTarget_12
Codice Fw: SFW198C000Codice Bootloader: SFW200A000 Codice Webpages: MDP020D100

Migliorie e nuove implementazioni

  • Implementazione nuovo File system.
    Attenzione! Procedendo con l’aggiornamento, i dati nei supporti del dispositivo potrebbero essere persi. L’aggiornamento porterà il dispositivo allo stato di Default delle impostazioni di fabbrica.
    • Ora il disco su memoria FLASH interna al sistema è il disco “C:” la memoria SDCard è il disco “D:”
    • Su entrambe dischi è possibile creare più files e directories senza le limitazioni di numero e dimensione imposte dal file system precedente.
    • Con il comando “Format n:” (dove n è C o D) il disco viene formattato FAT_32_ELS, un FAT32 proprietario che, pur mantenendo la sicurezza dell’integrità dei dati allo spegnimento del sistema, permette di utilizzare 14 caratteri maiuscoli/minuscoli per il nome di file e dir (si può utilizzare un solo “.” di separazione sul nome).
      Con il comando di formattazione è anche possibile definire la dimensione del cluster.
  • Implementazione del protocollo eJProbe in formato JSON su comunicazione HTTP per l’aggiornamento di elementi presenti delle pagine html attraverso Ajax (Vedi questo link).
  • Aggiunto DHCP client per ottenere la configurazione di rete da un server DHCP.
  • Aggiunto interfaccia di rete localhost “127.0.0.1”.
  • Sono ora possibili 2 connessioni contemporanee su porta 23 telnet, è ora possibile, ad esempio, dialogare in telnet aprendo una connessione localhost da programma utente LogicLab.
  • Implementato l’algoritmo Nagle, per le comunicazioni in TCP, in tal modo si è velocizzato lo scambio pacchetti tra client e server, migliorando il throughput, ad esempio, dei server FTP e HTTP.
  • Inserito possibilità di controllo indici array e divisione per zero nel programma PLC. In tal modo, da LogicLab, è possibile, nelle option del progetto, attivare i check:
    • controllo runtime dei limiti degli array
    • controllo runtime della divisione per zero che, in caso di tali errori, se LogicLab è connesso, stoppano il PLC; altrimenti lo riavviano.
  • Ora gli errori generati con la SysSetLastError, sono visibili dalla scheda Debug di LogicLab.
  • Aggiunto la possibilità di utilizzo della porta 1-Wire a bordo delle versioni extended. L’utente la “vede” usando la PCOM255.0 con la FB OWireCore.
  • In FTP server, l’esecuzione dei comandi è ora possibile anche da utente Guest. Riuscire ad eseguirli è solo legato alle credenziali impostate per le dir desiderate.
  • Aumentato la dimensione della memoria RMalloc da 16K a 32K.
  • Aggiunta la gestione dell’RTC DS3231 (PCK046****) presente sulle schede MH_RTC (Product Option=2).
  • Chiamando la SysOSIDValue() per salvare la configurazione, ora non è più necessario passare l’address della variabile settata a TRUE.
  • Nel comando “sysconfig” aggiunto la option “-pc” per aggiungere i Protection Codes (key di sblocco FB o altro).
  • Velocizzato il comando “reboot”.
  • Modificato procedura di login da Telnet: in caso di login errato, prima di indicare errore, ora si attende un tempo crescente in relazione ai tentativi di login effettuati. In tal modo si rende più difficoltoso un eventuale tentativo di brutal force.
  • Modificato il “WelcomeMessage” quando ci si connette da seriale con catch o da telnet, togliendo “Elsist” ed inserendo anche le info del PLC.
  • Ora per le FB SysTCPClient, SysTCPServer, SysUDPClient e SysUDPServer, si puo’ evitare di definire “0.0.0.0” come LocalAdd. In tal caso e’ come aver passato “0.0.0.0”.
  • In SysGetAnInp aggiunto last error 9983100 su analogica CPU non disponibile.
  • Su three-way TCP ora inviamo l’MSS=1460 come option TCP. In TCP viene ora gestito l’MSS che il peer invia durante il three way. Questo permette di inviare max MSS del peer bytes ogni frame inviato. Ovviamente viene controllata anche la dimensione della window ancora disponibile nel peer.
  • Nella funzione SysRMAlloc azzerato la memoria allocata per similitudine con la SysMAlloc la quale, quando è chiamata la prima volta, ha la sua area dati azzerata.
  • Migliorato la ricattura del sistema in caso di eccezioni generate da programma PLC.

Bug risolti

  • Risolto bug web server relativo all’interpretazione del testo nascosto (TAG ID) presente in pagine .htm e posizionato in determinati punti della pagina.
  • Risolto bug su Stop-WarmRestart: venivano azzerate le variabili RETAIN.
  • Risolto bug su utilizzo di funzioni stringa (es.: CONCAT) sia da task Back che da Slow e Fast. Prima poteva capitare che il risultato di una operazione fatta ad esempio in task Back venisse sporcata dall’esecuzione fatta nei task Slow o Fast.
  • Risolto bug in SysUDPServer quando si passava 0 come LocalPort. In tal caso la Bind non usava una porta effimera e quindi in pratica non era utilizzabile.
  • Risolto bug relativo al fatto che, con comando “hwstats”, non veniva tornata la “Internal temp”.
  • Risolto bug su comando “slineinfos” che, in caso di rilevamento errori sul bus I2c, faceva resettare la CPU.
  • In eTCPServer e eUDPServer, evitato di mandare in listening se l’array di file pointer è null. Per il TCP, senza tale controllo, su connessione e disconnessione da parte del client, il socket poteva rimanere nello stato CLOSED, ma sempre presente, impedendo un eventuale bind in caso di stop e start del server.
  • Risolto bug su comando ping da interfaccia utente e da SysIPReach, in cui, se l’URL aveva lunghezza maggiore del numero bytes da inviare (32 il default), non funzionava.
  • Risolto bug rilevabile saltuariamente usando il comando “update”: non veniva completato ed apparivano strane stringhe su telnet.
  • Risolto bug che poteva essere a volte visibile in telnet inviando alcuni comandi (ad esempio syslog) anche se in modo corretto, poteva tornare il messaggio “Wrong parameters”.
  • Risolto bug legato ad UDPServer: superando il nr max di connessioni ammesse dal server, le altre potevano funzionare ad intermittenza.

Codice package completo: PCK043B100Data rilascio: 06/06/2018XTarget_12
Codice Fw: SFW198C100Codice Bootloader: SFW200A000 Codice Webpages: MDP020D100

Migliorie e nuove implementazioni

  • In FTP i vari comandi ora accettano un path assoluto o relativo a directory corrente. La distinzione è legata al fatto che l’assoluto deve iniziare con ‘/’ o ‘\’;
  • In FTP modificato la risposta al comando SIZE;
  • In FTP cambiato buffer rx da 512 a 1024 per problema segnalato su piattaforme Windows 10 e TotalCommander (non si riusciva a caricare i file);
  • In FTP In SysMemFind tolto errore 9925105;
  • Velocizzato di circa il 12% la gestione del file system sia in lettura che in scrittura;
  • Ridotto da 3S a 500mS il tempo di attesa SDCard ok. Ciò velocizza il power on quando la SDCard è assente.

Bug risolti

  • In gestione file system risolto bugs che possono generarsi su mancanza alimentazione mentre si sta eseguendo una scrittura su disco;
  • In gestione file system risolto problema data file quando la data del sistema era inferiore a 1980: veniva settata data 2030. Ora viene settata data 1980 visto che la data dei file non può essere inferiore a tale anno;
  • In gestione file system risolto problema di perdita di cluster quando si creano file più lunghi dello spazio disponibile su disco;
  • Risolto bug in Modbus server funzione 0x0F (write multiple coils) che dava eccezione quando si inviava un comando per la scrittura di 8 o multipli di 8 coils .

Codice package completo: PCK043B200Data rilascio: 22/06/2018XTarget_12
Codice Fw: SFW198C200Codice Bootloader: SFW200A000 Codice Webpages: MDP020D100

Migliorie e nuove implementazioni

  • Implementazione protocollo DMX, può essere utilizzato su tutte le porte seriali (COM0, COM1 e COM2).

Bug risolti

  • Risolto bug inerente al non avvio completo del sistema operativo in talune situazioni.

Codice package completo: N/AData rilascio: 30/08/2018XTarget_12
Codice Fw: SFW198C200Codice Bootloader: SFW200A000 Codice Webpages: MDP020D200

Migliorie e nuove implementazioni

  • Pagine modificate e rese asincrone, ora non bloccano più il browser nell’attesa della risposta dopo una chiamata ajax.
  • Cambiato il modo di aggiornare i gruppi a tempo con il refresh. (Ora è possibile avere solo più un tempo di refresh per pagina).

Bug risolti

  • Risolto bug inerente al blocco del browser nell’attesa della risposta dopo la chiamata ajax.

Codice package completo: N/AData rilascio: 15/10/2018XTarget_12
Codice Fw: SFW198C200Codice Bootloader: SFW200A000 Codice Webpages: MDP020D300

Migliorie e nuove implementazioni

  • Aggiornato eJProbe. Con il nuovo, in caso di richieste non temporizzate che non vanno a buon fine, il sistema riproverà a leggerle per un tempo random, fino a un massimo di 3 volte.

Codice package completo: PCK043B300Data rilascio: 11/12/2018XTarget_12
Codice Fw: SFW198C300Codice Bootloader: SFW200A000 Codice Webpages: MDP020D300

Migliorie e nuove implementazioni

  • Migliorato lo stress del disco interno legato al numero max di scritture. Ora le entries dei suoi file vengono aggiornate solo dopo 30 minuti se non cambiano size o attribute.
  • Da questa versione il file progetto sorgente viene sempre cancellato prima di caricare il codice. Questo evita il dubbio che il sorgente non coincida con l’eseguibile che può scaturire tra caricamenti successivi perché LogicLab consente di scegliere se caricare o no i sorgenti.
  • Aggiunti i comandi PLCCommand:
    • “PLCCommand -pmbku C:/mybk.bin” (Permanent Memory Backup) backup su file dell’area ritentiva DB100.
    • “PLCCommand -pmres C:/mybk.bin” (Permanent Memory Restore) restore da file dell’area ritentiva DB100.
  • Per le versioni “Extended” portato l’area delle variabili auto PLC usate da LogicLab da 8K a 16K.
  • La chiave per aumentare la dimensione dell’area codice disponibile per il PLC, ora consente di aumentare l’area delle variabili auto usate da LogicLab da 8K a 16K, quindi, a livello di memoria, si può portare ad esempio un MPS054**00 (vers. Base) uguale ad un MPS054**10 (Vers. Extended).

Bug risolti

  • Risolto bug legato alla impossibilità di scaricare il progetto sorgente da LogicLab 5.8.0.17 quando tale file era maggiore di qualche kBytes.
  • Risolto bug relativo alla formattazione di dischi con dimensione superiore a 4GB: non utilizzava tutto lo spazio.
  • Aumentato tempo che portava ad errore “AT45DB081D IsBfEqToMem busy” su accesso disco flash interna.
  • Risolto bug relativo a ritorno errato dello spazio disponibile da comando “dir” per dischi con dimensione superiore a 4GB.

Codice package completo: PCK043B400Data rilascio: 15/01/2019XTarget_12
Codice Fw: SFW198C310Codice Bootloader: SFW200A100 Codice Webpages: MDP020D400

Migliorie e nuove implementazioni

  • Migliorato gestione TCP:
    • Inserito controllo su sequence e ack per rilevare FIN da parte del peer durante la comunicazione (SM_ESTABLISHED);
    • Anche durante i three-way sia attivi che passivi, dove possibile, inserito controllo sulla esatta sequenza del peer;
    • Inserito N tentativi di invio pacchetto durante i three-way;
    • Nel case SM_ESTABLISHED aggiunto l’invio del pacchetto di ACK su retry da parte del peer durante three-way;
    • Modificata la logica con cui vengono inviati 2 pacchetti dati anziché uno solo che consentiva di essere più veloci (Nagle);
    • Ora se si rileva la necessità di invio di 2 pacchetti si inviano, ma solo se i dati da inviare sono più di 256 bytes, così si evita di avere troppi pacchetti piccoli;
    • Inserita la gestione del pacchetto “keep alive” che permette di sapere se il peer esiste ancora senza dover inviare dati.
  • Migliorato gestione File System:
    • Ora con format del disco “C” senza parametri, il disco viene formattato con cluster da 4096 bytes anziché 512. In questo modo si velocizzano le operazioni, evitando, ad esempio, problemi di intervento watch-dog quando si cancellano file lunghi.
  • Migliorato web server:
    • Tornato direttiva “Cache-Control: max-age=NNN” nell’header http per indicare al browser di non richiedere il file se non sono trascorsi almeno NNN secondi da ultima richiesta.

Bug risolti

  • Risolto problema legato ad errore timeout attivando il connect della TCPClient quando si chiama più volte la FB SysTCPClient nello stesso loop;
  • Per RTC opzione 1 (Ds1307), risolto bug (rilevato solo con alcuni chip Ds1307): quando si impostano 59 secondi, a volte le successive letture tornano 60 e più secondi e i minuti non avanzano;
  • Bugs risolti relativi alla gestione FTP:
    • Risolto problema di mancata chiusura dei file letti o scritti relativo al fatto che a volte i file letti o scritti, non venivano chiusi
    • Risolto problema (saltuario) con i comandi che portano all’uso del socket dati (es. RETR, STOR, LIST) utilizzanti il PASV a cui il server restituiva il codice 450
  • Gestione file system:
    • Risolto bug che si verificava a volte su cancellazione files: con dir e fsstats dava correttamente i settori liberati da cancellazione, ma in realtà su disco non li aveva liberati in toto o in parte;
    • Risolto bug legato all’apertura dei file su disco che poteva dare errore “3000, NAvail:…” se dopo aver usato dei file, il tempo di sistema veniva settato indietro.

Codice package completo: PCK043B500Data rilascio: 20/02/2019XTarget_12
Codice Fw: SFW198C320
Codice Bootloader: SFW200A100 Codice Webpages: MDP020D400

Migliorie e nuove implementazioni

  • Aggiunto gestione delle nuove versioni MPS054Bxxx e PCB137Cxxx.

Codice package completo: PCK043B510Data rilascio: 18/03/2019XTarget_12
Codice Fw: SFW198C330
Codice Bootloader: SFW200A100 Codice Webpages: MDP020D400

Migliorie e nuove implementazioni

  • Inserito controllo su SDCard per evitare utilizzo di SDCard non supportate dal sistema (Tipo HC max 32GB).
  • Nel caso di file configurazione (Cfg.bin) errati o assenti, la ethernet viene ora abilitata ed assume i dati Ip mask etc da server DHCP oppure rimangono tutti a 0, in modo che da Toolly, con discoverer, si riesca a reimpostarli salvandoli quindi nei files di configurazione. Ciò, in molti casi, evita di dover andare sul posto ed agire da porta COM per riconfigurare il sistema.
  • Nella function SysOSIDValue() inserito controllo in modo tale che possa essere usata solo da task Boot e Back.

Bug risolti

  • Risolto bug di funzionamento delle funzioni MIN, MAX e LIMIT.
  • Soluzionato problema che poteva accadere in caso di settori memoria Flash danneggiati usati per il file Cfg.bin.
  • Soluzionato problema che poteva portare a rispondere ad un peer anche non della stessa classe di IP dello SlimLine anziché rispondere indirizzando il frame verso il gateway.
  • In gestione TCP risolto bug bind: avendo attivato un server TCP, se vi erano socket pending e si stoppava il programma con LogicLab, rimettendolo in run appariva errore bind perché la porta risultava già occupata dai socket pending.