Vai al contenuto

Sergio Bertana

Risposte nei forum create

Stai visualizzando 15 post - dal 1,711 a 1,725 (di 4,381 totali)
  • Autore
    Post
  • in risposta a: Gestione valore letto da counter di sistema #45584
    Sergio Bertana
    Amministratore del forum

    Il counter hardware del modulo CPU non ha la possibilità di gestire gli ingressi hardware di reset e di reverse. Questa cosa è possibile sui counter presenti su alcuni moduli di estensione I/O dove settando opportunamente l’ingresso Mode del SysGetCounter è possibile definire quale ingresso hardware del modulo deve essere connesso al comando di reset e quale al comando di reverse.

    Come vedi dalla documentazione per ogni comando possibile (Clock, Reset, Reverse) ci sono 3 bits di mode e 5 bits di selezione ingresso. Con 5 bits puoi indirizzare ognuno dei possibili 32 ingressi massimi di un modulo di estensione.

    Però non capisco la tua perplessità sulla opzione software è estremamente semplice e flessibile, non solo puoi resettare ma puoi anche presettare il valore che desideri. Il comando da ingresso hardware si utilizza solo quando si deve eseguire il reset su un evento esterno molto veloce (Esempio ipotizzando di dover contare i denti di una ruota  dentata che ruota velocemente azzerando il conteggio ad ogni giro su un proximity di zero la cui durata dell’impulso è inferiore al mS tempo in cui si potrebbe anche gestire da software campionando l’ingresso nella task Fast).

    in risposta a: Posizione Label nei due stati di una lampada #45581
    Sergio Bertana
    Amministratore del forum

    Devi visualizzare la lampada nei due stati e spostare la posizione della etichetta per farle sovrapporre, o posizionarle dove tu desideri stiano in ogni stato. Cerco di spiegartelo con un screenshot.

    Con la selezione di copia degli attributi della label in tutti gli stati tu copi solo il tipo e la dimensione del carattere ma non la posizione di visualizzazione.

    in risposta a: Some questions about memory allocation #45577
    Sergio Bertana
    Amministratore del forum

    SysMAlloc has 4096 bytes of reserved memory, every time the function is called the specified amount of memory is subtracted from the total memory available. The function returns the pointer to the allocated memory (Type @USINT), if there’s no space available NULL is returned.

    SysMAlloc can be called all time you need a memory buffer, but remind that the allocated memory cannot be released. So every time the function is called the specified amount of memory is subtracted from the total memory available. All the SysMAlloc memory is released when user program starts.

    SysRMAlloc has 20 KBytes of reserved memory, every time the function is called the specified amount of memory is subtracted from the total memory available. A UDINT buffer is needed by the function to store the pointer to the allocated memory. If there’s no space available the UDINT buffer is set to NULL and FALSE is returned. Instead of the SysMAlloc, the allocated memory can be released by calling the SysRMFree function.

    Note that SysRMAlloc uses a completely different allocation mechanism than SysMAlloc, the allocated memory is moved run time by the operating system to optimize the memory space. This obviously causes that the pointer to the allocated memory can be modified (For this reason a buffer to store it is necessary).

    So every time a buffer allocated by SysRMAlloc is used it’s mandatory to refer to the address stored in the UDINT buffer passed to it and it’s not possible to use copies of it.

    Pointers returned by SysMAlloc e SysMAlloc are aligned so no alignment is needed, obviously when a misaligned buffer is allocated, with the next call, up to 3 bytes of memory can be lost.

    in risposta a: Gestione valore letto da counter di sistema #45571
    Sergio Bertana
    Amministratore del forum

    Il counter hardware della scheda CPU come quelli presenti nelle schede di I/O hanno la possibilità di essere resettati in hardware da un ingresso digitale. Non è prevista però la possibilità di reset e/o preset da software, perchè il problema è facilmente aggirabile con un semplice calcolo matematico sul valore di conteggio.

    La tecnica di manipolazione del valore in uscita da un contatore è ampiamente trattata in alcuni topics relativi alla quota encoder dove si deve gestire un problema del tutto simile al tuo (Topic, topic).

    in risposta a: Conversione Modbus TCP in modbus RTU #45563
    Sergio Bertana
    Amministratore del forum

    Il convertitore ATC-1200 come tutti i convertitori Ethernet/Seriale veicolano i dati tra la connessione Ethernet e la seriale. Se come immagino il tuo generatore  di vapore è un server Modbus TCP a livello di connessione puoi usare un ATC-1200 settato come client per connettersi al generatore. Ma poi per comunicare dovrai sulla porta seriale utilizzare dei pacchetti Modbus TCP e non Modbus RTU e non sò se il tuo PLC ha questa possibilità.

    Pe eseguire la conversione tra i due protocolli ti serve un Gateway come l’ATC-3002 o come il TRP-C37M, questi prodotti eseguono la conversione di protocollo.

    Visto che usi PLC se vuoi a costi paragonabili puoi utilizzare un nostro modulo CPU SlimLine che permette di connettersi direttamente via Modbus TCP, oppure di veicolare il modbus TCP anche sulla seriale o con il FB ModbusTCPGateway (Vedi topic) può comportarsi come un gateway Modbus.

    in risposta a: Spazio di lavoro personalizzabile in opzione di progetto #45560
    Sergio Bertana
    Amministratore del forum

    Lo spazio di lavoro personalizzabile permette di suddividere il progetto in più cartelle virtuali all’interno di LogicLab. Questo rende più “leggibile” il progetto permettendo di raggruppare per cartelle le varie sezioni in cui si compone.

    Un’altra particolarità ancopra più interessante è quella di poter definire dei gruppi di variabili tramite il menù Nuovo gruppo variabili. Questo permette di raggruppare le variabili per funzione, ad esempio è possibile definire il gruppo Inputs per raggruppare tutti gli ingressi, Outputs per raggruppare tutte le uscite, ecc…

    Quindi lo spazio di lavoro personalizzabile è un modo per avere un progetto più ordinato, ma non ha alcun effetto sul codice generato.

    in risposta a: Libreria gestione stringhe json #45521
    Sergio Bertana
    Amministratore del forum

    Si con la JSONEncode puoi creare stringhe JSON da inviare come publisher verso il broker, in pratica ad ogni chiamata del FB accodi alla stringa risultato una coppia nome/valore.

    Con la JSONDecode invece puoi estrarre da una stringa JSON ricevuta dal broker come subscriber il valore della variabile di cui definisci il nome. Se la variabile con quel nome non esiste nella stringa JSON oppure è di tipo diverso (Tu cerchi una stringa mentre la variabile è numerica) viene ritornato errore.

    Ma se per condividere dati verso altri sistemi l’MQTT è la soluzione migliore, per lo scambio dati tra sistemi SlimLine sia per velocità che per facilità di uso consiglio la libreria eLLabRESTSvcLib. Anche se comprendo che essendo usuale l’utilizzo di una tecnica a volte si è restii a cambiare, ma nel cambiamento a volte si scoprono nuove opportunità.

    in risposta a: Libreria gestione stringhe json #45518
    Sergio Bertana
    Amministratore del forum

    In MQTT non ci sono formati particolari, solitamente si usano stringhe di testo oppure come vuoi fare tu stringhe in formato JSON.

    Nella libreria eLLabRESTSvcLib (Scaricabile da qui) trovi oltre al blocco funzione per la gestione del servizio REST anche i FB per la codifica e decodifica JSON (Estratto manuale).

    Per lo scambio dati tra sistemi sia in rete locale che su Internet dai una occhiata alla libreria eLLabDataExchLib (Vedi topic), che può essere una alternativa all’MQTT, sopratutto non necessita di un broker ed il trasferimento dei dati è pressoché in tempo reale.

    in risposta a: File system su SlimLine LogicLab Cortex M7 #45466
    Sergio Bertana
    Amministratore del forum

    Aggiungo che per mantenere compatibilità con i programmi scritti quando si apre su disco un file esempio Storage/NomeFile viene automaticamente puntata la cartella C:/Storage. Quando si apre un file esempio SDCard/NomeFile viene automaticamente puntata la cartella D:.

    Quindi le definizioni Storage/File.txt e C:/Storage/File.txt sono equivalenti come sono equivalenti le definizioni SDCard/File.txt e D:/File.txt.

    Se non si definisce in formattazione la dimensione del cluster viene scelta automaticamente la dimensione ottimale. Ricordo che più grande è la dimensione più veloce è l’accesso al disco ma si spreca più spazio.

    in risposta a: File system su SlimLine LogicLab Cortex M7 #45465
    Sergio Bertana
    Amministratore del forum

    Sulla versione del sistema operativo dei moduli CPU SlimLine LogicLab Cortex M7 a partire da SFW198C000 è stata completamente riscritta la gestione del file system. Ora il disco viene formattato con FAT32 pur mantenendo la sicurezza di non perdita dati sullo spegnimento del sistema. Questo permette di avere nel disco più files di dimensioni diverse, ma non gestendo i nomi lunghi è possibile solo nominare i files con i classici 8+3 caratteri solo in maiuscolo. Il disco su memoria FLASH interna al sistema è il disco “C:” la memoria SDCard è il disco “D:”

    Oltre alla formattazione standard abbiamo previsto di formattare in un formato FAT32 proprietario che permette di utilizzare 14 caratteri maiuscoli/minuscoli per il nome del file (Si può utilizzare un solo “.” di separazione sul nome). Con il comando Format da telnet è possibile formattare il disco, vediamo alcuni esempi, “C:” formatta disco su FLASH, “D:” formatta la SD Card.

    Format C: Formatta disco utilizzando il formato proprietario.
    Format D: FAT_32_ELS Formatta disco utilizzando il formato proprietario.
    Format C: FAT_32 Formatta disco utilizzando il formato FAT32 standard.

    E’ anche possibile definire la dimensione del cluster definendola dopo il comando di formattazione.

    Format D: FAT_32_ELS 1024 Setta il cluster a 1024 bytes.

    in risposta a: Scambio dati tra due (o più) PLC SlimLine #45459
    Sergio Bertana
    Amministratore del forum

    La nuova versione della libreria eLLabDataExchLib_A510, è scaricabile dal sito, ecco l’estratto del manuale.

    in risposta a: Mancanza comunicazione a seguito di screensaver #45456
    Sergio Bertana
    Amministratore del forum

    Se usi il Cerca nel forum… troverai topics che parlano di come realizzare macro nel pannello. Comunque il manuale di EasyBuilderPro ha un capitolo dettagliato su come si utilizzano le macro.

    in risposta a: Come gestire accesso a pagina protetto da password #45447
    Sergio Bertana
    Amministratore del forum

    Puoi disabilitare la password automaticamente dopo un tempo abilitando l’auto logout (Screenshot). Oppure quando entri nella pagina esegui una macro che azzera la variabile di sistema LW-9220 di user password.

    La sequenza che desideri mi sembra sia esattamente quella che io ho descritto nel post sopra, il pulsante settaggi è visibile ma protetto da password e viene abilitata la visualizzazione del messaggio di avviso se accesso bloccato (Screenshot), poi modifichi la finestra di avviso 7 Password restriction inserendo l’oggetto imputazione password.

    in risposta a: Mancanza comunicazione a seguito di screensaver #45441
    Sergio Bertana
    Amministratore del forum

    Lo screensaver non è altro che un cambio pagina forzato dall’inattività del touch quindi non và a modificare nulla del normale funzionamento del pannello. Discorso diverso per il backligh saver che porta il pannello in modalità standby mantenendo comunque attiva la comunicazione.

    Probabilmente il tuo problema è che nella pagina di screensaver non fai accesso a nessuna variabile SlimLine. Il sistema operativo dello SlimLine se non vede traffico sulla porta Modbus dopo un tempo di timeout la chiude, ed è questo che ti porta al problema che lamenti.

    Soluzione, inserisci la lettura di un bit dallo SlimLine nella finestra screensaver così da mantenere attiva la comunicazione. Buona norma specie se si hanno pagine di pannello che non fanno accesso a variabili Modbus dallo SlimLine è inserire una macro con esecuzione a tempo che esegue la lettura di una variabile (Istruzione GetData).

    in risposta a: Controllo accessi con RFID e display #45434
    Sergio Bertana
    Amministratore del forum

    Sono in molti ad utilizzare l’accoppiata SlimLine e lettore RFID per realizzare controllo accessi, nel forum trovi molti esempi (Vedi topic). Buona la scelta di utilizzare un display compatibile Arduino anche se ti ricordo che abbiamo anche la soluzione Picoface disponibile in OEM.

    1) Display LCD
    I disturbi sono sempre in agguato, molto dipende dalla lunghezza del cavo I2C (Meglio tenerlo il più corto possibile) eventualmente utilizzare un cavo schermato. Il display che hai utilizzato è gestito da bus I2C con un protocollo che non ha controlli di sicurezza a differenza del protocollo utilizzato per connettere le nostre schede di espansione (Anche Picoface) che prevede checksum di controllo.

    Quindi certo è possibile che un disturbo provochi un errore di visualizzazione, e se a causa del disturbo il display interpreta un dato come un comando, potrebbe sconfigurarsi. Quello che succede staccando il cavo e riattaccandolo (Da non farsi) è normale, se tu guardi il driver LCD del progetto ArduinoLCD (Vedi topic), vedrai che su inizializzazione sono inviati al disply una serie di comandi (Function set, set interfaccia a 4 bit, display on/off control, cursor and display shift, ecc) se tu spegni e riaccendi il display devi reinviare tutti questi comandi.

    Per reinizializzare il display rimettendolo al passo potresti reinviare questi comandi ogni tot tempo (Se usi il mio driver basta disabilitarlo e riabilitarlo) ed avrai un leggero lampeggio del display che poi si rimetterà in passo.

    2) Alimentazione
    Nessun particolare problema di alimentazione, i sistemi SlimLine sono progettati per lavorare in ambiente industriale, quindi puoi utilizzare un qualsiasi alimentatore a 12V (Esempio la serie MDR).

    3) Info generali SlimLine
    Lo SlimLine è progettato per essere spento semplicemente togliendo alimentazione. Il comando Telnet PLCCommand permette di arrestare l’esecuzione del programma PLC ma si usa solo in casi molto particolari.

    La funzione SysGetLastError permette di intercettare gli errori di esecuzione, ma di solito si controllano gli errori solo per cercare di non averne. Il file system è progettato per mantenere l’integrità dei files quindi non dovrebbe mai capitare di avere files rovinati.

    3) Info generali lettore RFID
    Non è possibile disabilitare il lettore, lo si può spegnere o ignorare i dati Wiegand in uscita. Il BEEP ed i LEDs sono gestiti automaticamente dal lettore non è possibile disabilitarne la gestione. E’ possibile però gestirli anche da SlimLine tramite uscite digitali.

Stai visualizzando 15 post - dal 1,711 a 1,725 (di 4,381 totali)