Vai al contenuto

Sergio Bertana

Risposte nei forum create

Stai visualizzando 15 post - dal 2,731 a 2,745 (di 4,281 totali)
  • Autore
    Post
  • in risposta a: Accesso a SlimLine da SCADA su smartphone #38492
    Sergio Bertana
    Amministratore del forum

    Intanto ti consiglio di utilizzare il nuovo blocco funzione ModbusMaster nel forum si trovano moltissimi post che trattano il protocollo Modbus (Vedi esempio questo topic).

    Ricordati poi l’offset 1, il blocco funzione in accordo alle specifiche Modbus sottrae 1 all’indirizzo, se il dispositivo che viene interrogato non somma 1 hai un errore di indirizzamento. Quindi prova a sommare 1 all’indirizzo che vuoi leggere.

    Attiva lo Spy e da Telnet potrai vedere sia il frame inviato che il frame ricevuto e da qui potrai capire il tipo di errore.

    in risposta a: Controllo motore passo-passo in Modbus #38490
    Sergio Bertana
    Amministratore del forum

    Il blocco funzione ModbusMaster si trova nella libreria ePLCUtyLib_C000.pll che è fornita con l’installazione della versione 2.3.0 di LogicLab. Ti consiglio di eseguiore il download dell’ultima versione di LogicLab dal nostro sito, che è arricchito da altre nuove funzioni e blocchi funzioni.

    in risposta a: Comportamento anomalo programma #38488
    Sergio Bertana
    Amministratore del forum

    E’ un problema di variabili allocate in area RETAIN, problema già segnalato in questo topic.

    in risposta a: Eseguire il reboot del terminale HMI #38486
    Sergio Bertana
    Amministratore del forum

    Aggiungo listato macro eseguita ciclicamente ad ogni secondo.

    macro_command main()

      bool RFlag=true //Reset flag
      short ABuffer //Auxiliary buffer

      // Alla mezanotte eseguo reboot.
     
      GetData(ABuffer, “Local HMI”, LW, 9019, 1) //Leggo ora
      if (ABuffer == 23) then
     
        GetData(ABuffer, “Local HMI”, LW, 9018, 1) //Leggo minuti
        if (ABuffer == 59) then

          GetData(ABuffer, “Local HMI”, LW, 9017, 1) //Leggo secondi
          if (ABuffer >= 55) then
            SetData(RFlag, “Local HMI”, LB, 9048, 1) //Reboot-HMI protection
            SetData(RFlag, “Local HMI”, LB, 9047, 1) //Reboot-HMI
          end if 
        end if 
      end if 
    end macro_command

    in risposta a: Eseguire il reboot del terminale HMI #38485
    Sergio Bertana
    Amministratore del forum

    La tecnica di effettuare un reboot del pannello ogni giorno è una tecnica che consigliamo di utilizzare sui pannelli che restano sempre accesi per evitare che si crei un overflow di allocazione memoria. Il sistema operativo del pannello è un Linux e l’applicativo come tutti i programmi continua ad allocare e disallocare memoria, può essere che in un sistema sempre acceso si esaurisca l’area di malloc generando un blocco del programma applicativo.

    Come detto prima vi sono due variabili che permettono il reboot, quindi l’operazione più semplice è creare una macro (Vedi manuale macro) eseguita a tempo in cui si controlla l’orologio interno al pannello ed all’ora stabilita, solitamente la mezzanotte quando presumibilmente nesuno stà utilizzando il pannello ne forza il reboot. Ho realizzato un semplice progetto che visualiza l’orologio del pannello ed alla mezzanotte forza il reboot (Download progetto).

    La tecnica è quella di controllare se l’ora è maggiore delle 23:59:55, visto che il reboot richiede circa 15 secondi, al riavvio l’ora sarà 00:00:10 quindi sicuramente minore del valore di confronto, così il prossimo reboot avverrà alla mezzanotte successiva. Tutti i terminale serie iE hanno il real time clock integrato.

    in risposta a: Come funziona il blocco funzione eTON in LogicLab #38483
    Sergio Bertana
    Amministratore del forum

    Nella nostra FB di eTON il valore di ET rimane settato anche al reset dell’ingresso IN. In effetti la abbiamo chiamata eTON con quella “e” che stà a significare una variante dellla TON standard. Non sò come mai ti serva azzerato il valore di ET alla discesa di IN. Ti allego un progetto (Stampa) in cui la FB non è protetta e quindi puoi agevolmente modificarla per piegarla alle tue necessità (Download progetto).

    Per ottenere l’azzeramento di ET sul reset di IN devi aggiungere nel ramo della IF sul controllo di IN anche l’azzeramento di ET.

    IF NOT(IN) THEN
      ET:=0; (* Executing time (mS) *)
      TimeBf:=SysTime; (* Time buffer *) 
      Q:=FALSE; (* Delayed output *)
      RETURN;
    END_IF;

    Se guardi l’FB vedrai che su riattivazione di IN ET assumerà il valore ET:=SysTime-TimeBf; ed avendo nel ramo del controllo su IN posto TimeBf:=SysTime; conteggerà il reale tempo trascorso dalla attivazione di IN.

    in risposta a: Acquisizione encoder e gestione del valore di quota #38481
    Sergio Bertana
    Amministratore del forum

    Partendo dall’esempio postato sopra, ho modificato il blocco funzione di calcolo quota per fare ritornare un valore DINT al posto di un UDINT, ed il gioco è fatto. Il valore Quote ritornato dal blocco funzione QuoteMng lo dovrai appoggiare in una variabile DINT allocata in memoria DB 100 per poterlo visualizzare sul pannello Weintek (Ecco la stampa del programma).

    Per permettere di poter memorizzare il valore di quota allo spegnimento del sistema ho inserito nel blocco funzione il parametro IQuote. In questo modo appoggiando sull’ingresso la variabile RETAIN del valore di quota si potrà alla abilitazione del blocco funzione iniziare il conteggio quota dal valore preesistente (Download programma).

    in risposta a: Fast output management on counter threshold #38479
    Sergio Bertana
    Amministratore del forum

    You don’t report how many counters that must be managed, anyway I try to suggest some possible solutions at your question.

    If you need a single counter you can use the counter on the SlimLine CPU module. It’s possible to read its value on a program executed on Fast task (Standard every 1 mS, but the time can be changed to your requirements and you can set times down to 100 uS). Here the screenshot of an example program, as you can see the program execution takes 9 uS and at the maximum 19 uS (Download program).

    If you need more counters and for a significantly number of applications, we can modify the static output expansion I/O module. The module is based on a FPGA logic, so it’s possible to program it by adding up to 4 counters and the logic to preset a value and manage the output according to your requirements.

    in risposta a: Come funziona il blocco funzione eTON in LogicLab #38478
    Sergio Bertana
    Amministratore del forum

    Il blocco funzione eTON funziona esattamente come hai detto tu, non capisco come tu lo voglia utilizzare. Ecco lo screenshot di un programma di esempio in funzione sul simulatore SimuLab (Ho catturato lo screenshot mentre il timer stava temporizzando ET=1470), allego il progetto sorgente (Download progetto).

    Come funziona eTON, attivando l’ingresso IN (Sul fronte di attivazione) si azzera il valore di tempo trascorso (ET elapsed time) ed inizia il conteggio del tempo, raggiunto il valore definito in (PT preset time) l’uscita Q si attiva e rimane attiva fino alla disabilitazione dell’ingresso IN.

    Se l’attivazione di IN ha una durata inferiore al valore di tempo definito in PT, il timer inizia a contare ma non si attiva l’uscita Q. Ed in ET troveremo il valore di tempo per il quale l’ingresso IN è rimasto attivo. Allego la stampa dell’estratto della normativa IEC 61131-3 che riporta il diagramma temporale di funzionamento dei tre tipi di timer previsti.

    in risposta a: Come utilizzare la SDCard per il salvataggio di file di log #38477
    Sergio Bertana
    Amministratore del forum

    Ho ipotizzato un record di log con i dati che ti necessitano (Data/ora; 7 valori REAL), il record è del tipo:

    25/10/2014 00:00:00;120.5;75.8;1200.0;145.76;1560.6;456.8;985.75

    Come vedi sono 64 bytes che arrotondiamo per eccesso a 70. Considerando un log ogni 10 secondi avremo 360 Record/Ora (Pari a 25Kb Ora). Anche ipotizzando un log continuo 24 ore su 24 e 31 giorni mese avremo ogni mese 267840 records con una quantità di dati pari a 18Mb. Formattando la SDCard per contenere i 12 mesi avremo per ogni file disponibili 44Mb di dati come si vede dal comando:

    Format SDCard 12
    Are you sure ? (Y,n)
    Format Ok, Files:12, FSize:44738688, Time:54.290 (mS)

    In merito alla soluzione da te proposta di leggere da un PC tramite una connessione FTP i files dallo SlimLine, direi che è una ottima soluzione per garantire un efficace backup dei dati nello storage aziendale. Se opti per questa soluzione terrei i files sullo SlimLine più piccoli (Quindi farei una memorizzazione giornaliera) ed il server centrale può ogni giorno scaricare il file del giorno precedente avendo nello SlimLine un polmone di 7 giorni.

    in risposta a: Connettersi ad una WiFi pubblica con più PC #38475
    Sergio Bertana
    Amministratore del forum

    Certo la tua soluzione è fattibile, se sai dove è ubicata l’antenna WiFi dell’access point pubblico ti consiglio una NanoStation al posto del Bullet per la station esterna alla casa. Essendo direttiva la puoi puntare sull’access point migliorando sia la trasmissione che la ricezione.

    Poi come dici tu connetti al’interno della casa un dispositivo con antenna omnidirezionale da utilizzare come access point (Esempio Picostation). Ma a parte esigenze particolari Ubiquiiti rende disponibile l’AirGateway che fà esattamente quello che ti serve.

    Comunque se configuri station l’antenna esterna e Access point il dispositivo interno entrambi in modalita bridged (Non router) i dispositivi interno casa utilizzeranno il server DHCP della rete WiFi pubblica.

    Il WDS (Topic) è una tecnica per estendere il segnale utilizzando access point multipli.

    in risposta a: Abilitazione EasyAccess 2.0 su terminale #38474
    Sergio Bertana
    Amministratore del forum

    Ed ora veniamo all’accesso al pannello da remoto, occorre installare sul PC il programma Easy Access 2.0 (Download dal ns sito), eseguendo il programma verranno richieste le credenziali di accesso (Definire le credenziali impostate all’utente) (Screenshot).

    Eseguito l’accesso si visualizzerà lo stato di tutti i pannelli gestibili dall’utente, con l’indicazione dello stato di ogni pannello (Offline, Online). Clickando sul tasto di connessione verrà creata la VPN di connessione al pannello e visualizzato l’indirizzo IP assegnato dalla VPN al pannello. Riferendosi a questo indirizzo sarà possibile operare sul pannello come  se fosse fisicamente in rete con il PC.

    Easy Access 2.0 non rende solo possibile la connessione diretta ad un pannello della Weintek, ma fornisce anche la funzione pass-through che permette all’utente di connettersi a un PLC su una rete remota HMI, cioè sulla stessa LAN in cui è presente l’HMI. Una volta creata la rete VPN con il pannello un click sul pulsante “Set” permette di configurare l’indirizzo IP del PLC connesso alla rete del pannello. Dal tool di programmazione del PLC basterà riferirsi all’indirizzo IP definito per raggiungere tramite la VPN di Easy Access il PLC remoto. Attenzione, nel rete del vostro PC non dovrà gia esserci un dispositivo con lo stesso indirizzo IP (Screenshot).

    in risposta a: Comunicazione modbus RTU master #38473
    Sergio Bertana
    Amministratore del forum

    Fino a quando non rilasceremo una versione del sistema operativo di SlimLine che prevede il client TCP non c’è altro modo che il convertitore. Puoi utilizzare la versione Codesys di SlimLine che ha sia il server che il client TCP, ma è più costosa (Licenza Codesys sigh)…Su questa versione inoltre trovando già molte applicazioni disponibili (Vedi libreria Oscat) non abbiamo portato tutta la gamma di librerie che invece offriamo con la versione LogicLab e quindi occorre cercare o scriversi la gestione del protocollo Modbus master.

    in risposta a: Abilitazione EasyAccess 2.0 su terminale #38461
    Sergio Bertana
    Amministratore del forum

    Proseguo con lo step applicativo, affinchè il pannello possa essere gestito con EasyAccess occore registrarlo al sito Weintek nel proprio dominio, la prima volta occorrerà registrarsi e creare il dominio. Per registrarlo occorre conoscere il SessionID e la Password assegnati al pannello.

    Per avere queste informazioni occorre realizzare un progetto EasyBuilderPro (Download progetto) che agisce sulle variabili relative. Come si vede dallo screenshot agendo sul tasto Connect, il terminale si collegherà in Internet con il server Weintek (Occorre avere definito nei parametri di Network il Gateway ed il server DNS), e visualizzerà i valori di SessionID e Password relativi a quel pannello (Allego estratto manuale EasyBuilderPro relativo ai System Registers). La condizione di attivazione dell’HMI si può vedere nella Status page, del System Setting (Screenshot).

    A questo punto è possibile inserire il pannello nel dominio tramite il sito Weintek (Vedi screenhot). Se la procedura và a buon fine verranno visualizzati tutti i dati relativi al pannello (Screenshot). Ora è possibile creare dei gruppi assegnando ad ogni gruppo i pannelli corrispondenti.

    Occorre poi definire gli utenti assegnando ad ogni utente un gruppo di pannelli su cui l’utente può operare. Attenzione per accedere da remoto con il programma EasyAccess 2.0 dovranno essere definite le credenziali assegnate all’utente. Ecco un semplice layout di configurazione (Screenshot).

    in risposta a: Comunicazione modbus RTU master #38471
    Sergio Bertana
    Amministratore del forum

    Per completezza e per soddisfare l’esigenza di chi deve necessariamente utilizzare il protocollo Modbus TCP, porto un esempio suggerito ad un nostro cliente. Non potendo lo SlimLine agire come client si aggira il problema utilizzando un convertitore Ethernet/Seriale (Anche un semplice ATC-1000) connesso alla porta seriale dello SlimLine. Il convertitore Ethernet/Seriale andrà configurato come Client definendo come server l’indirizzo IP e la porta (Default la 502) del sistema Modbus slave. Nello SlimLine si utilizza l’FB ModbusMaster connessa alla porta seriale avendo impostato come Type il valore 2 che gestisce il protocollo Modbus TCP.

Stai visualizzando 15 post - dal 2,731 a 2,745 (di 4,281 totali)