Vai al contenuto

Sergio Bertana

Risposte nei forum create

Stai visualizzando 15 post - dal 3,871 a 3,885 (di 4,309 totali)
  • Autore
    Post
  • in risposta a: Numero di devices collegabili su rete RS485 #36823
    Sergio Bertana
    Amministratore del forum

    Lo standard RS485 teoricamente può supportare fino a 32 dispositivi connessi sul bus (con i moderni 485 si arriva tranquillamente a 128 nodi e con alcuni 485 particolari e per questo costosi si arriva sino a 256 nodi).

    I drivers 485 hanno come caratteristica di uscita la capacità di pilotare fino a 32 transceivers con impedenza standard, se il transceiver utilizzato sui dispositivi connessi e ad alta impedenza, il numero di devices che un driver può pilotare è dipendente dalla impedenza del transceiver.

    Sui nostri sistemi SlimLine ad esempio viene utilizzato il modello LT1785A della Linear technology che ha una elevata impedenza di ingresso e supporta fino a 128 dispositivi (Datasheet).

    Nel tuo caso, visto che asserisci di utilizzare dei drivers ad alta impedenza, non esiste sicuramente problema per l’ATC-1000 a pilotare fino al numero di dispositivi che il transceiver dei dispositivi connessi dichiara. Vedi post per ulteriori informazioni.

    in risposta a: Conversione programma da Remoter a LogicLab #36820
    Sergio Bertana
    Amministratore del forum

    A quanto detto nel post precedente aggiungo un suggerimento per risolvere il parallelo e/o la serie tra rami quando il primo operando del ramo in parallelo/serie è un operando negato. Su statements di OR( e AND( non è possibile effettuare la negazione diretta, occorre caricare l’operando e poi invertirlo con uno statement NOT.

                    (* ORGR *)
    LD  %I0.0   (* LODT I 0000 *)
    AND %I0.1  (* ANDT I 0001 *)

    OR( %I0.2   (* LODF I 0002 *)
    NOT
    ANDN %I0.3  (* ANDF I 0003 *)
    )                 (* ORLR *)

    ST  %Q0.0   (* OUTT O 0000 *)

                   (* ORGR *)
    LD  %I0.0   (* LODT I 0000 *)
    AND %I0.1  (* ANDT I 0001 *)

    AND( %I0.2   (* LODF I 0002 *)
    NOT
    ANDN %I0.3  (* ANDF I 0003 *)
    )                 (* ANDR *)

    ST  %Q0.1   (* OUTT O 0001 *)

    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.

Stai visualizzando 15 post - dal 3,871 a 3,885 (di 4,309 totali)