Vai al contenuto

Sergio Bertana

Risposte nei forum create

Stai visualizzando 15 post - dal 1,276 a 1,290 (di 4,379 totali)
  • Autore
    Post
  • in risposta a: Connessione inverter ad un DCS #58081
    Sergio Bertana
    Amministratore del forum

    L’inverter è configurabile attraverso parametri ed è sicuramente possibile ottenere quello che ti occorre.

    a) Ingresso S1, configurabile da parametro P05.01. Impostando valore 1 (Valore di default ) attivando l’ingresso si comanda la rotazione del motore “1:Forward rotation operation”.

    b) Ingresso S3, configurabile da parametro P05.03. Impostando valore 7 (Valore di default ) attivando l’ingresso si esegue il reset degli allarmi “7:Fault reset”.

    c) Uscita RO1, configurabile da parametro P06.03. Impostando valore 1 (Valore di default ) l’uscita si attiva se motore in rotazione “1:In operation”.

    d) Uscita RO2, configurabile da parametro P06.04. Impostando valore 5 (Valore di default ) l’uscita si attiva se inverter in errore “5:The inverter fault “.

    e) Ingresso analogico AI2 spostando lo switch relativo per ingresso in corrente. Configurabile dai parametri P05.31~P05.36.

    f) Uscita analogica AO1 spostando lo switch relativo per uscita in corrente. Configurabile dai parametri P06.14~P06.21.

    in risposta a: Gestione allarmi secondo normativa ANSI/ISA 18.2 #58024
    Sergio Bertana
    Amministratore del forum

    La normativa ISA 18.2 inizialmente redatta nel 2009 è stata rivista nel 2016, rappresenta una buona pratica ingegneristica, generalmente accettata, per identificare e promuovere la gestione degli allarmi.

    Non conosco nei particolarì la normativa, che comunque è acquistabile presso il sito isa.org, ma so che molti dei ns clienti che utilizzano pannelli Weintek hanno realizzato gestioni di allarmi complesse seguendo le line guida della normativa. In generale per essere in linea con la normativa non solo occore che il terminale ne permetta di seguire le indicazioni, ma occorre che chi scrive il programma sul terminale le abbia ben chiare e le segua fedelmente.

    Dal punto di vista della gestione, il terminale permette di definire per ogni allarme oltre al colore del testo anche la sua categoria in modo da poterli raggruppare nella visualizzazione (Screenshot).

    in risposta a: Lettura variabili di tipo REAL da PLC SlimLine #58013
    Sergio Bertana
    Amministratore del forum

    Mi parli di RW ed LW, ma questi sono i riferimenti alle variabili interne al pannello, quando leggi variabili dal PLC devi fare riferimento alla sintassi del PLC che stai utilizzando.

    Se usi un nostro sistema SlimLine con protocollo Elsist modbus per le variabili numeriche devi utilizzare il tipo MW se variabili a 16 bits o MDW se variabili a 32 bits (Screenshot). Il protocollo Modbus agisce sulle variabili allocate nella DB100 e come indirizzo devi usare l’indirizzo di allocazione diviso per 2 cui sommi 40000.

    Poi cosa intendi per blocco dedicato solo alla lettura di numeri,  l’oggetto Numeric fà proprio questo.

    in risposta a: Gestione mouse e tastiera su cMT-FHD #58010
    Sergio Bertana
    Amministratore del forum

    Proverei a rimuovere dal progetto il nascondi cursore cosi da capire se almeno il mouse sta lavorando correttamente (Screenshot).

    in risposta a: Aggiornamento Fw su CortexM7 da versione B a versione C #57969
    Sergio Bertana
    Amministratore del forum

    Dalla versione C del sistema operativo si è gestito il file system a FAT32, ora la FLASH interna al modulo è vista come disco C: e la memoria SDCard è vista come disco D:.

    Quindi i comandi “Format Storage” e “Format SDCard” sono spariti ora si usano i comandi “Format C:” e “Format D:” (Vedi topic). Nota: Non occorre formattare il disco C: perchè è già formattato di default e con la formattazione si perderebbero i file di configurazione.

    L’accesso ai files da programma mantiene la compatibilità, quindi i percorsi del tipo “Storage/File…” o “SDCard/File…” sono gestiti, ma occorre creare la cartella Storage sul disco C: come indicato da questo articolo.

    Ricordo che nella versione C viene gestita la sicurezza sull’accesso delle cartelle quindi se si desidera sostituire la pagine Web di default occorre scrivere le proprie pagine nella cartella “C:/Web“.

    in risposta a: Conversione da DWORD a REAL con lo standard IEEE-754 #57945
    Sergio Bertana
    Amministratore del forum

    Il valore letto dal FB ModbusMaster è già un valore REAL quindi non devi effettuare casting con l’operatore TO_REAL ma basta semplicemente che tu definisca la variabile variabile_1 di tipo REAL.

    Siccome Modbus non specifica l’endiannes dei dati ritornati su più word, potrebbe essere che acquisendo variabili espresse su 2 word (UDINT, DWORD, REAL) ci si ritrovi con MSW e LSW invertiti (Ma non  mi sembra questo il tuo caso). Nel caso fossero invertiti puoi usare la funzione VarSwap per sistemarli.

    Gli operatori di casting TO_REAL, TO_INT, ecc non eseguono operazioni servono solamente per informare il compilatore che nel programma si stà facendo un trasferimento di un valore da una variabile di un tipo in una variabile di un’altro tipo.

    in risposta a: cMT-G01 accesso da Modbus TCP a variabili Siemens #57932
    Sergio Bertana
    Amministratore del forum

    La soluzione più semplice è mappare due Device/Server, uno sarà il tuo PLC Siemens e l’altro sarà un server Modbus su connessione Ethernet.

    Nella finestra di impostazione del server Modbus puoi spuntare la voce Modbus TCP/IP Gateway, e così è possibile definire una Mapping Table. Come vedi nella mapping table potrai abbinare ai registri Modbus le corrispondenti variabili Siemens. Avendo 4 DB da mappare dovrai dare un range di 512 words per ogni mappa. Spero che lo screenshot sia esaustivo.

    in risposta a: Inviare stringa dati su porta seriale #57929
    Sergio Bertana
    Amministratore del forum

    Scusa se ho un po corretto il tuo post riportando solo le cose essenziali, cioè la stringa da inviare al display. Nel tuo programma l’errore era che nell’utilizzare la funzione Sysfputc non hai usato il corretto file pointer. Ho corretto il tuo programma utilizzando la funzione Sysfwrite.

    VAR
        Start : BOOL; (* Comando start *)
        Pulse : BOOL; (* Pulse *)
        i : UDINT; (* Auxiliary variable *)
        DData : ARRAY[0..7] OF BYTE; (* Display data *)
        Serial : SysSerialPort; (* Serial port management *)
    END_VAR
    
    // *****************************************************************************
    // PROGRAM "DisplayOut"
    // *****************************************************************************
    // Questo programma esegue l'invio di una stringa ad una stampante.
    // -----------------------------------------------------------------------------
    
        // -------------------------------------------------------------------------
        // INITIALIZATION
        // -------------------------------------------------------------------------
    
        IF (SysFirstLoop) THEN
    
            // Inizializzo porta seriale.
    
            Serial.COM:=ADR('COM0'); //COM port definition
            Serial.Baudrate:=9600; //Baudrate
            Serial.Parity:='N'; //Parity
            Serial.DataBits:=8; //Data bits
            Serial.StopBits:=1; //Stop bits
            Serial.DTRManagement:=DTR_AUTO_WO_TIMES; //DTR management
            Serial.DTRComplement:=FALSE; //DTR complement
            Serial.EchoFlush:=FALSE; //Received echo flush
            Serial.DTROnTime:=0; //DTR On time delay (mS)
            Serial.DTROffTime:=0; //DTR Off time delay (mS)
            Serial.FlushTm:=0; //Flush time (mS)
            Serial.RxSize:=0; //Rx buffer size
            Serial.TxSize:=0; //Tx buffer size
    
            // Preparo messaggio da inviare.
    
            DData[0]:=13; //0D HEAD 1
            DData[1]:=3; //03 HEAD 2
            DData[2]:=1; //01 HEAD 3
            DData[3]:=1; //01 ID
            DData[4]:=1; //01 COMMAND 1 = NEXT 2= ON DEMAND
            DData[5]:=1; //01 NUMERO PAGINA O NEXT SE 1 E COMMAND 1
            DData[6]:=0; //00
            DData[7]:=0; //00
        END_IF;
    
        // -------------------------------------------------------------------------
        // ESEGUO INVIO MESSAGGIO
        // -------------------------------------------------------------------------
        // Controllo variazione comando start.
    
        IF (Start <> Pulse) THEN
            Pulse:=Start; //Pulse
    
            // Eseguo invio solo su fronte attivazione.
    
            IF (Start) THEN
                i:=Sysfwrite(ADR(DData), 8, 1, Serial.File);
            END_IF;
        END_IF;
    
    // [End of File]
    in risposta a: Trasferimento automatico dati da terminale a PC #57922
    Sergio Bertana
    Amministratore del forum

    Aggiungo che utilizzando un nostro sistema SlimLine è possibile con il FB FPTClient eseguire il trasferimento automatico di un file da un server FTP (Esempio il pannello operatore) su di un’altro server FTP (Esempio il PC).

    In fondo alla pagina di manuale si trova il programma FTPFileTransfer che esegue proprio questa operazione tra due pannelli operatore Weintek. Basta copiare ed incollare l’esempio nel proprio programma LOgicLab ed eseguirlo.

    in risposta a: Trasferimento automatico dati da terminale a PC #57900
    Sergio Bertana
    Amministratore del forum

    Con i pannelli iE/xE/iP puoi usare il server di stampa remota, installi il programma EasyPrinter (Lo trovi nella cartella di installazione di EasyBuilder) su di un PC in rete, tramite l’oggetto Backup puoi inviare il file direttamente al PC che lo salverà in una cartella predefinita.

    Per quanto riguarda la serie CMT usando un action trigger è possibile trasferire file presenti su una USB connessa al pannello ad un server FTP di un PC in rete tramite la funzione trasferimento file.

    in risposta a: Comando stampa da tasto funzione su CMTViewer #57896
    Sergio Bertana
    Amministratore del forum

    Questo è dovuto al fatto che la stampante può essere gestita direttamente solo dal client principale (che in questo caso è il pannello cMT-FHD).

    Come workaround puoi aggiungere nelle funzioni PLC una funzione di stampa pagina quindi inserire nella pagina del terminale un pulsante per impostare ad ON il bit di attivazione della funzione. In questo modo non utilizzi più la funzione di stampa diretta.

    in risposta a: Caratteri stringa in formattazione JSON #57893
    Sergio Bertana
    Amministratore del forum

    LogicLab non esegue nessuna codifica unicode sui caratteri, usa la codifica ASCI in accordo con la ISO 8859-1, anche detta ISO Latin-1.

          _0  _1  _2  _3  _4  _5  _6  _7  _8  _9  _A  _B  _C  _D  _E  _F 
        +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
      0_|   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
      1_|   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
      2_| SP| ! | " | # | $ | % | & | ' | ( | ) | * | + | , | - | . | / |
      3_| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | : | ; | < | = | > | ? |
      4_| @ | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O |
      5_| P | Q | R | S | T | U | V | W | X | Y | Z | [ | \ | ] | ^ | _ |
      6_| ` | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o |
      7_| p | q | r | s | t | u | v | w | x | y | z | { | | | } | ~ |   |
      8_|   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
      9_|   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
      A_|   | ¡ | ¢ | £ | ¤ | ¥ | ¦ | § | ¨ | © | ª | « | ¬ |SHY| ® | ¯ |
      B_| ° | ± | ² | ³ | ´ | µ | ¶ | · | ¸ | ¹ | º | » | ¼ | ½ | ¾ | ¿ |
      C_| À | Á | Â | Ã | Ä | Å | Æ | Ç | È | É | Ê | Ë | Ì | Í | Î | Ï |
      D_| Ð | Ñ | Ò | Ó | Ô | Õ | Ö | × | Ø | Ù | Ú | Û | Ü | Ý | Þ | ß |
      E_| à | á | â | ã | ä | å | æ | ç | è | é | ê | ë | ì | í | î | ï |
      F_| ð | ñ | ò | ó | ô | õ | ö | ÷ | ø | ù | ú | û | ü | ý | þ | ÿ |
        +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+

    Quando scrivi una stringa in LogicLab con la “à” il carattere viene convertito nel codice ascii 224 (16#E0) che è il codice inviato al server. Quando stampi con Toolly la stringa in spionaggio Toolly sostituisce i caratteri non stampabili (Da 128 a 255) con un “.”, se vuoi vedere il codice ascii del tuo carattere devi aprire con il tasto di Config la finestra di configurazione ed attivare il tick Substitute unprintable chars.

    in risposta a: Elenco errori programma LogicLab #57888
    Sergio Bertana
    Amministratore del forum

    L’errore A4099 ” spazio vars Auto esaurito”, indica che hai superato lo spazio di memoria RAM a disposizione del compilatore. Hai allocato troppe variabili o troppi blocchi funzione, devi rimodulare il programma per cercare di risparmiare memoria.

    Ti ricordo che è possibile utilizzare la memoria rilocabile con le funzioni SysMAlloc e SysRMAlloc che rendono disponibile ulteriore memoria.

    Mentre per l’errore “Indice non valido nel blocco dati”, non riesco a capire da cosa derivi, se mi invii la ria di programma che genera l’errore ti posso aiutare.

    in risposta a: Conversione da DWORD a REAL con lo standard IEEE-754 #57878
    Sergio Bertana
    Amministratore del forum

    La dichiarazione TO_REAL è corretta, probabilmente stai prendendo un abbaglio in quello che vedi, eccco nello screenshot un esempio di conversione.

    Come vedi ho caricato il valore 12345678 nella DWORD e lo stesso valore l’ho definito nel campo You entered della utility web. Come risultato della conversione avrò che la variabile REAL RVar ha valore 12345678.0 ma se utilizzando un puntatore di tipo DWORD ne visualizzo il valore esadecimale ottengo 16#4B3C614E che è lo stesso valore visualizzato nel campo Hexadecimal Representation.

    Ho utilizzato il puntatore solo per poter vedere contemporaneamente sia il valore REAL che il suo valore esadecimale, ma tu puoi anche andare nella finestra watch e selezionare la variabile e con il tasto destro del mouse scegliere Format e formato Hexadecimal per vedere la stessa cosa.

    Aggiungo che se ti serve maggior risoluzione dalla versione XUnified dei sistemi abbiamo introdotto i numeri a 64 bits sia interi che floating.

    in risposta a: Installazione driver RNDIS per connessione USB #57876
    Sergio Bertana
    Amministratore del forum

    Premesso che il driver RNDIS in Windows a volte dà problemi, e che io non lo utilizzo più da molto tempo visto che ormai quasi tutti i nostri moduli CPU sono dotati di  porta Ethernet. Per scrupolo ho recuperato un vecchio modulo MPS046B100 e l’ho collegato ad un PC Windows 10.

    Il driver si è immediatamente installato (Screenshot), assegnato l’indirizzo IP del PC (192.168.1.10) è possibile pingare il modulo che di default ha indirizzo 192.168.1.122. Naturalmente se ci sono altre reti attive bisogna accertarsi che la nuova rete non rientri in una delle classi delle altre reti attive.

    Nel tuo post non mi dici se il lLED vicino al connettore USB si illumina quando lo connetti al PC. Come consiglio posso dirti di connettere il cavo USB al PC con il modulo SlimLine già acceso ed eventualmente estrarre l connettore dal PC attendere un attimo e poi reinserirlo.

Stai visualizzando 15 post - dal 1,276 a 1,290 (di 4,379 totali)