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




Puntatore Un Elemento Del Db Globale E Riutilizzo Dello Stesso Per Settare L'ora Della Cpu313C


Messaggi consigliati

Inserito:

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


Inserita:

Ciao.

Supponiamo che il tuo Db si chiami Prova.

Call sfc0

PDT :="Prova".Var11

RET_VAL:=MW20

Spero di averti aiutato.

Inserita:

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 :(

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...