Home › Forum › Terminali operatore (Weintek) › Macro per scrittura variabile su plc
- Questo topic ha 3 risposte, 2 partecipanti ed è stato aggiornato l'ultima volta 1 anno, 1 mese fa da
CliffTn.
-
AutorePost
-
Agosto 9, 2022 alle 7:05 am #66900
CliffTn
PartecipanteHo 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”
Agosto 9, 2022 alle 7:22 am #66901CliffTn
PartecipanteMi 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
Agosto 9, 2022 alle 9:31 am #66912Sergio Bertana
Amministratore del forumPer 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.
Agosto 9, 2022 alle 11:51 am #66915CliffTn
PartecipanteEffettivamente 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
-
AutorePost
- Devi essere connesso per rispondere a questo topic.