Paolo_G Inserito: 13 ottobre 2010 Segnala Inserito: 13 ottobre 2010 (modificato) Ciao a tutti!A lavoro mi è stato richiesto di lavorare con i sorgenti di step7.La mia "natura informatica" mi ha portato a pensare che avendo i sorgenti perche' non usare anche un sistema di controllo versione (CVS, Subversion, Git o altri) per avvantaggiarsi delle funzioni che questi programmi apportano?La "storia di una logica" soprattutto per quelle logiche che possono raggiungere anche alcuni decenni di lavoro, credo sia una cosa abbastanza utile! Armato di tanta pazienza, ho cercato di capire un po' com'e' strutturato un progetto STEP7. Ho aperto TUTTI i file DBF con il DBFEdit e dopo un po' di parolacce credo di aver trovato il bandolo della matassa.Le informazioni sono contenute nei 3 file DBF:(1) [prjS7Dir]/HOMESAVE7/S7HSTATX/HOBJECT1.DBF(2) [prjS7Dir]/s7asrcom/S7CNTREF.DBF(3) Per ogni PLC presente nel progetto [prjS7Dir]/s7asrcom/000000XX/S7CONTAI.DBF dove XX è un codice esadecimaleSTEP1:Estraggo dal file (1): ID, Name and UNITTYP.Ogni Unittyp=1122305 é un PLC inserito nel progetto.Ordino i dati in base all'ID (ordine crescente). Ad Es:Name | ID | UNITTYPPLC2 | 4 | 1122305PLC1 | 10 | 1122305STEP2:Gli ID nel file (2) sono i nomi delle cartelle dei file sorgenti. L'ID è indicato nel formato decimale; trasformandolo in esadecimale su 8 digit si ottiene il nome della directory.Es:ID=1 (decimale) => 1 (Hex) => nome della cartella è "00000001"ID=14 (decimale) => E (Hex) => nome della cartella è "0000000E"Ordino anche questa tabella in base agli ID in ordine crescente.STEP3:Se si montano assieme le informazioni ORDINATE dei due step sopra, si ottiene la corrispondenza tra il nome del PLC presente nel progetto e il nome della cartella dei sorgenti:Name (STEP1)| ID (STEP2) | => Source folderPLC2 | 1 | ==> 00000001PLC1 | 14 | ==> 0000000ESTEP4:Nel file (3) ci sono le informazioni per ottenere i nomi dei file in formato "human readable" dal formato numerico di step7Es.:Name | FileName |FBTest | 000001C.awl |FCProva | 000004b.scl |A questo punto si hanno tutte le informazioni che servono per fare l'export dei sorgenti suddivisi per PLC.Ad esempio copiando(e quindi esportando) tutti i files contenuti nella directory [prjS7Dir]/s7asrcom/00000001/ (quindi riferito alla logica del PLC2 (vedi STEP3)) nella directory [prjS7Dir]/exportPLC2/ andando poi a rinominarli con i nomi "human readable" presenti nella tabella dello STEP4, si ottiene l'export di tutti i file del PLC.Sembra complicato ma in realta' lo è solo un po'! Ho aggiuto questa funzionalita' alla nuova versione (la v3.0) di un vecchio progetto su sourceforge che praticamente eseguiva solo lo STEP4, richiedendo una configurazione manuale iniziale: http://sourceforge.net/projects/autoexport/Adesso, invece una volta scaricata la libreria per leggere i DBF è possibile eseguire un batch per l'export tramite il seguente comando senza nessun tipo di configurazione:java -classpath javadbf-version.jar;AutoExportPlcName-version.jar autoExport.AutoExportPlcName ./PLCPrj ./exportPLCSource dove: PLCPrj -> è la certella del progetto step7 exportPLCSource -> la directory dove eseguire l'export Oppure in alternativa c'e' una semplicissima (per il momento ) interfaccia grafica richiamabile con: java -classpath javadbf-version.jar -jar autoExport-version.jar Il sistema funziona indistintamente sia con il progetto aperto e/o attivo sia avendo il Simatic Manager chiuso. Questo è il punto in cui sono arrivato adesso: - in modo automatico è possibile DOCUMENTARE OGNI MODIFICA ALLA LOGICA NELL'ARCO TEMPORALE DELLA SUA VITA. - è possibile avere un repository centrale di ogni logica per sapere i rapporti di derivazione tra una logica e l'altra. Tempo permettendo sto implementando anche la funzione inversa (import): partendo dai file sorgenti ri-ottenere i file nel formato step7 in modo da poterli confrontare prima di inserire le modifiche all'interno del progetto.Questa funzione e' gia' testata e inclusa nel vecchio progetto che pero' adesso va richiamata per ogni PLC.Implementata anche questa funzionalita', si darebbe il via alla possibilita' di trasformare il progetto step7 in COLLABORATIVO. Se a qualcuno interessa l'argomento e/o vuole consigliarmi qualcosa e/o vuole prendere parte allo sviluppo di qualche nuova funzione, mi contatti.SalutiPaoloG Modificato: 13 ottobre 2010 da Paolo_G
acquaman Inserita: 14 ottobre 2010 Segnala Inserita: 14 ottobre 2010 L'argomento è interessante, noi già usiamo un software per il controllo delle versioni, e persare di avere un sistema pensato ad ok per lo step7 magari adderittura integrato sarebbe una figata, date però le mie conoscenze di software PC il mio contributo temo può essere soltanto morale.Buon lavoro e bell'idea a parer mio da continuare a sviluppare.
Paolo_G Inserita: 15 ottobre 2010 Autore Segnala Inserita: 15 ottobre 2010 noi già usiamo un software per il controllo delle versioniPer le logiche? come si chiama?persare di avere un sistema pensato ad ok per lo step7 magari adderittura integratoIntegrarlo nell'editor, la vedo abbastanza dura... non saprei da che parte cominciare a fare una cosa del genere pero' l'idea mi piace! Per il momento in ditta, usiamo un piccolo script esterno lanciato a mano ogni volta che si vuole eseguire un avanzamento della versione.date però le mie conoscenze di software PC il mio contributo temo può essere soltanto moraleGrazie, meglio che niente, no!?!?! CiaoPaolo
acquaman Inserita: 15 ottobre 2010 Segnala Inserita: 15 ottobre 2010 Il software che usiamo è Tortoise SVN.
Paolo_G Inserita: 19 ottobre 2010 Autore Segnala Inserita: 19 ottobre 2010 Il software che usiamo è Tortoise SVN.Posso chiederTi come lo usate? Noi inizialmente, avevamo messo la directory del progetto sotto svn. Per come è strutturato un progetto step7 pero', ogni piccola modifica cambia tantissimi file. Che pero' alla lunga "distrae" dalle vere modifiche ai file di logica.Da li è nata l'idea di estrarre i file sorgenti e di mettere sotto versione solo questi + uno zip del progetto completo(nel caso di modifiche all'hardware, simboli,etc).Per il momento questa soluzione ci sta dando parecchie soddisfazioni! :-)CiaoPaolo
acquaman Inserita: 20 ottobre 2010 Segnala Inserita: 20 ottobre 2010 Infatti il sistema non è ottimale per lo step 7, basta anche solo aprire il progetto per vederlo, senza fare modifiche o salvare che subito ti dice che non sei aggiornato.Per usarlo quando lavoro su un progetto nessun problema, ogni tot tempo posto le modifiche, se invece devo solo guardare un progetto senza fare modifiche lo esporto in un cartella temporanea dove posso controllare il progetto poi lo cestino, cosi cerco di evitare continui post inutili.
acquaman Inserita: 8 febbraio 2012 Segnala Inserita: 8 febbraio 2012 Ciao, ci sono novità sul tuo progetto creare un sistema di controllo versione?
acquaman Inserita: 22 novembre 2013 Segnala Inserita: 22 novembre 2013 Ogni tanto chiedo se ci sono novità o suggerimenti sull'argomento ma è un tema che ritendo sia interessante ed utile. News???????
acquaman Inserita: 4 febbraio 2015 Segnala Inserita: 4 febbraio 2015 Cambiando lavoro ho ricominciato a lavorare in team, mi si è riproposto questo problema rimasto sospeso. Idee o soluzioni nuove.
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