Vai al contenuto
PLC Forum


NX1P2 Omron funzioni libreria


Mauriziob82

Messaggi consigliati

Salve volevo sapere se per i PLC Omron NX1P2 in ambiente Sysmac Studio esiste una funzione similare alla PEEK_WORD di Tia Portal che legge indirizzi di Memoria Standard senza indicare il tipo di dati,

 


 
#Peeker := PEEK(AREA := 16#84, DBNUMBER := 1, BYTEOFFSET := 2, ENO => ENO);
 

AREA
 Input
 BYTE
 I, Q, M, D
 Possono essere selezionati i seguenti campi:

16#81: Input

16#82: Output

16#83: Merker

16#84: DB

16#1: Ingresso periferia (solo S7-1500)

 

Grazie
 
 

Link al commento
Condividi su altri siti


Non penso proprio si possa fare. Il Sysmac Studio usa una allocazione dinamica delle variabili, per cui è il compilatore che decide dove mettere la variabile. Te puoi volendo "forzare" un indirizzo specifico per una o più variabili (% davanti all'indirizzo, quindi %D, %W, ecc) nel campo AT.

Anche gli ingressi e uscite fisiche del PLC (moduli) hanno un indirizzo "strano" come: "IOBus://rack#0/slot#0/Ch1_In/Ch1_In00"

Sono fatti per lavorare in simbolico, usa le strutture e le union per fare combinazioni "strane" per indirizzare le variabili.

Link al commento
Condividi su altri siti

Grazie per le informazioni. Usando invece Strutture in Tipi di Dati e Poi le Strutture richiamate in Dati Globale è possibile?

 

Link al commento
Condividi su altri siti

Esattamente, cosa devi fare?

Una volta definita una struttura come tipo dati, puoi poi definirci diverse variabili. Gli elementi della variabile si accedono con il punto (NomeVariabile.Elemento).

Puoi anche fare una FB che prende in ingresso, uscita o ingresso-uscita una struttura, per semplificare il passaggio dati.

Le variabili con tipo struttura possono essere sia locali che globali. E' a tutti gli effetti una variabile, che però ha un tipo complesso. E' come un array, ma mentre questo ha elementi omogenei (tutti dello stesso tipo), la struttura ha dati eterogenei (tipi diversi). Si possono fare anche array di strutture (per esempio le ricette...). E' uno strumento potente.

Link al commento
Condividi su altri siti

Buongiorno grazie per le delucidazioni. Devo creare nel PLC un Archivio Ricette- Ricetta in Lavorazione e Ricetta da Visualizzare, composto da dati di diverso formato, INT, DINT, REAL e BOOL. Quindi la strada intrapresa è corretta? Una ulteriore domanda, poichè il progetto da cui parto è Siemens e la struttura ricette e costituita da puntatori che accedono ad aree DATI e a secondo dell'indice popolano le aree di interesse, in questo caso l'unica strada se si adopera in Omron ST è utilizzare funzione ad Hoc oppure c'è un metodo più veloce. Grazie anticipatamente.

Buona giornata

Maurizio

Link al commento
Condividi su altri siti

Definisci un tipo dati RicettaStruct, dove metti gli elementi, chiamiamoli Dato1 INT, Dato2 DINT, Dato3 REAL, Dato4 BOOL.

Poi nelle globali definisci una variabile Ricette[nricette] come Array di RicettaStruct, di dimensione nricette che vuoi te, e impostalo Ritentivo. Questo è l'archivio delle ricette.

Inoltre definisci una variabile RicettaLav e una RicettaVis sempre di tipo RicettaStruct, che saranno quella in lavorazione e in visualizzazione.

A questo punto, se vorrai aggiornare la ricetta in lavorazione prelevandola dall'archivio, scriverai

RicettaLav := Ricette[n];   

dove n è il numero della ricetta.

Per salvare una ricetta in lavorazione, avrai

Ricette[m] := RicettaLav;   

dove m è il numero della ricetta da sovrascrivere in archivio.

Piuttosto semplice, no?

Link al commento
Condividi su altri siti

Si molto chiaro la mia difficoltà è nell'automatizzare gli indici n (numero della ricetta) ed m (numero della ricetta da sovrascrivere in archivio senza fare una serie di condizione IF per la lettura ricetta e scrittura ricette. Grazie molte per le delucidazioni, precise e puntuali

 

Link al commento
Condividi su altri siti

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