Vai al contenuto
PLC Forum


Somachine 3.1: Come Estendere Una Udt + Dubbi Vari


Messaggi consigliati

Buongiorno,

premesso che non ho mai utilizzato prima SoMachine e neppure CoDeSys, sono incappato in queste difficoltà:

la prima, definisco una struttura dati per esempio di nome UDT_01 ed al suo interno ci definisco due variabili

cmd_start di tipo booleano e cmd_stop di tipo booleano. A questo punto voglio creare una UDT_02 che rappresenta

una estensione (EXTENDED) della UDT_01 (cioè da come ho intese che eredita le caratteristiche di UDT_01 più

le variabili aggiunte in UDT_02). A questa seconda struttura dati aggiundo la variabile VelHz di tipo intero.

A questo punto se dichiaro la variabile VAR1 di tipo UDT_01 mi aspetto di accedere a VAR1.cmd_start oppure

VAR1.cmd_stop; se invece dichiaro VAR2 di tipo UDT_02 mi aspetto di accedere a VAR2.cmd_start oppure

VAR2.cmd_stop ed infine a VAR2.VelHz. Se provo a compilare mi da un insieme di errori che scompaioni nel

momento in cui cancello o commento la riga di dichiarazione di VAR2 di tipo UDT_02. Qualcuno riesce a spiegarmi

dove sbaglio???

Il secondo dubbio è se e dove esite un elenco di tutte le istruzioni che sono a disposizione nei vari linguaggi di

porgrammazione; nell'h_e_l_p il più è riportato ma spesso è un poco difficoltoso capire quale istruzione CFC (ad esempio)

corrisponde a quale in ST ecc..

Terzo, ho provato a cercare sul sito della =S= ed anche della CoDeSys se esistono dei "best practice" che (siccome

sono agli albori) mi indichino quale linguaggi è preferibile usare in quali controlli, piuttosto che quali linguaggii è bene

evitare in quali tipi di controllo (o comunque linee guida, esempi, knowledgebase ecc..).

Grazie per qualsiasi info in merito alle mie richieste / miei dubbi.

Saluti

Modificato: da smsmsms
Link al commento
Condividi su altri siti


Ciao, da come scrivi sembra che le udt le dichiari bene,

se mi fai un copia e incolla di cosa scrivi ti dico se è giusto.

Io non userei l'extended....la programmazione a oggetti complica le cose semplici come queste....

io definirei dentro a udt_02 una variabile

Var1 :udt_01;

A questo punto dichiarata Var2: udt_02;

per accedere a cmd_stop basta chiamare Var2.Var1.cmd_stop

ovviamente l'esempio è orrendo però calza.

Io ho seguito il corso schnider a Bologna su SoMachine....

...per diletto programmo in objective c.... e lascio a linguaggi del genere la definizione a oggetti....

SoMachine mi sembra ancora immaturo per questo genere di cose.

Per la seconda io con l'. mi trovo bene....ma sono cinque anni che programmo con elau..e immagino che per chi comincia sia molto complesso.

I programmi di esempio che chiede nel terzo punto sono compresi nell'installazione del pacchetto.

Spero di esserti stato utile...e sono disponibile per qualsiasi domanda....

Ciao

FG

Link al commento
Condividi su altri siti

ok grazie proverò a verificare il codice ed a fare la prova da te consigliata.

Ancora una domandina ... per commentare un parte di codice (diciamo ST o elenco variabili)

quale differenza easiste tra la doppia sbarra "//" o tra le classiche parentesi con asterisco

"(* commento *)" tipiche dei precedenti sw =S=?

Grazie buon wk

Link al commento
Condividi su altri siti

Ciao, come per i software di programmazione di alto livello, la // commenta la riga, mentre le parentesi valgono da quando le apri a quando le chiudi:

// commenta solo la riga

(* con le parentesi

invece

commenti tutte

le righe che vuoi

*)

Ciao

FG

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