Reverendo bit Inserito: 27 dicembre 2014 Segnala Inserito: 27 dicembre 2014 Buongiorno a tutti. Sto lavorando ad un progetto WinCC 7.3 per comunicare in Modbus TCP-IP con diversi PLC e dispositivi vari. Alcuni di questi PLC mi forniscono i digitali inpacchettati in dei registri, e per poterli leggere li devo spacchettare, e fin qui nessun problema. Il codice in C utilizzato per lo spacchettamento è: if ((word & 1)!=0) bit0=1; else bit0=0; if ((word & 2)!=0) bit1=1; else bit0=1; etc. etc. Visto che i registri da spacchettare sono molti deicdo di scrivere una funzione dove come parametro d'ingresso gli do in pasto il registro modbus, e come return un'array di 16 BOOL, e qui iniziano i problemi, perchè ho provatro in tutte le salse a dichiarare una funzione con un solo parametro in ingresso, ma non c'è verso di fargli compilare il codice percè mi restituisce sempre il seguente errore: error (003b): 'unpack': old style function definition not supported. dall'errore sembra che sbaglio la definizione di qualcosa, ma non riesco a capire cosa. Il Codice della funzione è: #include "apdefap.h" BOOL unpack(int word,BOOL bit0) { if ((word & 1)!=0) bit0=1; else bit0=0; return bit0; } Questa funzione poi, viene richiamata in una azione: #include "apdefap.h" int gscAction( void ) { int word, bit; word = GetTagWord("reg_40001");; bit = unpack(word,bit); SetTagBit("bit0",bit); return 0; } Per semplificarmi la vita ho deciso intanto di creare una funzione con un solo bit, ma non riesco a dichirarla con solamente la word come parametro d'ingresso. Qualche suggerimento? Grazie Reverendo.
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora