Sergio Bertana

Risposte nei forum create

Stai visualizzando 15 post - dal 1,801 a 1,815 (di 4,505 totali)
  • Autore
    Post
  • in risposta a: Upload progetto sorgente #46504
    Sergio Bertana
    Amministratore del forum

    Con l’ultima versione di LogicLab PCK033I000, Pacchetto installazione suite IEC61131-3 Vers. 3.0.0 (LogicLab Ver. 5.8.0.17) l’operazione funziona. Abbiamo clienti che la utilizzano normalmente e per ulteriore scrupolo ho anche provato personalmente.

    Per eseguire l’upload hai due soluzioni usare la procedura di Import project from target selezionando il protocollo Modbus 2.0 e collegandoti con lo SlimLine.

    In alternativa ti connetti in FTP con lo SlimLine e scarichi dalla cartella C:/Plc il file Project.rsm, poi da LogicLab apri il progetto selezionando come tipo file rsm.

    Non capisco quale possa essere il tuo problema, il tuo progetto era protetto da password ? eventualmente puoi inviare il file rsm (Scaricato in FTP) a noi oppure al supporto Axel per vedere se è possibile aprirlo.

    in risposta a: Dimensione memoria ritentiva #46496
    Sergio Bertana
    Amministratore del forum

    Vediamo le diverse possibilità.

    Potresti allocarti un array di memoria con l’attributo RETAIN (Massima dimensione 1 KByte), ed a ogni loop di programma (O solo su variazioni) copiare il contenuto della memoria da DB100.0 a DB100.xxx in questo array, puoi usare la funzione Sysmemmove. Ed alla accensione fare l’operazione opposta. Se vuoi eseguire la copia solo su variazioni puoi usare il FB BufferModified per il controllo.

    Usando sempre l’area non ritentiva della DB100 puoi copiarla su di un file su disco utilizzando il FB FileMemoryDump. In questo caso conviene eseguire la copia solo sulle variazioni. Poi alla accensione esegui la copia inversa da file in memoria.

    Puoi allocare un array in memoria non ritentiva della dimensione che ti serve e poi sempre con il FB FileMemoryDump trasferirlo su file come detto precedentemente. In questo caso per poter raggiungere questo array che non si trova in DB100 da Modbus devi utilizzare il FB ModbusSlave_v1 agganciandolo ad un FB TCPServer istanziato appositamente. Naturalmente dovrai utilizzare un’altra porta TCP non la 502.

    in risposta a: Upload progetto sorgente #46494
    Sergio Bertana
    Amministratore del forum

    Si l’operazione è equivalente, ma il problema non è nello SlimLIne, il problema è nel tool LogicLab, la versione che hai tu probabilmente ha un bug e non riesce ad aprire il file .rsm.

    Ti consiglio di scaricare  dal nostro sito l’ultima versione ed eseguire l’upgrade. Con questa versione il problema dovrebbbe risolversi.

    in risposta a: File system su SlimLine LogicLab Cortex M7 #46422
    Sergio Bertana
    Amministratore del forum

    Quello che hai fatto è corretto, ma avendo formattato con FAT_32 puoi usare solo nomi di files da 8+3 caratteri tutto in maiuscole.

    Non è che nel tuo programma utilizzi nomi scritti in maiuscole/minuscole magari di 14 caratteri ? prchè per poterli utilizzare devi formattare in FAT_32_ELS.

    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.

Stai visualizzando 15 post - dal 1,801 a 1,815 (di 4,505 totali)