Vai al contenuto

Sergio Bertana

Risposte nei forum create

Stai visualizzando 15 post - dal 1,681 a 1,695 (di 4,381 totali)
  • Autore
    Post
  • in risposta a: Libreria gestione stringhe json #46419
    Sergio Bertana
    Amministratore del forum

    La funzione JSONDecode al momento non è in grado di gestire oggetti JSON annidati, i caratteri di newline e gli spazi non sono un problema.

    La soluzione che hai trovatoe è la migliore, con la funzione SysStrFind cerchi il campo che ti interessa e poi con la funzione SysVarsscanf ne acquisisci il valore.

    in risposta a: Documentazione eJProbe #46309
    Sergio Bertana
    Amministratore del forum

    JProbe è la libreria per l’aggiornamento automatico in Ajax delle pagine, la stiamo utilizzando per le pagine di configurazione del sistema. Ma la versione a disposizione dei clienti non è ancora rilasciata, attualmente è un work in progress che cambia ogni giorno. Appena avremo una versione definitiva stabile verrà rilasciata con la relativa documentazione.

    in risposta a: Interfacciare un lettore badge ad un terminale #46304
    Sergio Bertana
    Amministratore del forum

    Esistono lettori RFID con uscita seriale in commercio fai una ricerca su Google.

    Noi abbiamo lettori da pannello con uscita 1-Wire (vedi questo), per la lettura di questo tipo di sensore sui nostri sistemi SlimLine abbiamo il FB sOWRdIdentifier. Eventualmente puoi utilizzare questo lettore ed un modulo SlimLine Cortex M7 per la lettura, tieni conto che il costo totale è paragonabile a quello di un lettore con uscita seriale.

    Ma in questo caso il dialogo tra il terminale e lo SlimLine è gestito in Modbus e non devi sviluppare nessuna macro sul terminale per la lettura.

    in risposta a: Come effettuare la stampa di etichette #46302
    Sergio Bertana
    Amministratore del forum

    La connessione seriale mi sembra corretta a parte un refuso (Credo sia Pin5 RX>Pin2 Txd). I segnali RDY e DSR li puoi collegare come hai detto poi è da capire come gestirli guardando la documentazione sulla stampante.

    Per l’uscita dei dati dopo avere aperto la porta dicomunicazione con l’FB SysSerialPort, puoi eseguire l’uscita di ogni singolo carattere con la funzione Sysfputc, esempio:

    Sysfputc(16#4E, Fp); (* Invio “N” *)
    Sysfputc(16#0D, Fp); (* Invio “Cr” *)

    E così di seguito per tutti i caratteri, oppure usi la funzione SysVarfprintf, ecco un esempio:

    SysVarfprintf(Fp, ‘%s’, STRING_TYPE, ADR(‘N$rA50,0,0,1,1,1,N,”Example 1″$rP1$r’));

    Nota: Può essere che dopo ogni <CR> simbolo $r, la stampante esegua il comando e non accetti altri caratteri se non dopo un tempo. In tal caso suddividi la SysVarfprintf in 3 righe interponendo una pausa tra l’invio. Trattandosi di PLC per eseguire la pausa devi realizzare una macchina a stati usando l’istruzione CASE. Nel forum quasi tutti gli esempi sono fatti con macchina a stati.

    in risposta a: Calcolo di un timeout #46298
    Sergio Bertana
    Amministratore del forum

    Si in effetti basta fare come hai detto. Ma perchè appoggi il valore in TimeTmpWarning, tutto il tuo programma si sviluppa in due righe (Ho ipotizzato un ritardo di 10 Secondi).

    IF (DoorClosed) THEN Warning:=FALSE; TimeBf:=SysGetSysTime(TRUE); END_IF;
    IF ((SysGetSysTime(TRUE)-TimeBf) > 10000000) THEN Warning:=TRUE; END_IF;

    DoorClosed è l’ingresso di porta chiusa (Attivo se chiusa) e Warning è l’uscita di allarme. Ecco il programma in simulazione su PC con SimuLink (Screenshot), download programma DoorAlarm.

     

    in risposta a: Attivazione Easyaccess 2.0 in versione trial #46171
    Sergio Bertana
    Amministratore del forum

    L’attivazione è la stessa della versione licenziata (Vedi topic), in pratica basta inserire l’Hardware key nella registrazione di dominio e se è di un pannello nuovo mai registrato in EasyAccess si potrà utilizzarlo per 1 mese.

    Attenzione: Una volta registrato il pannello in versione trial esso rimarrà ancorato al dominio di registrazione e non sarà possibile spostarlo. Per spostarlo su di un altro dominio (Esempio si manda il pannello al clìente finale che lo vuole includere nel proprio dominio) occorre registrare EasyAccess acquistando una activation card.

    in risposta a: Come effettuare la stampa di etichette #46169
    Sergio Bertana
    Amministratore del forum

    Non è possibile gestire la porta USB host del pannello da macro, puoi invece inviare comandi ad una stampante connessa in seriale oppure in ethernet.

    Devi installare un drivere Free protocol (Screenshot) e poi tramite macro con il comnado OUTPORT puoi inviare in uscita dalla porta i caratteri ascii. Ti rimando a questo topic dove trovi una semplice macro.

    In alternativa puoi gestire dallo SlimLine l’invio delle stringhe ascii alla stampante (Vedi funzioni Sysfputc, Sysfwrite, SysVarfprintf) sul manuale. Ma anche in questo caso la stampante deve essere connessa in seriale o in ethernet.

    in risposta a: Messaggio "Server non connesso" #46055
    Sergio Bertana
    Amministratore del forum

    Si l’indirizzo della mail di supporto è corretto.

    in risposta a: Realizzare un posizionatore #46047
    Sergio Bertana
    Amministratore del forum

    In tal caso devi gestire da programma il posizionamento. Per la lettura encoder puoi usare un modulo I/O digitali con il FB SysGetEncoder, per l’uscita analogica un modulo espansione I/O analogico e per gestire la rampa di velocità il FB LRamp.

    Naturalmente dovrai gestire il punto di decelerazione in posizione e l’arresto in quota. Se poi il motore deve essere mantenuto in coppia dovrai gestire un loop di spazio sulla posizione.

    in risposta a: Messaggio "Server non connesso" #46045
    Sergio Bertana
    Amministratore del forum

    Mi puoi dire se nel tuo progetto usi in modo massiccio i seguenti oggetti:

    1. USB Barcode reader
    2. Remote HMI
    3. AWS IoT MQTT

    Eventualmente potresti mandare il progetto per email al nostro supporto così verifichiamo con Weintek.

    in risposta a: Realizzare un posizionatore #46034
    Sergio Bertana
    Amministratore del forum

    Non abbiamo un FB per gestire il posizionamento assi.

    Ma molti tra i nostri clienti hanno gestito il posizionamento di assi utilizzando drivers intelligenti che gestiscono in modo autonomo il posizionamento. E’ facile e conveniente oggi con i motori brushless e/o stepping gestire nell’elettronica di gestione del motore il posizionamento. Si evita così di dover riportare i segnali encoder al PLC e di gestire con l’uscita analogica la velocità del motore.

    I drivers più semplici hanno il protocollo Modbus con il quale è possibile impostare tutti i parametri (Rampe, velocità e posizione) inoltre dallo stesso Modbus è possibile acquisire le eventuali anomalie dal driver gestendo anche la diagnostica.

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

    Come dicevo prima sono state introdotte maggiori restrizioni sul controllo del codice, nel tuo caso il prototipo della funzione SysVarsnprintf (Lo vedi posizionando il mouse sul nome funzione) è:

    (@USINT, UDINT, STRING, USINT, UDINT)

    Quindi il primo parametro deve essere un indirizzo, ora passando l’oggetto Subject con LogicLab4 visto che si trattava di una variabile stringa considerava per default il suo indirizzo, ora lo devi specificare. Quindi devi scrivere:

    i:=TO_UINT(SysVarsnprintf(ADR(Subject), SIZEOF(Subject), ‘SANIBOX: %s’, STRING_TYPE, TO_UDINT(ADR(NOME_SANIBOX))));

    in risposta a: Aggiornare programma PLC tramite USB/SDCard #45902
    Sergio Bertana
    Amministratore del forum

    Se il sistema è raggiungibile da Internet puoi aggiornare il programma da remoto, se usi il pannello operatore Weintek puoi usare EasyAccess per accedere  da remoto.

    In alternativa puoi utilizzare il LogicLab Loader un semplice programma che installato sul PC del cliente con una interfaccia grafica minimale permette di trasferire il programma sul dispositivo. Puoi fornire al cliente anche il programma criptato in modo che lo possa utilizzare solo per il trasferimento sul PLC.

    Per aggiornare il sistema operativo sui sistemi basati su Cortex M7 abbiamo previsto la possibilità di trasferire il file in FTP e poi da Telnet eseguire il comando di upgrade. Abbiamo in progetto qualcosa di simile anche per il programma utente, ma al momento è ancora in fase di studio.

    in risposta a: Chiarimenti per realizzazione impianto domotico #45823
    Sergio Bertana
    Amministratore del forum

    1. Bisogna capire quali sono i moduli di I/O che intendi utilizzare, se usi ad esempio i Moduli in RS-485, devi realizzare una rete RS485 in cui tutti i moduli sono parallelati e via Modbus li devi “pollare” ad uno ad uno. I polling porta a tempi sicuramente misurabili ipotizzando di avere 5 moduli potresti arrivare anche ad 1 secondo per il polling totale. Con tempi così non puoi gestire il pulsante perchè si ipotizza di premerlo per un centinaio di mS.

    Diverso se usi i moduli su Ethernet o WiFi, invece puoi aprire una connessione continua in TCP modulo per modulo ed allora anche utilizzando Modbus hai tempi che potrebbero essere sui 100 mS a modulo.

    Se invece come moduli di I/O usi ad esempio un modulo CPU Compact ethernet, con la libreria eLLabDataExchLib (Topic) il trasferimento avviene in pochi mS (Dipende dal traffico di rete). Ma anche ammettendo di usare un modulo CPU Rs485 pur avendo tempi lunghi avresti il vantaggio di poter memorizzare sul modulo di I/O la pressione del pulsante.

    2. Per il controllo accessi se utilizzi questo lettore, puoi gestire sia il TAG RFID che la tastiera (Topic).

    3. Tutte le librerie che ho citato sono disponibili sul prodotto LogicLab, per CODESYS non rilasciamo librerie.

    4. SlimLine è un sistema “aperto” è possibile connettere dispositivi via I2C al bus di espansione e gestirli da programma (Topic). Quindi puoi cercare interfacce vocali con interfaccia seriale o I2C e gestirle da programma. Ad esempio il modulo Easy VR 3.0 può essere un’idea (Cerca su Google Easy VR speech).

    Infine puoi cimentarti con prodotti in WiFi o RF433 che possono essere interfacciati con i nostri sistemi SlimLine.

    in risposta a: Personalizzare esecuzione programma su sistema #45810
    Sergio Bertana
    Amministratore del forum

    Se ho capito la tua esigenza la potrei soluzionare ad esempio utilizzando uno SlimLine observer (Con IP statico), con la FB SysTCPServer metto in ascolto un servizio di gestione coordinamento. Tutti gli SlimLine della rete di comunicazione alla accensione si connettono all’observer chiedendo che ruolo devono avere. Al primo che si connette verrà assegnato il ruolo di master, agli altri il ruolo di slaves.

    Per aumentare l’affidabilità della rete, i vari SlimLine potrebbero dialogare con l’observer in una sorta di heartbeat, l’observer in caso di errore comunicazione con il master può reinizializzare tutti i  dispositivi riassegnando il ruolo di master.

    Tutto quello espresso è in teoria fattibile ma non esistono al momento programmi specifici che lo realizzano.

Stai visualizzando 15 post - dal 1,681 a 1,695 (di 4,381 totali)