Vai al contenuto

Sergio Bertana

Risposte nei forum create

Stai visualizzando 15 post - dal 3,646 a 3,660 (di 4,382 totali)
  • Autore
    Post
  • in risposta a: Come realizzare una rete RS485 con dispositivi Spider #37251
    Sergio Bertana
    Amministratore del forum

    Nella libreria SlimLine, esiste un apposito blocco funzione per la lettura dei dispositivi HWgroup. Tramite il FB sHWgSProtocol è possibile effettuare la lettura di dispositivi Spider connessi in rete RS485 con un modulo CPU SlimLine.

    Nel programma di esempio eseguo la lettura dei 4 sensori One-Wire connessi ad uno Spider (Indirizzo 000), per aumentare il numero di Spider letti basterà aggiungere chiamate al FB sHWgSProtocol impostando l’indirizzo del sensore da acquisire. Allego stampa programma e progetto LogicLab completo.

    in risposta a: Invio di comandi verso telecamere IP #37250
    Sergio Bertana
    Amministratore del forum

    Si in effetti pensavo ad una sola telecamera, perchè da come fai giustamente notare tu l’ATC-1000 può essere configurato per connettersi ad un unico indirizzo IP server e non è possibile modificare (Se non da pagina web) l’indirizzo a cui si connette.
     
    Per gestire più connessioni puoi usare in alternativa un pannello operatore, in cui puoi configurare in modalità Free protocol fino a 64 dispositivi IP diversi (Vedi post). In questo modo con apposite macro di gestione puoi, volendo, comandare le telecamere anche direttamente dal pannello e/o se il pannello è connesso ad un modulo SlimLine le potrai comandare usando variabili di memoria SlimLine lette dal pannello in Modbus TCP.

    in risposta a: Invio di comandi verso telecamere IP #37248
    Sergio Bertana
    Amministratore del forum

    Con la versione attuale del sistema operativo (SFW167D150) il modulo CPU SlimLine può accettare connessioni TCP/IP in modalità server (Vedi questi post 1, 2) ma non può aprire connessioni TCP/IP in modalità client verso indirizzi IP. E’ possibile aprire connessioni verso altri indirizzi IP solo utilizzando il protocollo UDP (Vedi post).

    Per risolvere il tuo problema puoi connettere alla porta seriale del modulo CPU un convertitore Ethernet/Seriale (Esempio ATC-1000), che configurato in modalità client si connette in TCP/IP all’indirizzo IP e porta definita della telecamera (Vedi screenshot).

    Nel programma sul modulo SlimLine dovrai inviare ed eventualmente ricevere le stringhe dalla porta seriale connessa al convertitore. In merito all’invio delle stringhe non ci sono limiti per la loro dimensione, devi ricordare però che affinchè parta un unico pacchetto TCP verso la telecamera, la stringa deve essere inviata senza interruzioni sulla porta seriale (Il convertitore quando non riceve più dati seriali impacchetta la stringa ricevuta e la invia al server TCP). Inoltre la stringa TCP non può superare i 1500 caratteri. Allego stampa e programma LogicLab per gestire l’invio della stringa di comando).

    in risposta a: Riscaldamento domestico con impostazione distribuita #37247
    Sergio Bertana
    Amministratore del forum

    Ho realizzato il blocco funzione TSTATCommunication che gestisce la comunicazione, il FB può gestire fino a 16 termostati in rete RS485, ognuno con il proprio indirizzo modbus, basta nella FB definire i nodi utilizzati (Il nodo FF termina la gestione), nell’esempio è gestito il solo nodo 3.

    Node[0]:=16#03; (* Modbus nodes *)
    Node[1]:=16#FF; (* Modbus nodes *)

    Per i dati in lettura e scrittura sul termostato sono state create le strutture dati TSTATDATARD e TSTATDATAWR, è possibile allocare un array di 16 elementi uno per ogni termostato.

    Il FB esegue ciclicamente la lettura di 8 registri consecutivi, che trasferisce nella struttura TSTATDATARD, poi esegue la lettura del setpoint impostato sul termostato (Anche lui trasferito nella struttura TSTATDATARD).

    La scrittura del setpoint è condizionata dalla attivazione del membro SPWrite nella struttura TSTATDATAWR. in questo modo il termostato mantiene il valore di setpoint impostato localmente dall’utente, mentre quando si desidera modificarne il valore da sistema centrale basterà definire il nuovo valore nel membro SetPoint della struttura TSTATDATAWR ed attivarne la scrittura, stampa e download programma.

    in risposta a: Controllo accessi I-button #37246
    Sergio Bertana
    Amministratore del forum

    Per la lettura dei codici dai dispositivi iButton devi fare riferimento al manuale di programmazione SlimLine ed in particolare al blocco funzione sOWRdIdentifier. Questo blocco funzione ritorna l’ID univoco letto dall’iButton come array di 8 bytes.

    Per quanto riguarda la gestione del file CSV di definizione codici puoi fare riferimento ad altri post su questo forum che trattano l’argomento. Ma per venirti incontro ho realizzato un programma completo che utilizzando parti reperite da altri esempi disponibili sul forum e modificandolo opportunamente esegue:

    Lettura del codice dal dispositivo iButton connesso alla porta seriale tramite convertitore.
    Lettura file CSV dalla memoria Storage di SlimLine (Vedi post).
    Ricerca del codice TAG iButton all’interno del file CSV.

    Il file CSV l’ho strutturato semplicemente con codice TAG (16 digit esadecimali) e numero porta da aprire (Ho gestito 2 porte). Ma tu puoi modificarlo a tuo piacere aggiungendo orari di abilitazione ed ogni altra informazione sia necessaria (Vedi post). Allego la stampa ed il programma sorgente.

    in risposta a: Gestione di chiamate telefoniche ed invio di SMS #37244
    Sergio Bertana
    Amministratore del forum

    Siccome non è possibile controllare se la chiamata ha raggiunto il destinatario, il parametro Time determina il tempo per il quale l’FB rimane in attesa dal momento che ha composto il numero prima di interrompere la chiamata in corso.

    Naturalmente dalla composizione del numero all’effettivo squillo del telefono passa un tempo variabile che dipende dal gestore e può essere anche molto lungo, ho visto che mediamente con 30 Secondi di attesa si hanno alcuni squilli sul telefono del destinatario.

    Il tempo tra una chiamata e l’altra è pari al tempo Time impostato più altri tempi interni di gestione della FB ModemCore, in generale i tempi interni possono essere compresi tra 15 e 30 Secondi. Quindi con un Time impostato a 30 Secondi avremo nel caso peggiore 1 chiamata al minuto.

    in risposta a: Gestione di chiamate telefoniche ed invio di SMS #37242
    Sergio Bertana
    Amministratore del forum

    I blocchi funzione ModemPhoneCall e ModemSMSSend possono essere attivati in parallelo dallo stesso comando, quindi dovendo gestire la chiamata o l’invio di SMS sullo stesso evento, basterà attivare le FB con lo stesso operando.

    Nel programma allegato ho gestito la chiamata a 3 numeri di telefono diversi su attivazione di un ingresso digitale Di00M00. Come si vede dalla stampa del programma le 3 FB di gestione chiamata sono tutte attivate dallo stesso ingresso, saranno le FB ad accodarsi automaticamente, terminata la chiamata al primo numero partirà quella al secondo e poi al terzo e così di seguito (Download programma).

    Naturalmente se i numeri da chiamare sono tanti è conveniente realizzare un programma in ST che gestisce la sequenzialità delle chiamate agendo su di un unica FB ModemPhoneCall a cui viene passato di volta in volta il numero da chiamare.

    in risposta a: Gestione criteri seriali su porta RS232 da Java su TC65T #37240
    Sergio Bertana
    Amministratore del forum

    La prima cosa che posso dire è che i pin DTR e RTS non possono essere pilotati, sono ingressi e possono solamente essere letti. Probabilmente tu ti riferisci ai pin CTS, DCD e DSR che sono pin di output come puoi vedere dallo schemino che allego.

    I criteri seraili in nessun dispositivo possono essere programmati in tensione ma possono solo essere definiti nella condizione di attivo e disattivo. E quindi credo che il tuo purtroppo sia riferito alla possibilità di forzarne lo stato. Possibilità che sul modem TC65 è possibile tramite apposite classi java (Vedi documentazione).

    Come è noto un segnale RS232 attivo presenta un valore in tensione positivo, mentre un segnale disattivo presenta un valore in tensione negativo rispetto al GND. Il valore di tensione dipende da sistema a sistema e può essere un valore che và da 3 a 15 volt.

    Da quanto detto è evidente che settando opportunamente i criteri di uscita seriale del modem potrai disporre delle tensioni +Vcc e -Vcc. Attenzione! si tratta di segnali RS232 quindi la corrente in uscita di questi segnali è molto bassa, può essere utilizzata solo per alimentare dispositivi semplici come ad esempio convertitori di interfaccia.

    in risposta a: Comporre numero di telefono da variabili numeriche #37239
    Sergio Bertana
    Amministratore del forum

    Utilizzando la funzione embedded SysVarsnprintf è possibile costruire una variabile stringa di definizione numero telefonico partendo da variabili numeriche che ne definiscono i singoli campi. Ecco nel dettaglio il programma da realizzare:

    (* Eseguo controllo su limite valori variabili. *)
    IF (ICode > 99) THEN PhoneNr:=’Error’; RETURN; END_IF;
    IF (ACode > 999) THEN PhoneNr:=’Error’; RETURN; END_IF;
    IF (Number > 999999999) THEN PhoneNr:=’Error’; RETURN; END_IF;

    (* Print the variable values, merging them into a single string. *)

    i:=SysVarsnprintf(ADR(PhoneNr), 3+1, ‘+%d’, UINT_TYPE, ADR(ICode));
    i:=SysVarsnprintf(ADR(PhoneNr[LEN(PhoneNr)]), 3+1, ‘%d’, UINT_TYPE, ADR(ACode));
    i:=SysVarsnprintf(ADR(PhoneNr[LEN(PhoneNr)]), 9+1, ‘%d’, UDINT_TYPE, ADR(Number));

    Al termine della esecuzione la variabile PhoneNr di tipo STRING[32] conterrà il numero di telefono con il codice internazione definito in ICode, il prefisso in ACode ed il numero in Number. Se ICode=39, ACode=335, Number=123456 avremo come risultato la stringa +39335123456. Allego stampa e programma con FB in codice sorgente.

    in risposta a: Connessione multidrop su ring in fibra ottica #37238
    Sergio Bertana
    Amministratore del forum

    I convertitori Seriale/Fibra della famigli ATC, sia quelli per fibra multimodale ATC-277MM che quello per fibra monomodale ATC-277SM permettono la realizzazione di connessioni in ring ottico. L’uscita del convertitore potrà essere connessa poi in seriale RS232/422/485 con i tuoi apparati. Così potrai anche avere connessioni miste RS232 ed RS422/485.

    Naturalmente nelle connessioni multidrop è indispensabile che sia il protocollo a gestire l’indirizzamento dei vari nodi, il convertitore si limita solo a convertire il media di comunicazione tra la seriale e la fibra ottica.

    Per realizzare un ring in fibra dovrai connettere il Tx di un convertitore al Rx dell’altro e così di seguito per tutti i convertitori dell’anello. E’ evidente che in questa configurazione avrai un ramo della connessione (Il Tx dell’ultimo con l’Rx del primo) che si estende per tutta la lunghezza dell’anello, devi verificare che la distanza da coprire non superi la massima ammissibile.

    Su fibra monomodale la distanza massima è 20 Km, mentre  su fibra multimodale è 2 Km.

    in risposta a: Informazioni su CPU ARM9 Linux #36208
    Sergio Bertana
    Amministratore del forum

    I due moduli sono perfettamente identici dal punto di vista hardware, la versione Linux Open si programma utilizzando i tools classici di sviluppo nei linguaggi C e/o C++ (Vedi post).

    La versione Linux PLC ha il programma Run time per LogicLab e con l’ambiente di sviluppo gratuito LogicLab è possibile programmare utilizzando i 5 linguaggi standard della normativa IEC 61131-3. In questo modo si affianca al precedente modello ARM7 aumentando le prestazioni e le funzionalità.

    Nel modello Linux PLC sono presenti una serie di funzioni e blocchi funzioni già predisposti per risolvere una vasta gamma di problematiche oltre a librerie aggiuntive in continua evoluzione. Tra le librerie più interessanti ricordo quella per il supporto al protocollo CAN Open.

    in risposta a: Connessione terminali con dispositivi generici #37237
    Sergio Bertana
    Amministratore del forum

    I terminali operatore Weintek hanno la possibilità di essere configurati in modalità Pass-Through che permette di accedere tramite connessione TCP/IP su rete ethernet ed anche Internet, al PLC connesso in seriale al pannello operatore.

    Sul PC viene installata un porta seriale virtuale a cui si connette il software di programmazione del PLC, nello stesso modo in cui si connetterebbe alla porta seriale del PLC reale (Vedi post).

    in risposta a: Indirizzamento variabili su PLC Siemens da terminale #37235
    Sergio Bertana
    Amministratore del forum

    Il pannello Weintek può accedere a tutta l’area indirizzabile del PLC Siemens, nel manuale connessioni PLC puoi trovare indicazione del range delle variabili indirizzabili.

    Le variabili di tipo BOOL (I, Q, M) si indirizzano nel formato dddd(o). (o) indica il bit da 0 a 7, il loro range quindi và da 0000(Bit 0-7) a 4095(Bit 0-7).

    Le variabili WORD dalla DB00 alla DB99 si indirizzano nel formato dddd. Si sceglie la DB e poi si indica la word desiderata (Da 0000 a 8192, solo indirizzi pari).

    Poi esiste l’indirizzamento di variabili WORD su DBn. Le variabili si indirizzano nel formato DDDDdddd. DDDD indica la DB (Da 0000 a 9999), dddd indica la Word (Da 0000 a 8192, solo indirizzi pari).

    Quindi nel tuo caso volendo accedere ad esempio alla WORD 128 della DB1395, nelle proprietà dell’oggetto dovrai scegliere DBn e come indirizzo definire 13950128 (Screenshot).

    in risposta a: Web server su modulo CPU SlimLine #37234
    Sergio Bertana
    Amministratore del forum

    Attualmente la pagina web non ha la possibilità di autenticare l’utente, l’autenticazione utente è possibile solo su accesso da Telnet e da Ftp.

    Esistono 4 tipi di utenti, Maintenance, Admin (Psw: Admin), User (Psw: User) e Guest (Psw: Guest). La password di default può essere modificata con il comando Telnet userconfig.

    Accedendo al sistema via Telnet con le credenziali di amministratore (Admin), è possibile abilitare/disabilitare l’accesso alla pagina web, comando sysconfig. Dalla versione del firmware SFW167D150 è anche possibile sempre con il comando sysconfig abilitare/disabilitare l’accesso da modbus TCP al sistema. Tutti i comandi gestiti da connessione Telnet sono reperibili sul Manuale riferimento comandi Telnet CPU SlimLine, allego un estratto del manuale.

    in risposta a: Dove reperire i tools di sviluppo per CPU Linux #37232
    Sergio Bertana
    Amministratore del forum

    Naturalmente è molto più immediato utilizzare un IDE grafico come CodeLite per lo sviluppo (Vedi post), ed è per questo che forniamo una macchina virtuale VMware con tutto il necessario già installato.

    La macchina virtuale viene fornita con l’acquisto del primo modulo CPU, ed è utilizzabile con VMware Player che è scaricabile gratuitamente dal sito VMware.

Stai visualizzando 15 post - dal 3,646 a 3,660 (di 4,382 totali)