Vai al contenuto

Sergio Bertana

Risposte nei forum create

Stai visualizzando 15 post - dal 2,281 a 2,295 (di 4,296 totali)
  • Autore
    Post
  • in risposta a: Comunicazione tra due SlimLine via Ethernet #39239
    Sergio Bertana
    Amministratore del forum

    Il modo più semplice di scambiare dati tra diversi dispositivi SlimLine è utilizzare il FB UDPDataTxfer. Il FB utilizza il protocollo UDP per lo scambio dati ed è possibile definire la dimensione in bytes dell’area da scambiare tra i dispositivi (Topic, Topic). Naturalmente trattandosi di connessione in UDP non si parla di Client/Serrver ma di comunicazione peer to peer, però il concetto non cambia, i due sistemi si scambiano dati.

    Se invece la tua domanda è più didattica, cioè vuoi capire come sfruttare le nuove caratteristiche del firmware che permettono di realizzare connessioni Client/Server TCP occorre fare alcune premesse. Il file pointer delle FBs SysTCPClient e SysTCPServer è uno stream di comunicazione tutto quello che invii (Funzioni Sysfputc, Sysfwrite) da un lato lo puoi leggere dall’altro con le funzioni Sysfgetc, Sysfread.

    Ora per inviare dati da un sistema all’altro devi costruirti un protocollo, il mio consiglio è utilizzare ad esempio il Modbus che è già pronto, puoi usare il FB ModbusMaster, su di un sistema, mentre dall’altro il supporto del protocollo Modbus slave è già nativo. Ti posto una cartella con due progetti uno TCPModbus è la gestione del master modbus (Vedi stampa), l’altro SlaveSystem è il progetto da caricare sul sistema slave.

    Nello slave mi sono limitato a copiare la word MW100.32 sulla MW100.0, il sistema master legge 16 words dallo slave ad indirizzo 40000 (Address reale 100.0) ed invia 16 words ad indirizzo 40016 (Address reale 100.32). Con il sistema master in debug come vedi dallo screenshot puoi forzare uin valore nella MdbWr e te lo ritrovi dopo un po nella MdbRd. Il programma esegue una comunicazione modbus ogni secondo MMdb.Delay:=1000; (* Communication delay *) ma tu puoi modificare il valore (Download progetto).

    in risposta a: Inserire da programma un testo in una List Box #39238
    Sergio Bertana
    Amministratore del forum

    Si certo, i testi di una List Box (Oggetti -> Pulsanti -> Opzioni) possono essere scelti da diverse opzioni (Screenshot), selezionando l’opzione Indirizzo Item è possibile acquisire i testi da variabili. Nel mio esempio utilizzo variabili terminale, come vedi ho definito una lunghezza per ogni voce di 4 words (16 caratteri).

    La LW 0 è utilizzata per il controllo del List Box, sono utilizzate due words, LW 0 impostandola  a 1 forza la visualizazione dei testi, nella LW 1 si definiscono il numero di linee da visualizzare. I vari testi iniziano dalla LW 10, quindi avremo LW 10-13 prima riga, LW 14-17 seconda riga, ecc…

    Nel mio esempio (Testabile sul simulatore) puoi vedere il funzionamento del programma (Ecco lo screenshot), come vedi ci sono 4 caselle per l’impostazione dei testi. Nella casella Numero righe lista LW 2 devi indicare il numero di righe che vuoi visualizare. Puoi in simulazione modificare i vari testi e poi scrivendo 1 nella casella Aggiorna Lista LW 0, i testi definiti verranno visualizzati. Nel mio esempio come vedi ho appoggiato la selezione nella casella Indice selezionato LW 2, effettuando la selezione viene ritornata la linea, il conteggio parte da 0 (Download programma).

    in risposta a: Nuova funzione cross reference in LogicLab 4 #39237
    Sergio Bertana
    Amministratore del forum

    La finestra Cross Reference permette di avere una visualizzazione immediata di tutti gli oggetti utilizzati nel programma con la visualizzazione di dove l’oggetto è utilizzato (Screenshot).

    Per utilizzare il Cross Reference occorre abilitarlo nelle opzioni di progetto, è possibile selezionare quali oggetti si desidera includere ed a ogni compilazione LogicLab crea un file di cross reference (Nella cartella di progetto viene creato un nuovo file con estensione crf).

    Dalla finestra di Cross Reference è possibile selezionare l’oggetto che si desidera e viene visualizzato l’elenco di tutti i punti dove è utilizzato. Un click con il mouse sulla riga permete di aprire l’oggetto posizionadosi sul punto di utilizzo.

    in risposta a: Operazioni con numeri in virgola mobile #39236
    Sergio Bertana
    Amministratore del forum

    Sugli oggetti di Visualizzazione/Inputazione numerica è possibile definire come formato dati il tipo 32-bit Float, in questo modo il valore che definisci verrà trattato come un numero a virgola mobile. Come vedi in questo screenshot ho definito un oggetto di inputazione numerica per impostare il valore di Set appogiando il valore sulla LW 0.

    Ho inserito un analogo oggetto per la visualizzazione del risultato indicando come indirizzo letto la LW 2. Nota: ho saltato la LW 1 perchè le variabili float sono a 32 bits e quindi utilizzano due LW (LW 0 e 1 per il Set, LW 2 e LW 3 per il risultato). Nella macro che esegue l’operazione eseguita ciclicamente ogni secondo ho scritto:

    macro_command main()
    float Var
    GetData(Var, “Local HMI”, LW, 0, 1)
    Var=Var/10.5
    SetData(Var, “Local HMI”, LW, 2, 1)
    end macro_command

    Come vedi il valore delle LW 0/1 viene copiato nella variabile locale Var, viene poi eseguita la divisione per 10.5 ed il risultato è appoggiato nelle LW 2/3. Ecco lo screenshot del programma eseguito sul simulatore. Come vedi il numero 255.80 viene diviso per 10.5 dalla macro e viene visualizzato il risultato 24.36 (Download programma).

    in risposta a: FB per sincronizzazione con server NTP #39235
    Sergio Bertana
    Amministratore del forum

    Con la nuova versione del sistema operativo abbiamo inserito la gestione del DNS, ora è possibile definire nelle connessioni TCP/UDP oltre agli indirizzi IP anche gli URLs. Ecco quindi che il FB SNTPRequest ha la possibilità di definire nell’ingresso NTPServer un URL. Per permettere di definire URLSs di lunghezza variabile abbiamo trasformato il tipo dato da STRING a pointer @USINT. Occorre quindi passare l’indirizzo della stringa definizione server.

    Nel manuale gli esempi solitamente sono in linguaggio Ladder, ma ho provveduto nella nuova versione del manuale a riportare anche un esempio in ST (Estratto manuale). Allego anche il progetto SNTPTime di esempio (Download progetto).

    in risposta a: Protezione con credenziali di accesso su pagine #39233
    Sergio Bertana
    Amministratore del forum

    Probabilmente succede quello che capita a molti specie usando EasyBuilder su PC portatili, la finestra delle impostazioni è grande e supera la dimensione dello schermo. In questo modo viene oscurata la parte in basso proprio quella con il tasto di Ok.

    Di solito basta togliere la barra di Windows (Rendendola automatica o spostandola su di un lato dello schermo per guadagnare lo spazio sufficente a visualizzare il pulsante di Ok (Screenshot).

    in risposta a: Visualizzazione di un oggetto condizionata da 2 bits #39231
    Sergio Bertana
    Amministratore del forum

    Un modo per realizzare quello che  tu chiedi è ad esempio di utilizzare una macro.
    Fermo restando l’abiltazione alla visualizzazione del pulsante condizionata da un bit (Nell’esempio LB 0), ho realizzato una macro eseguita ciclicamente che esegue la AND tra due bits (LB 1 ed LB 2) ed invia il risultato della AND sul bit di abilitazione LB 0. In questo modo solo se entrambi i bits di abilitazione sono attivi il pulsante sarà visibile. Ecco il listato della macro.

    macro_command main()
    short EnableSts[2] //Bits stato abilitazione
    short EnableCmd //Bit comando abilitazione

    GetData(EnableSts[0], “Local HMI”, LB, 1, 2) //Leggo stato LB 1 ed LB 2
    EnableCmd=EnableSts[0] and EnableSts[1]
    SetData(EnableCmd, “Local HMI”, LB, 0, 1) //Imposto stato LB 0
    end macro_command

    Ho realizzato un progetto di esempio eseguibile in simulazione su PC (Download progetto).

    in risposta a: Protezione con credenziali di accesso su pagine #39230
    Sergio Bertana
    Amministratore del forum

    Non mi spiego il motivo ho provato io stamattina a fare quello che hai fatto tu (Ecco lo screenshot) e non ho avuto problemi. Ne ero certo perchè è una soluzione che molti dei nostri clienti utilizzano.

    Prova a fare un progetto nuovo e verifica se funziona per capire se è dovuto al progetto o all’installazione di EB8000. La versione che utilizzo io e la V4.65.07 Build 2013.06.25.

    in risposta a: Raggruppamento variabili nel nuovo LogicLab 4 #39228
    Sergio Bertana
    Amministratore del forum

    Nel LogicLab 4 Axel ha apportato alcune migliorie, una di queste riguarda la possibilità di avere il Workspace customizzabile. Con questa caratteristica è possibile creare cartelle proprie nel Workspace per meglio suddividere i programmi.

    Attivando questa caratteristica anche le variabili vengono suddivise in cartelle separate in base al gruppo di appartenenza e non si ha più la visione globale di tutte le variabili come si aveva con le precedenti versioni di LogicLab. Personalmente preferisco questo tipo di personalizzazione che mi permette di razionalizzare sia i programmi che le variabili secondo uno schema logico.

    Ma nessuna paura, puoi scegliere di continuare ad usare la vecchia soluzione di Workspace togliendo il tick di spunta nelle opzioni di  progetto (Screenshot).

    in risposta a: Gestire un conteggio veloce su ingresso digitale #39227
    Sergio Bertana
    Amministratore del forum

    Il FB SysGetCounter permette di sfruttare il circuito hardware di conteggio presente in alcuni moduli, per vedere i moduli che dispongono del counter devi fare riferimento al manuale di descrizione hardware del modulo.

    Il modulo CPU ha un solo counter hardware sull’ingresso Di00, quindi è utilizzabile, però non dispone degli ingressi di Reset e di Reverse. Quindi ecco perchè impostando Mode a 8192 il FB ti dava errore.

    Il fatto che conti due impulsi giro con Mode a 0 mi suggerisce un problema di rimabalzi sulla lettura, essendo il counter hardware molto veloce basta anche un impulso piccolissimo per generare un clock. Sono sicuro che se mettessi  un oscilloscopio sull’ingresso vedresti i due impulsi.

    Attenzione, il counter hardware gestisce il conteggio in modo autonomo, quindi il programma che esegue il FB SysGetCounter può essere tranquillamente messo sia nella task Slow che nella Back.

    in risposta a: Gestire un conteggio veloce su ingresso digitale #39225
    Sergio Bertana
    Amministratore del forum

    Come dici tu il sensore magnetico legge un solo punto sull’albero, quindi non devi utilizzare la frequenza come parametro di riferimento, ma il tempo di attivazione del sensore. Per assurdo se il punto di controllo è puntiforme la durata dell’impulso può essere di pochi mS.

    Considerando che gli ingressi digitali hanno un filtro hardware di 4,7 mS e che sono acquisiti nella task Slow ogni 10 mS capisci che l’impulso può andare perso. Per essere certi di acquisire impulsi molto brevi devi acquisire direttamente gli ingresi con la funzione SysGetPhrDI come indicato in questo topic.

    in risposta a: Collegare 2 PC ad un registratore di cassa per scontrino #39223
    Sergio Bertana
    Amministratore del forum

    Se  è così come dici potrebbe funzionare…Ma se la connessione Ethernet non è una condizione essenziale puoi anche utilizzare una connessione in RS422, utilizzando 3 convertitori RS232/RS422 tipo l’ATC-105, puoi creare una rete tra le seriali dei 2 PC e la stampante. In alternativa se non hai la seriale sul PC puoi utilizzare l’ATC-850 che esce già in RS422. Questa soluzione ha l’indubbio vantaggio di non utilizzare il software Virtual COM che più di una volta ha già manifestato problemi di incompatibilità con alcuni applicativi sul PC. Non abbiamo prodotti usati, per il diritto di recesso abbiamo la formula “Soddisfatti o Rimborsati“.

    in risposta a: Collegare 2 PC ad un registratore di cassa per scontrino #39221
    Sergio Bertana
    Amministratore del forum

    Il funzionamento e come quello che hai descritto, ma intanto per collegare due PC ad un unica seriale ti serve un convertitore Ethernet-Seriale che supporti connessioni multiple, e quindi poteresti utilizzare l’ATC-3000 che ne supporta fino a 4.Ma il problema è che quando un PC invia il dato questo arriva alla seriale del registratore, ma se il registratore invia una risposta questa arriva ad entrambi i PC connessi, e non so se la cosa è accettata dal programma gestionale.E poi come fai notare tu se entrambi i PC mandano un dato al registratore, i due dati inviati si accodano ed anche qui non so cosa possa succedere, probabilmente stampi 2 scontrini.

    in risposta a: Controllo sala server da Smartphone #39220
    Sergio Bertana
    Amministratore del forum

    Nella Soluzioni per Monitoraggio IP da noi proposte possiamo trovare il prodotto che soddisfa i requisiti. Dovendo gestire non solo ingressi ma anche uscite digitali (Per il comando del ventilatore) dovremmo indirizzarci verso un dispositivo della serie Poseidon. Si può utilizzare uno qualsiasi dei prodotti della serie che abbia almeno una uscita a relè.

    Per quanto riguarda la visibilità in diretta da qualsiasi dispositivo (pref. Smartphone) basta connetterlo al portale gratuito SensDesk e tramite apposite Apps per iOS e Android si può monitorare via Smartphone. Se abbina al prodotto il Software di monitoraggio PDMS (Gratuito fino a 3 sensori) è possibile archiviare su server tutti i dati storici con possibilità di reports su selezione data. Ricordo che l’archivio storico è consultabile anche dal portale SensDesk che però essendo gratuito ha come limitazione un periodo di archiviazione limitato agli ultimi 90 giorni.

    Sulle sonde di Temperatura, Umidità, ecc… possono essere definiti dei valori di soglia al superamento della quale viene inviata una segnalazione (eMail, Trap SNMP, ecc…). La condizione di allarme può anche essere riportata in uscita per il comando del ventilatore di emergenza.

    Ingressi digitali permettono di collegare sensori esterni (Fumo, Apertura porta, ecc…) sui quali è possibile gestire allarmi con invio di segnalazione. Per venire incontro alla sue richiesta ecco un Sensore di luminosità 1-wire che può essere direttamente interfacciato con il Poseidon. L’interfaccia web dei prodotti è direttamente testabile seguendo il link Prova On-Line posto sotto la foto dei vari prodotti.

    in risposta a: Ricezione ed invio messaggi SMS #39218
    Sergio Bertana
    Amministratore del forum

    Strano ho provato qui da me il programma e funziona… Anche se è ovvio hai definito (Magari in debug) i 3 numeri di telefono, vanno definiti tutti e 3.

    Come vedi ho attivato lo Spy quindi dovresti connetterti con la console di spionaggio e vedere cosa succede, eventualmente salvi tutto in un file e me lo invii per capire dove stà il problema.

Stai visualizzando 15 post - dal 2,281 a 2,295 (di 4,296 totali)