greenhorn Inserito: 2 agosto 2014 Segnala Inserito: 2 agosto 2014 Salve a tutti, ho un piccolo problema che spero mi aiutate a risolvere. Ho un DB globale fatto in questo modo: Var1 : INT Var2 : INT Var3 : INT Var4 : INT Var5: BOOL Var6: BOOL Var7: BOOL Var8: BOOL Var10: BOOL Var11: DATE_AND_TIME Var12: INT Var13: INT Var14: INT In corrispondenza della Var11 mi viene scritta la data e ora della CPU dall'esterno( HMI ) Ho visto in una delle discussioni che si può utilizzare SFC 0 per impostare data e ora della CPU. Xo ora come faccio a dare in pasto all'SFC 0 il dato contenuto nel DB globale (Var11) annidato in questo modo? Si può in qualche modo passare alla funzione il puntatore a questo dato? Grazie a tutti
beppo Inserita: 3 agosto 2014 Segnala Inserita: 3 agosto 2014 Ciao. Supponiamo che il tuo Db si chiami Prova. Call sfc0 PDT :="Prova".Var11 RET_VAL:=MW20 Spero di averti aiutato.
greenhorn Inserita: 4 agosto 2014 Autore Segnala Inserita: 4 agosto 2014 Ah ok, era quello che intendevo, naturalmente il tuo e un esempio con il simbolico sarebbe lo stesso scrivere al posto della "Prova".Var11 = P# DB20.DBX10.0 La cosa che non capisco è come fa lui a sapere esattamente la dimensione dell'area di memori puntata: mi spiego meglio: prendiamo come esempio SFC20 CALL "BLKMOV" SRCBLK :=P#M 0.0 BYTE 1 RET_VAL:=MW80 DSTBLK :=P#A 1.0 BYTE 1 scrivendo P# M0.0 BYTE 1 ( SPECIFICO QUANTI BYTE DA COPIARE) invece nell'esempio di prima, non lo specifico. probabilmente mi sto perdendo in un bicchiere d'acqua
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