Vai al contenuto
PLC Forum

Partecipa anche tu alla Live su Youtube martedì 28/01/2025 per festeggiare i 24 anni di PLC Forum

Per ulteriori informazioni leggi questa discussione: https://www.plcforum.it/f/topic/326513-28012025




Unpack Script In Wincc


Messaggi consigliati

Inserito:

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.


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 account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...