Vai al contenuto

Sergio Bertana

Risposte nei forum create

Stai visualizzando 15 post - dal 4,051 a 4,065 (di 4,487 totali)
  • Autore
    Post
  • in risposta a: Conversione programma da Remoter a LogicLab #36819
    Sergio Bertana
    Amministratore del forum

    Non esiste un tool di conversione dal linguaggio RIL (Remoter Instruction List) al linguaggio IL (Instruction List) della IEC61131-3, occorre effettuare la conversione manualmente. Il mio consiglio è di convertire i programmi RIL direttamente in LD (Ladder Diagram) la conversione è più immediata ed i programmi risultano più leggibili perchè visualizzati in modo grafico. Di seguito la conversione di un semplice ramo per dare una idea di come sia possibile effettuarla.

                        (* ORGR *)
    LDN    %IX0.0  (* LODF I 0000 *)
    AND    %IX0.1  (* ANDT I 0001 *)
    OR(     %IX0.0  (* LODT I 0000 *)
    ANDN  %IX0.1  (* ANDF I 0001 *)
    AND    F0001    (* ANDT F 0001 *)
    )                    (* ORLR *)
    ANDN  F0003    (* ANDF F 0003 *)
    ANDN  F0004    (* ANDF F 0004 *)
    S       %Q0.0    (* LTCH O 0000 *)

    Di seguito la conversione di un ramo che utilizza un timer.

                    (* ORGR *)
    LD    %IX0.2    (* LODT I 0002 *)
    ST    T0000.IN

    LD    1000
    ST     T0000.PT       
    CAL    T0000     (* OUTM T 0000 KD 0010 *)

                    (* ORGR *)
    LD    T0000.Q  (* LODT T  0000 *)
    R      %Q0.0     (* UTCH O 0000 *)

    Allego un programma LogicLab di esempio e la stampa dello stesso, nel programma vi è anche la conversione in LD per comprendere la logica (Download programma).

    Attenzione! Nella scrittura in LD non è possibile fare riferimento diretto agli operandi di I/O come nel linguaggio IL, quindi anche per gli I/O sono stati utilizzati degli mnemonici. In LD l’uscita %Q0.0 è stata sostituita con la %Q0.1 per permettere il test del programma sul sistema.

    in risposta a: Cavi collegamento CPU SlimLine #36818
    Sergio Bertana
    Amministratore del forum

    La versione Lite della CPU SlimLine dispone di 2 porte seriali RS232, disponibili su connettore RJ45 ad 8 poli. La versione Full aggiunge la disponibilità di una porta ethernet e di una porta RS485 o CAN. Tutti i modelli dispongono anche di una porta USB client che alla versione attuale del software non è gestita.

    Per quanto riguarda la connessione del modulo CPU con la porta seriale del PC è possibile utilizzare un adattatore Null-Modem DB9F/RJ45 unito ad un cavo RJ45 8/8 non schermato della lunghezza desiderata, per ulteriori informazioni sulle porte seriali vedi articolo.

    Per la connessione con la porta seriale del terminale operatore occorre rifarsi alla documentazione del terminale, se la connessione è in RS232 basterà connettere opportunamente i segnali RD, TD e GND. Se la connessione è in RS485 basterà collegare i due fili D+ e D-. Se si utilizzano i terminali Weintek da noi distribuiti per la connessione vedi post.

    Se si dispone della versione Full è possibile connetterla al PC tramite rete ethernet, basterà utilizzare un comune cavo patch, SlimLine ha una porta ethernet autosensing quindi può essere utilizzato qualsiasi tipo di cavo sia diretto che cross. L’utilizzo della connessione ethernet (Utilizzando uno switch) permette di creare una rete tra il PC, lo SlimLine ed il terminale facilitando la programmazione ed il test senza dover continuamente scollegare e ricollegare cavi. Per l’impostazione dell’indirizzo IP sulla CPU SlimLine si rimanda a questo articolo.

    Attenzione, si consiglia l’acquisto (O l’autocostruzione) dell’adattatore seriale anche per le versioni Full, in quanto le eventuali operazioni di upgrade del sistema operativo vedi articolo) sono possibili solo da porta seriale COM0.

    in risposta a: Server OPC per connessione con sistemi SlimLine #36817
    Sergio Bertana
    Amministratore del forum

    I sistemi SlimLine supportano il protocollo Modbus sia Ascii che RTU su porta seriale e OverIP su rete ethernet. Il protocollo Modbus è un protocollo libero e molto conosciuto, esistono centinaia di vendors che rendono disponibili server OPC per la connessione in rete Modbus (Vedi sito Modbus.org).

    in risposta a: Verifica conformità del software a specifica Welmec #36813
    Sergio Bertana
    Amministratore del forum

    Come detto precedentemente, il sistema operativo dello SlimLine esegue un checksum dell’intero programma utente.

    In pratica viene eseguita una somma byte per byte di tutta l’area di memoria destinata al programma utente, la somma ritorna una variabile a 32 bits, gli overflows della somma vengono persi. Il cuore dell’algoritmo di calcolo è il seguente:

        for(n=0; n<CodeSize; n++)
            CheckSum+=(uint32_t)ProgramCode[n];

    in risposta a: Gestione gruppo valvole regolazione flusso per pressa #36811
    Sergio Bertana
    Amministratore del forum

    Non c’è un blocco funzione per questa operazione, ma ho preso lo spunto per realizzare la funzione FSelector di cui dò codice sorgente che può essere utile per risolvere altre problematiche simili. Fornisco un programma che può essere eseguito sul simulatore per il test della funzione, Download.

    VAR_INPUT
    Flow : REAL; { DE:”Flow set (%)” }
    END_VAR

    FSelector:=0; (* Result *)
    IF (Flow >= 50.0) THEN Flow:=Flow-50.0; FSelector:=FSelector OR 16#20; END_IF;
    IF (Flow >= 25.0) THEN Flow:=Flow-25.0; FSelector:=FSelector OR 16#10; END_IF;
    IF (Flow >= 12.0) THEN Flow:=Flow-12.0; FSelector:=FSelector OR 16#08; END_IF;
    IF (Flow >= 6.0) THEN Flow:=Flow-6.0; FSelector:=FSelector OR 16#04; END_IF;
    IF (Flow >= 3.0) THEN Flow:=Flow-3.0; FSelector:=FSelector OR 16#02; END_IF;
    IF (Flow >= 2.0) THEN Flow:=Flow-2.0; FSelector:=FSelector OR 16#01; END_IF;

    in risposta a: Installazione software virtual COM per convertitore TRP-C37 #36810
    Sergio Bertana
    Amministratore del forum

    Se il programma che utilizza la porta seriale virtuale non riesce ad effettuare l’impostazione corretta dei parametri di comunicazione, occorre agire da pagina web.

    Definendo in un browser l’indirizzo IP del dispositivo, è possibile vederne la pagina web di configurazione (Screenshot),definire i parametri di comunicazione, poi agire  sul tasto Apply. Per rendere effettive le impostazioni occorre spegnere e riaccendere il convertitore.

    in risposta a: Installazione software virtual COM per convertitore TRP-C37 #36809
    Sergio Bertana
    Amministratore del forum

    Per l’installazione virtual COM occorre scaricare dal ns sito (Zona download in fondo alla pagina del prodotto) il Software VirtualCOM per TRP-C37 (Win7/Vista/Windows2000/XP) ed eseguire il programma VSerPortConsole.exe.

    Dalla finestra centrale del programma con il tasto destro del mouse si attiverà un pop-up che permette di aggiungere una porta seriale virtuale. Scegliendo l’opzione Add port verrà installato il programma di virtualizzazione porta seriale.

    Installata la porta seriale occorre selezionarla e con il tasto destro del mouse scegliere l’opzione Add Net per attivare la finestra di definizione del dispositivo TRP-C37 a cui collegare la porta seriale virtuale creata (Screenshot). Nei campi previsti occorre definire il tipo di connessione TCP Client, TCP Server o UDP in funzione delle impostazioni effettuate sul convertitore.

    Nel mio esempio ho scelto la configurazione TCP Client, e quindi ho definito l’indirizzo IP del convertitore e la porta a cui connettersi.

    Terminata l’installazione il programma VirtualSerialPort Console visualizzerà l’elenco di tutte le porte COM installate (Screenshot).

    In merito alla etichetta del prodotto TRP-37, non è riportata la C per un refuso tipografico.

    in risposta a: Collegamento inverter PowerOne convertitore Ethernet/Seriale #36808
    Sergio Bertana
    Amministratore del forum

    Quando è configurato in RS485 l’ATC-1000 funziona in Half-Duplex, la configurazione è nella pagina web riferita all’UART (Screenshot).

    in risposta a: Connessione con I/O distribuiti TRP via modbus RTU #36806
    Sergio Bertana
    Amministratore del forum

    Aggiungo un consiglio, visto che il formato di rappresentazione del S7-200 è uguale a quello dello SlimLine, per avere il valore in REAL basta che tu definisca una variabile REAL all’indirizzo DB100.16 dove FB modbus appoggia i registri letti dal S7-200 per poterla utilizare nel tuo programma senza dover usare la WordToDouble.

    MiaVariabile AT %MD100.16 : REAL; { DE:”Variabile REAL letta da S7-200″ }

    in risposta a: Connessione con I/O distribuiti TRP via modbus RTU #36805
    Sergio Bertana
    Amministratore del forum

    Il formato utilizzato per le variabili REAL è IEEE 754 come detto in questo post, dai tuoi screenshots si evince che è lo stesso formato usato dal S7-200. Infatti in questo formato di rappresentazione, il valore REAL 2.0 vale in esadecimale 16#40000000 (Come si vede dalla finestra di debug su S7-200).

    Attenzione! Nella lettura di variabili a 32 bits tramite modbus occorre prestare attenzione all’endianness dei dati, il protocollo modbus infatti non specifica in che ordine devono essere ritornate le due parti a 16 bits del dato a 32 bits. Quindi è possibile che in alcuni sistema venga ritornata la parte più significativa prima della parte meno significativa o viceversa.

    Su SlimLine come già detto in altri posts si utilizza la little-endian che inizia dal byte meno significativo per finire col più significativo, e da quanto vedo è lo stesso tipo di rappresentazione che utilizza Siemens nel S7-200 (Probabilmente utilizza un processore ARM). Infatti se noti nella %MW100.16 che è il primo registro letto da modbus si trova la parte meno significativa del numero e nella %MW100.18 la parte più significativa.

    Il tuo errore quindi è solo nella inversione delle word nella conversione WordToDouble.

    in risposta a: Cambio pagina ed altre azioni dopo periodo di inattività #36803
    Sergio Bertana
    Amministratore del forum

    Dal menù Edit -> Parametri di sistema nel tab Generale, è possibile definire le opzioni di salva schermo (Screenshot). E’ possibile definire dopo quanto tempo di inattività (Nessuno tocca lo schermo), si debba disabilitare la retroilluminazione e/o pasare alla visualizzazione di una pagina definita.

    Nella pagina definita di salva schermo di solito viene inserito il logo aziendale oppure un disegno, ma può anche essere la pagina principale del progetto a cui si vuole ritornare.

    Disabilitando la retroilluminazione lo schermo non è più visibile, ma è possibile riattivarla automaticamente alla comparsa di un allarme.

    in risposta a: SlimLine SD-Card management #36802
    Sergio Bertana
    Amministratore del forum

    Abbiamo attualmente in sviluppo la versione SFW17C100 del sistema operativo, su questa versione è stato implementato il file system ed il server FTP per l’accesso ai files.

    Abbiamo aggiunto funzioni e blocchi funzioni Sysremove, Sysrename, Sysfilelength, Sysfseek per la gestione del file system da programma utente LogicLab (Estratto manuale).

    Tutto allo stato attuale è in beta test presso di noi e quindi tutte le informazioni sono da considerarsi prelimimari, purtroppo non ho ancora una data stimata di rilascio.

    in risposta a: Un semplice sistema di controllo accessi con identificazione #36800
    Sergio Bertana
    Amministratore del forum

    Dovendo connettere il lettore al modem, potrei consigliare un lettore RFiD con uscita seriale RS232 esempio il ProxPro Reader modello 5352 con interfaccia seriale della HID (Datasheet).

    Ma vorrei capire meglio l’applicazione, se quello che serve è inviare tramite modem il codice della tessera letta dal lettore, occorre che tu scriva in Phyton nel modem tutta la gestione sia della lettura del codice che dell’invio dei dati verso il server.

    In alternativa puoi prendere in considerazione l’impiego di una CPU SlimLine (Vedi post precedenti) e realizzare una applicazione per la gestione che a te interessa.

    in risposta a: Sistema di automazione per imbarcazioni con touch screen #36798
    Sergio Bertana
    Amministratore del forum

    Abbiamo alcuni clienti che utilizzano questi pannelli in ambiente nautico senza problemi. Mi riferisco ad applicazioni indoor, non ho feedback di applicazioni sul ponte di comando con la luce solare diretta e gli eventuali spruzzi di acqua marina, anche se la protezione frontale del pannello è IP65.
     
    Per la programmazione del pannello devi utilizzare il programma EasyBuilder 8000 che puoi scaricare liberamente dal nostro sito. Il programma opera su sistemi Windows ed è gratuito, permette inoltre di verificare il funzionamento del programma sviluppato sul terminale. E’ possibile attivare una simulazione in cui un pannello virtuale viene visualizzato sul PC e funziona esattamente come il pannello reale.
     
    Abbiamo nel forum una sezione dedicata ai terminali Weintek dove troverai programmi di esempio per il terminale ed una sezione dedicata allo SlimLine dove troverai programmi di esempio per il sistema di automazione.
     
    Ti ricordo che è possibile effettuare un periodo di training presso la nostra sede per apprendere la programmazione sia del terminale che dello SlimLine. Nel tuo caso ritengo che un giorno di training sia sufficente a sviluppare la tua applicazione insieme ad un nostro tecnico, al termine della giornata avrai il programma e le informazioni per effettuare le modifiche.

    in risposta a: Connessione con I/O distribuiti TRP via modbus RTU #36796
    Sergio Bertana
    Amministratore del forum

    Aggiungo un Tip che può essere utile a capire l’indirizzamento dei sistemi SlimLine. SlimLine è basato su di un procesore ARM che utilizza la memorizzazione dei dati nel formato little-endian, inizia dal byte meno significativo per finire col più significativo.

    Quindi come puoi vedere dall’esempio la %MW100.0 è valorizzata con il valore 16#0005, quindi alla locazione con offset 0 dell’array TRPC26Read allocato allo stesso indiirizzo di %MW100.0 corrisponde LSB del valore della word, mentre alla locazione con offset 1 corrisponde MSB.

    Essendo il valore della word 16#0005 il suo LSB sarà diverso da zero, cioè TRUE, mentre il suo MSB sarà uguale a o cioè FALSE. Se il valore della word fosse stato 16#0101 avremmo avuto sia MSB che LSB al valore TRUE.

Stai visualizzando 15 post - dal 4,051 a 4,065 (di 4,487 totali)