Vai al contenuto
PLC Forum


Mappatura I/o Nell'area Di Memoria - Riunitepiù discussioni sul medesimo argomento.


Messaggi consigliati

Inserito:

Ciao a tutti!!!

Sto imparando ad usare il software codesys e sto facendo delle prove col il linguaggio ST, la CPU che sto usando

e lo TWS3 della Seneca.

Sono riuscito a configurarlo e fare un programma banale per vedere se la CPU e la scheda I/O finzioni.

Adesso ho un problema:

Sto provando a fare un programmino che attivando la input1 mi attivi la output1, la input2 attivi la output2 e cosi via,

il codice e questo

Sotto il blocco principale PLC_PRG:

Input_M1_1:=OutPut_M1_1; (* dove Input_M1_1 punta all'ingressto %IX0.0 e OutPut_M1_1 punta all'uscita %QX0.0 *)

Input_M1_2:=OutPut_M1_2; (* dove Input_M1_2 punta all'ingressto %IX0.1 e OutPut_M1_2 punta all'uscita %QX0.1 *)

Input_M1_3:=OutPut_M1_3;

Input_M1_4:=OutPut_M1_4;

Input_M1_5:=OutPut_M1_5;

Input_M1_6:=OutPut_M1_6;

Input_M1_7:=OutPut_M1_7;

Input_M1_8:=OutPut_M1_8;

(questo codice lo provato e funziona)

Il valore che si scambiano e di tipo BOOL.

Al posto di scrivere per 8 volte lo stesso codice e possibile creare un array dove punti direttamente agli ingressi e uscite?

In modo di fare un ciclo for ad esempio:

ingressi AT %IX0.0: ARRAY[1..8] OF BOOL;

uscite AT %IQ0.0: ARRAY[1..8] OF BOOL;

FOR i:=1 TO i<=8 THEN

ingressi:=uscite;

(ho provato a fare questo codice e non funziona)

Qualcuno mi piò aiutare?

Grazie in anticipo


Inserita: (modificato)

Forse devi assegnare le uscite agli ingressi:

uscite:=ingressi;

Se non sbaglio non puoi scrivere gli ingressi.

Ciao

Modificato: da cdc
Inserita:

Vorrei sapere come si fa a mappare in un array gli ingressi e le uscite, esempio

nell'array ingressi[1] punta all'ingresso %IX0.0 e nell'array uscite punta all'uscita %QX0.0

fatemi in esempio....

Inserita:

Ciao a tutti sto imparando ad usare il linguaggio ST sul software codesys.

Qualcuno mi sa dire come fare in modo come puntare un'array agli ingressi o uscite?

Esempio un array ingressi[1..8] dove ogni cella punta ad un ingresso es. [1] = %IX0.0 [2] = %IX0.1 cioè quando leggo ingressi[1] vedo se l'ingresso 1 sia attivo oppure no.

Qualcuno mi puo spiegare come fare, ho se ci sono altri modi analogi per fare questo?

Grazie in anticipo.

Inserita:

Vorrei sapere come si fa a mappare in un array gli ingressi e le uscite, esempio

nell'array ingressi[1] punta all'ingresso %IX0.0 e nell'array uscite[1] punta all'uscita %QX0.0

fatemi in esempio....

E da tre giorni che ci provo ma non ci sto saltando fuori :(

Io ho provato a fare questo array ingressi AT %IW0: ARRAY[1..16] OF WORD; ma mi da errore.

Inserita: (modificato)

Hai aperto 3 discussioni sul medesimo argomento o su argomenti simili!

Il regolamento lo vieta perchè crea confusione e disguidi.

Le discussioni ora sono riunite.

Sei fermammente invitato a non reiterare il comportamento.

Modificato: da Livio Orsini
  • 2 months later...
Inserita:

Ciao a tutti, anche io sono nuovo e sto imparando su Seneca Z-TWS3. Vorrei sapere come posso scrivere nella memoria del PLC da linux usando il protocollo modbus.

Mi spiego meglio: riesco a leggere con modbus indirizzi della memoria dello Z-TWS3, ma non riesco a scriverci. Mi potete aiutare?

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