zoz Inserito: 10 giugno 2012 Segnala Inserito: 10 giugno 2012 Ciao a tutti. Mi sono messo in testa di imparare SCL. Secondo la mia teoria, il modo migliore di capire come funziona un linguaggio è quello di leggere il codice. Sapete dove posso trovare un po' di esempi di SCL? Quelli nella guida sono abbastanza penosi e poco chiari. Grazie.
Frank681 Inserita: 22 gennaio 2013 Segnala Inserita: 22 gennaio 2013 Secondo me sul sito siemens li trovi , poi devi crearti dei programmi di test prima con fb in kop e poi I trasformi in scl
walterword Inserita: 13 marzo 2014 Segnala Inserita: 13 marzo 2014 (modificato) secondo me il modo miglior ee' quello di provare e riprovare scrivendo cosic ee lanciarlo nel simulatore del plc Vedrai che una volta imparato avrai uno strumento potentissimo per lavorare con dati e calcoli FUNCTION FC56 : INT //Inserimento , modifica , elimazione ......... VAR_TEMP i:INT; j:INT; app1:STRING[26]; app2:string[26]; END_VAR VAR_INPUT Inserisci_Capo:BOOL; // Inserimento ....o in magazzino Elimina_Capo:BOOL; // Elimina ...o dal magazzino Elimina_Tutto:BOOL; // Elimina tutto il magazzino Cerca_Capo:bool; // Cerca un ... nel magazzino Num_Fila:INT; // Fila dove inserire , modifica o eliminare il .... Num_Posizione:INT; // Posizione dove inserire , modifica o eliminare il ... Capo_Sel:ARRAY[1..1] OF STRUCT Nome:STRING[26]; Dato1:INT; Dato2:INT; Dato3:INT; END_STRUCT; Capo_Ricercato:ARRAY[1..1] OF STRUCT Nome:STRING[26]; Dato1:INT; Dato2:INT; Dato3:INT; END_STRUCT; END_VAR VAR_IN_OUT Fila:ARRAY[1..6] OF STRUCT Posizione:ARRAY[1..6] OF STRUCT NOME:STRING[26]; Stringa:STRING[26]; Dato1:INT; Dato2:INT; Dato3:INT; Word1:WORD; END_STRUCT; Dato1:INT; Dato2:INT; Dato3:INT; Word1:WORD; END_STRUCT ; Stato_Ricerca:INT; Fila_Trovata:INT; Posizione_Trovata:INT; END_VAR VAR_OUTPUT END_VAR LABEL salta; end_label BEGIN IF ( Inserisci_Capo = true ) THEN Fila[Num_Fila].Posizione[Num_Posizione].NOME:=Capo_Sel[1].NOME; // Fila[Num_Fila].Posizione[Num_Posizione].Dato1:=Capo_Sel[1].Dato1; Fila[Num_Fila].Posizione[Num_Posizione].Dato1:=1; Fila[Num_Fila].Posizione[Num_Posizione].Dato2:=Capo_Sel[1].Dato2; Fila[Num_Fila].Posizione[Num_Posizione].Dato3:=Capo_Sel[1].Dato3; END_IF; IF ( Elimina_Capo = true ) THEN Fila[Num_Fila].Posizione[Num_Posizione].NOME:='VUOTO '; Fila[Num_Fila].Posizione[Num_Posizione].Dato1:=0; Fila[Num_Fila].Posizione[Num_Posizione].Dato2:=0; Fila[Num_Fila].Posizione[Num_Posizione].Dato3:=0; END_IF; IF ( Elimina_Tutto = true ) THEN FOR i:=1 TO 6 BY 1 DO FOR j:=1 TO 6 BY 1 DO Fila[i].Posizione[j].NOME:='VUOTO '; Fila[i].Posizione[j].Dato1:=0; Fila[i].Posizione[j].Dato2:=0; Fila[i].Posizione[j].Dato3:=0; END_FOR; END_FOR; END_IF; IF ( Cerca_Capo = true ) THEN Stato_Ricerca:=0; Fila_Trovata:=0; Posizione_Trovata:=0; app1:=Capo_Ricercato[1].Nome; FOR i:=1 TO 6 BY 1 DO FOR j:=1 TO 6 BY 1 DO app2:= Fila[i].Posizione[j].NOME; IF ( app2 = app1) THEN Fila_Trovata:=i; Posizione_Trovata:=j; Stato_Ricerca:=1; GOTO salta; END_IF ; END_FOR; END_FOR; END_IF; salta: ; FC56 := 1; END_FUNCTION Modificato: 13 marzo 2014 da walterword
walterword Inserita: 13 marzo 2014 Segnala Inserita: 13 marzo 2014 prima addentrarti nell aprogrammazione con SCL , devi avere ben chiaro le strutture dati , array di strutture, strutture di strutture di array . array di strutture di array ect , prima devi saper progettare le strutture dati e poi manipolarle
AlexKumt Inserita: 17 aprile 2014 Segnala Inserita: 17 aprile 2014 Bello l'esempio è scritto in maniera chiara ed è molto leggibile, complimenti Però non è moto ortodosso usare l'istruzione Goto. Lo standard ST IEC 6113 e in pascal è un istruzione non desiderata.
walterword Inserita: 14 ottobre 2014 Segnala Inserita: 14 ottobre 2014 (modificato) dipende tutto dal compilatore , dopo piu di 10 anni posso dire il GOTO di SCL funziona e senza problemi . Il codice compilato in awl alla fine usa i salti che esistono nel linguaggio awl , considerato il linguaggio macchina Zimenz Se non usci la GOTO non ci sono altre istruzioni simili.Dovresti usare il ciclo Do -while ma con troppi controlli .Scl e' tendente al pascal ma non e' pascal , non gira su framework o su pc , e' considerato un linguaggio di scripting per plc siemens , ST piu in generale per tutti gli altri . Tra l'altro , queste funzioni speciali di gestione dati e strutture complesse non vengono richiamate sempre ad ogni ciclo di scansione ma solo su richiesta , di solito un fronte ciao p.s. la progettazione di un magazzino robotizzato , con questo sistema l'ho tirato in piedi in poche ore , certo prima devi progettare l'area dati e studiare come gestire il sistema .Ma se al posto di scl avessi usato awl sarei ancora li a debuggare e non ne uscirei piu ..... Modificato: 14 ottobre 2014 da walterword
kekkoian Inserita: 12 gennaio 2015 Segnala Inserita: 12 gennaio 2015 scusate ma io non riesco nemmeno ad aprire un file nuovo in SCL, ho Step7 versione 5.5 SP4. Aprendo il programma S7SCL - Programming S7 Blocks non si apre nessun editor. Che devo fare? Grazie
Livio Orsini Inserita: 12 gennaio 2015 Segnala Inserita: 12 gennaio 2015 Primo accodarsi ad altra discussione, secialmente se ferma da mesi, è autolesionistico perchè il rischio di non ricevere risposte è molto elevato; inoltre questa pratica è vietata dal regolamento perchè crea confusione nelle risposte. Se vuoi apri una discussione sull'argomento di tuo interesse.
Messaggi consigliati