Vai al contenuto

Sergio Bertana

Risposte nei forum create

Stai visualizzando 15 post - dal 1,696 a 1,710 (di 4,381 totali)
  • Autore
    Post
  • in risposta a: Personalizzare esecuzione programma su sistema #45759
    Sergio Bertana
    Amministratore del forum

    Chi vuole personalizzare l’esecuzione di un programma in modo da avere un unico programma sorgente che si comporti in modo diverso in base al sistema dove viene eseguito ha diverse possibilità.

    Da programma si può controllare l’UniqueID del sistema (Variabile SysUniqueID) e comportarsi di conseguenza in base al valore. La controindicazione e che se si sostituisce il prodotto si ha un UniqueID diverso.

    Da pagina web UserInfo si imposta una delle 4 variabili SysUSet, il programma si comporterà di conseguenza in base al valore. Naturalmente sostituendo il prodotto occorre reimpostare la variabile sul nuovo prodotto.

    Si utilizzano alcuni ingressi digitali per creare un codice in base a cui il programma si comporterà.

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

    Si certo volevo proprio dire quello, per “rete” intendevo una nuova connessione tra vari sistemi.

    Attivare lo spionaggio (SpyOn:=TRUE) obbliga il FB ad inviare i dati di spionaggio alla connessione Telnet (Solo se da Telnet si è dato il comando SpyData). Naturalmente l’invio aggiunge dei tempi sulla esecuzione del FB, i tempi saranno più o meno lunghi in base al tempo di comunicazione con il client Telnet.

    Lo spionaggio è un ottimo strumento per individuare errori, naturalmente se attivo aumenta il tempo di esecuzione del FB che viene spiato.

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

    Se molti dei dati in scambio tra i 2 slaves servono anche al master questa è la soluzione corretta, nello scambio dati tra più sistemi solitamente si triangola sempre sul master essenzialmente per questi motivi:

    Su connessioni Internet solo il master deve avere indirizzo IP pubblico
    La topologia di comunicazione è lineare, 1 master e tanti slaves

    Ma puoi istanziare un FB TCPDataExchServer anche sugli slaves e quindi farli diventare master di un’altra rete di comunicazione. Mi spiego meglio gli slaves 1 e 2 sono slave del master, lo slave 1 può essere master di un’altra rete dove lo slave 2 è slave. In questo modo i dati tra gli slaves passano direttamente tra di loro senza passare dal master.

    in risposta a: Problemi di compilazione #45728
    Sergio Bertana
    Amministratore del forum

    Nell’evolversi delle versioni di LogicLab a seguito anche di variazioni sulla specifiche IEC61131 sono state introdotte maggiori restrizioni sul controllo del codice. E può succedere che il compliatore per il target sia meno restrittivo del compilatore per il simulatore o viceversa. Ad esempio l’errore JMPCN potrebbe nascere dal codice:

    IF (Var) THEN …. END_IF;

    Dove Var non è un BOOL. Questo prima era accettato poi non lo è più stato. Ora non stò ad elencarti tutte le restrizioni che si sono aggiunte nel tempo. Diciamo che come buona regola è di usare sempre l’ultima versione di LogicLab con l’ultima versione delle librerie.

    Ma siccome siamo fallaci, può anche essere che in alcune funzioni e/o FB di una libreria vi siano ancora condizioni che determinano la comparsa di warnings o peggio di errori in compilazione. Appena ci vengono segnalate provvediamo a risolverle.

    Nota, solitamente le librerie sono testate sul target reale, può essere che nel simulatore si generino warnings ed errori che nel target non compaiono. Inoltre sul simulatore si possono utilizzare solo alcune funzioni ed FB.

    in risposta a: Utilizzare il terminale come Web browser #45725
    Sergio Bertana
    Amministratore del forum

    Alcuni modelli di terminali Weintek hanno la possibilità di attivare finestre con la visualizzazioine di immagini da telecamere, oppure finestre che eseguono un client VNC in cui quindi si può interagire con lo schermo di un altro terminale o PC che esegue il VNC server.

    Ma purtroppo non esiste al momento un oggetto web browser, l’unico modo di eseguire un browser su terminale è quello di utilizzare un PC. Weintek ha attualmente a catalogo due modelli di terminali PC con Windows, cMT-iPC10 (Datasheet)  e cMT-iPC15, che sono PC con sistema operativo Windows.

    Non abbiamo a listino questi prodotti ma possiamo fornirli su ordinazione.

    in risposta a: Storicizzazione dati su database #45719
    Sergio Bertana
    Amministratore del forum

    Ti allego per il download il programma Database_Server_Demo (Download) che riporta un esempio di quello che devi fare. L’esempio usa variabili interne e non si collega a nessun PLC, ma è facile inserire il collegamento con il PLC che desideri.

    in risposta a: Netlog III utilizzo display incorporato #45713
    Sergio Bertana
    Amministratore del forum

    Nell’ultima versione di LogicLab (3.0.0) abbiamo inserito tra i progetti di esempio il programma ABCNetlog, un esempio di utilizzo del display di Netlog, lo allego per il download.

    Un ottimo esempio di utilizzo del display integrato nel Netlog è dato dal programma ServerMonitor (Download) che è il programma citato in questa knowledge. Viene eseguita l’acquisizione di un misuratore di energia monofase, i dati acquisiti sono visualizzati sul display ed inviati via REST ad un server nel cloud.

    in risposta a: Utilizzo array di FB Average #45667
    Sergio Bertana
    Amministratore del forum

    L’errore è nella lettura del valore mediato, devi scrivere:

    Peso[n]:=MediaPeso[n].Average;  (* peso n *)

    Ecco l’esempio in un ciclo FOR:

    FOR n:=0 TO 6 DO
    MediaPeso[n](Value:=CellaPeso[n],Coefficient:=60.0); (* calcolo media *)
    Peso[n]:=MediaPeso[n].Average; (* peso n *)
    END_FOR;

    in risposta a: Aiuto su programmazione ladder #45661
    Sergio Bertana
    Amministratore del forum

    Cerco di spiegarti con lo screenshot di un programma, non guardare alla funzionalità perchè ho definito variabili a caso solo per farti vedere come scrivere i rami.

    Come vedi ho aggiunto contatti sia in ingresso che in uscita ad un FB, ma se in ingresso puoi collegare i contatti su ogni pin, purtroppo in uscita hai un solo pin utilizzabile che puoi spostare ma è sempre solo 1. Se devi collegare altri coils ai pin di uscita devi collegarli come se fossero variabili.

    In pratica usi la stessa tecnica che usi in FBD dove non ci sono i simboli del contatto e della bobina.

    in risposta a: Comunicazione con protocollo Modbus master #45658
    Sergio Bertana
    Amministratore del forum

    Le domande non sono mai banali, sono un modo per capire meglio il sistema.

    Con “Eseguito ciclicamente dall’alto verso il basso” si intende l’esecuzione del programma è eseguita dall’alto verso il basso ma  ogni riga di programma viene valutata ed eseguita, quindi nelle righe che tu citi MIDx viene prima incrementato e poi sulla riga successiva viene  controllato (Quindi ha già il nuovo valore).

    Per quanto riguarda gli I/O logici invece, si parla di immagine di processo gli ingressi sono acquisiti ciclicamente prima di iniziare l’esecuzione del programma e le uscite sono gestite al termine della esecuzione del programma. Questo per avere lo stato degli ingressi che non cambia per tutto il  loop di esecuzione programma, se fossero letti nel momento in cui li controllo potrei avere in un punto l’ingresso disattivo ed in un altro l’ingresso attivo.

    Complimenti hai scoperto l’errore… in effetti se il primo comando da eseguire (Definito nella struttura MdbCfg) è un comando di scrittura, quindi alla prima esecuzione del programma, verrebbe scritto un valore non corretto, poi ai loop successivi tutto torna a funzionare. Per evitare il problema basterebbe definire come primo comando nella struttura un comando di read.

    A mia scusa (Non faccio mai errori), l’esempio l’ho ricavato da un taglia/cuci di un programma fatto per un cliente ed ho cucito male…

    in risposta a: Segnalazioni varie su LogicLab 5 #45648
    Sergio Bertana
    Amministratore del forum

    1. In effetti c’è un problema sulla finestra di Welcome, se manca connessione ad Internet si blocca, stiamo già lavorando per risolvere il problema. A breve rilasceremo una patch con la soluzione.

    2. Problema segnalato ad Axel, siamo in attesa di una loro risposta.

    3. La nuova versione nell’onda delle  specifiche IEC61131 è più restrittiva sulle assegnazioni. In effetti un pointer è una variabile a 32 bits, quindi poteva benissimo essere passata in una variabile UDINT. Ma in realtà và definita correttamente come pointer.

    in risposta a: Opzione “Enable memory dump” #45629
    Sergio Bertana
    Amministratore del forum

    Non ne ho idea….
    Ho girato la richiesta ad Axel che sviluppa LogicLab e stò attendendo la risposta…

    in risposta a: Utilizzo della scheda SDCard #45626
    Sergio Bertana
    Amministratore del forum

    Il file system dello SlimLine considera la SDCard non operabile al volo, questo perchè deve gestire la sicurezza sui dati in FAT (Spegnimenti random con file aperti). La gestione prevede una transazione dei dati sulla memoria FRAM interna. Alla accensione viene eseguita una scansione della intera FAT e se vi era una transazione non correttamente chiusa i dati in FRAM sono copiati nella SDCard.

    Inoltre se usi la formattazione eFAT hai la possibilità di definire i nomi dei files con 14 caratteri (Compreso il punto) con caratteri maiuscoli e minuscoli. Se usi la formattazione FAT standard puoi solo usare nomi 8+3 tutti in maiuscolo.

    Per il trasferimento dei dati verso l’esterno del sistema puoi utilizzare l’accesso in FTP (Il sistema gestisce sia il server che il client FTP).

    in risposta a: Comunicazione con protocollo Modbus master #45621
    Sergio Bertana
    Amministratore del forum

    In effetti l’algoritmo utilizzato nello sviluppo di questo driver di comunicazione ha alcune particolarità che lo complicano. Intanto posto l’intero progetto LogicLab con tutti i FB utilizzati pronto per essere utilizzato come dimostrativo (Download programma).

    La variabile FMIDx (* Force Modbus index *), è utilizzata per forzare il comando di scrittura Modbus, siccome per velocizzare lo scambio dati i comandi di scrittura sono eseguiti solo sulla variazione del valore da scrivere ho previsto di comunque scrivere il valore ciclicamente così se per caso ci fosse una disincronizzazione tra quello che lo SlimLine pensa di avere scritto e quello scritto nel sistema ci si risincronizza.

    Il programma è eseguito ciclicamente dall’alto verso il basso, quando ho il Done a TRUE significa che il comando Modbus è terminato e posso inviare un’altro comando. Quindi dovendo inviare un comando di scrittura devo caricare il valore da scrivere poi dare il comando Enable:=TRUE.

    Se noti il FB ModbusMaster MMdb(); (* Modbus master communication *)  è eseguito dopo avere posto Enable:=FALSE, quindi entrando in FB con Enable disabilitato inizializzo gestione e resetto Done pronto per il prossimo giro di esecuzione ad essere attivato.

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

    Cosa dice lo slogan del nostro sito di supporto…
    Benvenuto sul sito di supporto Elsist, Siamo qui per aiutarti.

Stai visualizzando 15 post - dal 1,696 a 1,710 (di 4,381 totali)