step-80 Inserita: 7 ottobre 2013 Segnala Share Inserita: 7 ottobre 2013 Ho provato ancora,ma sembra non ci sia nulla da fare. Non accetta else if,ma o solo else o solo if. Tutti gli if devono avere il proprio end_if finale,questo è chiaro. Finchè non salta fuori qualcuno che ha esperienza in merito ad st io continuo ad attendere... Link al commento Condividi su altri siti More sharing options...
zanellatofabio Inserita: 7 ottobre 2013 Segnala Share Inserita: 7 ottobre 2013 (modificato) Risposta al post 31 dichiarazione delle variabili PROGRAM POU VAR Db_fronte1: R_TRIG; puls_1: BOOL; M1: BOOL; END_VAR codice del POU Db_fronte1( clk:=puls_1); M1:= Db_fronte1.Q; M1 non viene settata come scrivi tu, è semplicemente il fronte quindi dura 1 ciclo di scansione programma. Bye Modificato: 7 ottobre 2013 da zanellatofabio Link al commento Condividi su altri siti More sharing options...
zanellatofabio Inserita: 7 ottobre 2013 Segnala Share Inserita: 7 ottobre 2013 (modificato) Risposta al post 36 ELSIF è la sintassi corretta in SoMachine vedi nell'h.e.l.p -->Editor > Editor ST > testo strutturato ST > istruzione IF provato ora : dichiarazione variabili: PROGRAM POU VAR PLS1: BOOL; PLS2: BOOL; A: INT; END_VAR codice: A:=0; IF PLS1 THEN A:=1; ELSIF PLS2 THEN A:=2; END_IF; Stiamo comunque scrivendo di ST in SoMachine dentro ad una discussione che come titolo ha Unity ..... Ciao Modificato: 7 ottobre 2013 da zanellatofabio Link al commento Condividi su altri siti More sharing options...
step-80 Inserita: 7 ottobre 2013 Segnala Share Inserita: 7 ottobre 2013 (modificato) Grazie davvero per l'aiuto. Non riuscivo a trovare la guida in linea riguardante ST ma ora ho risolto. Continuavo a scrivere ELSEIF al posto di ELSIF. Per ZanellatoFabio: per il discorso di nominare i db con nomi diversi,tu come gestisci la cosa? Modificato: 7 ottobre 2013 da step-80 Link al commento Condividi su altri siti More sharing options...
zanellatofabio Inserita: 7 ottobre 2013 Segnala Share Inserita: 7 ottobre 2013 (modificato) db ? cosa sono i db ? Se parli di Siemens li conosco, ma in SoMachine forse intendi l' area dove dichiari le variabili ? Beh se parli di questo, allora io oltre alla lista delle GVL mi creo delle altre liste per esempio VAR_HMI oppure VAR_PARAMETRI_LAV nelle GVL dichiaro le variabili globali di uso generale esempio impianto_man ; BOOL; impianto_aut ; BOOL; FS_pulsante_start : R_TRIG; nelle VAR_HMI metto le variabili che scambio da e per il pannello esempio : hmi_segnalaz_allarme : BOOL; hmi_pulsante_tacita : BOOL; hmi_visualizza_pezzi : INT ; nelle VAR_PARAMETRI_LAV metto per esempio i parametri di lavoro Set_tempo_T1:TIME; Questo è solo per farti un esempio mica che quello che faccio io sia oro colato ... ( anzi non è neanche bronzo ) chi ha più fantasia si scateni di più ! Riallacciandomi al tuo post dove parlavi dei fronti, io uso nominarli come : FS_fotocel_1 : R_TRIG; FS_pulsante_start : R_TRIG; FD_pulsante_start : F_TRIG; così quando inizi a digitare FS_ allora appare la lista di tutti i fronti di salita ... Poi tutti i fronti li metto non sparsi nella lista ma li ragruppo, idem per le memorie, i tempi ecc. ecc. infatti avrai notato che se scrivi del codice e introduci un operando nuovo ti appare la finestra di dichiarazione e poi SoMachine te lo scrive alla fine della lista della dichiarazione . Ecco, io in questo caso, lo taglio e lo incollo vicino ai suoi simili ! Poi per esperienza personale, ho notato che quello che per me, appare chiaro e ben fatto, magari agli occhi di un altro è un gran casino e fatto da c... E lo stesso è viceversa ovvero quando mi sono trovato a decriptare programmi di altri a volte ho pensato lo stesso . Anche i commenti che finora abbiamo sempre omesso sono una parte importante : FS_fotocel_1 : R_TRIG; // fronte di salita della fotocellula contapezzi 1 suona meglio che leggere il solo nome della variabile Modificato: 7 ottobre 2013 da zanellatofabio Link al commento Condividi su altri siti More sharing options...
step-80 Inserita: 23 dicembre 2013 Segnala Share Inserita: 23 dicembre 2013 Buonasera ragazzi rispolvero questa discussione per chiedere una cosa: c'è qualcuno di voi che usa il linguaggio ST,in particolare su Somachine,e si trova meglio rispetto al ladder anche per eseguire istruzioni per lo più di logica booleana? Sto scrivendo(cosi per prova)porzioni di codice che prima avevo steso in ladder (set/reset,temporizzatori,fronti di salita e discesa) in linguaggio st per valutare pregi e difetti di uno rispetto all'altro. Qualcuno vuole riportare la propria opinione ? Ve ne sarei davvero grato Grazie Matteo Link al commento Condividi su altri siti More sharing options...
Roberto Gioachin Inserita: 27 dicembre 2013 Segnala Share Inserita: 27 dicembre 2013 Giudizio del tutto personale: ST per operazioni di calcolo, la rappresentazione è simile alla matematica che conosciamo. Ladder o CFC per operazioni logiche, la rappresentazione grafica della logica è molto più immediata e velocizza il debug. Link al commento Condividi su altri siti More sharing options...
step-80 Inserita: 27 dicembre 2013 Segnala Share Inserita: 27 dicembre 2013 Grazie per il tuo giudizio. Mi sto cimentando in operazioni per lo piu di logica booleana in ST, per valutare se effettivamente la differenza è notevole. Credo che lo sforzo piu grande risieda nel cambiare metodo di ragionamento; uno abituato a ragionare a contatti incontra non poche difficoltà a ragionare da informatico. Devo dire peró che mi aspettavo peggio, molto peggio: certo il ladder ha dei vantaggi innegabili ma anche ST una volta compreso ha il suo fascino. Vedo poco utile per l'uso che ne faccio io il ciclo FOR, ma magari in futuro mi ricrederó Approfitto per fare una domanda: se in ladder inserisco un contatto come fronte di salita, come è possibile lo stesso in ST? Voglio dire, inserisco si il blocco R_TRIG mettendo come CLK il contatto interessato, è questa l'unica soluzione? Chiedo perchè in LD esiste sia la possibilità del fronte singolo( ----I P I-----) che il modulo appunto R_TRIG che restituisce un segnale alto una scansione interrogando uno o piu operandi. Immagino sia la stessa cosa, ma magari mi sono perso qualcosa.. Grazie Link al commento Condividi su altri siti More sharing options...
lelos Inserita: 28 dicembre 2013 Segnala Share Inserita: 28 dicembre 2013 ciao il linguaggio st è molto usato da chi arriva dall'informatica. La scrittura di un programma non rappresenta grosse difficoltà, il problema è il debug di programmi di una certa lunghezza. Lo uso per i calcoli matematici di qualsiasi genere e lo uso anche anche per la gestione degli assi (sempre in ambito matematico) .Lo utilizzo per creare funzioni o librerie che richiamo nei programmi. Link al commento Condividi su altri siti More sharing options...
step-80 Inserita: 29 dicembre 2013 Segnala Share Inserita: 29 dicembre 2013 sono partito per gioco a buttar giu qualche riga in st, e mi sono accorto che è molto meglio di ció che mi aspettavo. Con un po di fantasia anche le funzioni booleane non rappresentano un problema. Sempre per gioco (e per sfida) mi sono messo a buttar giu un programmino che mi ha sempre dato del filo da torcere; forte della tecnica "a step" imparata qui sul forum e del linguaggio st mi sono messo a scrivere il ciclo di un semplice pick'n'place presente su una mia macchina. Esso si compone di quattro attuatori pneumatici: - asse orizzontale corsa 200 mm - asse verticale corsa 100 mm - cilindro rotante a 360* con corsa regolabile - pinza di presa. La pinza di presa è montata sull'attuatore rotante che a sua volta è montato sull'asse verticale ; l'asse verticale è solidale con il carrello dell'asse orizzontale. La 'particolarità' del ciclo sta nel fatto che ad un certo punto della sua esecuzione a seconda dello stato di un selettore l'asse z deve compiere due movimenti diversi. Appena ho tempo posteró il codice da me scritto, cosi da poter iniziare(spero) una discussione interessante. Matteo Link al commento Condividi su altri siti More sharing options...
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