Vai al contenuto

Macro per scrittura variabile su plc

Home Forum Terminali operatore (Weintek) Macro per scrittura variabile su plc

Stai visualizzando 4 post - dal 1 a 4 (di 4 totali)
  • Autore
    Post
  • #66900
    CliffTn
    Partecipante

    Ho creato una macro che mi setta un valore a ingresso in una pagina, se uso le variabili HMI è ok

    bool a = false
    SetData(a, "Local HMI", LB, 0, 1)

    Se tento di usare una variabile su PLC mi da un sacco di errori, il plc è un Rockwell, il nome del canale è PlcRockwell, la variabile è DB40 INT[100].

    int b = 1
    SetData(b, "PlcRockwell", DB40, 0, 1)
    Ho provato anche con
    SetData(b, "PlcRockwell", "DB40", 0, 1)

    Mi da i seguenti errori :

    errore C27 : errore di sintassi
    errore C1 : errore di sintalli
    errore C50 : Nome dispositivo non valido
    errore C45 :

    Se nel nome del canale metto un nome a caso gli errori sono diversi :

    SetData(b, "PlcTest", DB40, 0, 1)

    Mi da solo

    errore C50 : Nome dispositivo non valido

    Ho provato a leggere il pdf che spiega le macro ma senza risultato.

    Qual’è  la sintassi giusta per scrivere un intero nella memoria del plc Rocwell, protocollo “Rockwell EtherNet/IP (ControlLogix) – Free Tag Names”

    #66901
    CliffTn
    Partecipante

    Mi rispondo da solo, la sintassi corretta è :

    int b = 1
    SetData(b, "PlcRockwell", DB24[40],1)

    Avrei una domanda, perché l’offset si mette nella variabile e non nei parametri ?

    Dal manuale seguivo questo esempio, dove si specifica la variabile, l’offset e la  lunghezza:

    macro_command main()
    short send_data_1[2] = { 5, 6},send_data_2 = 5
    SetData(send_data_1[0], "FATEK KB Series", RT, 5, 1)
    SetData(send_data_2, "FATEK KB Series", RT, 5, 1)
    end macro_command
    #66912
    Sergio Bertana
    Amministratore del forum

    Per non sbagliare la sintassi nelle funzioni Macro è consigliato utilizzare il tasto in basso a sinistra GET/SET PN… (Screenshot).

    Scegliendo la funzione SetData, viene proposta la selezione della variabile di appoggio che ne determina il formato (16-32 bit) e la TAG PLC di riferimento.

    Consiglio di usare sempre questo creatore di codice macro in questo modo è molto difficile sbagliare la sintassi.

    #66915
    CliffTn
    Partecipante

    Effettivamente non avevo provato a usare il GET/SET, funziona, mi da una sintassi leggermente diversa ma fa il suo lavoro, mi propone:

    SetData(b, "PlcRockwell", "DB24[40]", 1)

    Funziona in entrami i modi…

    Grazie

Stai visualizzando 4 post - dal 1 a 4 (di 4 totali)
  • Devi essere connesso per rispondere a questo topic.