Vai al contenuto
PLC Forum


Editare Una Db - C'è un metodo veloce?


RickyM

Messaggi consigliati

Ciao a tutti,

C'è un metodo veloce per editare una db, per esempio esportare in excel oppure aprire il file delle descrizioni con

un editor un pò più evoluto di quello di step7?

Link al commento
Condividi su altri siti


Il copia / incolla funziona molto bene

Se ti selezione tutte le righe nella DB poi fai incolli in word ti mette una tabulazione tra le colonne , se lo fai in excel ti mette i dati gia' incolonnati ( devi solo allargare o stringere le colonne )

Ovviamente non funzia a rovescio

Ciao

Luca

Link al commento
Condividi su altri siti

Ovviamente non funzia a rovescio

Quindi è inutile se lo scopo è "editare" la DB... (nel senso che la DB non puoi modificarla perché non puoi "incollare").

Effettivamente è una domanda che mi sono posto anch'io diverse volte, ma poi non sono mai venuto a capo di niente.

ciao

Link al commento
Condividi su altri siti

per esempio esportare in excel

In questo caso funzia ,

lo scopo è "editare" la DB

in questo no

nel senso che la DB non puoi modificarla perché non puoi "incollare

puoi incollare , ma copiando da DB , non da EXCEL

se copi da excel o da word lo puoi fare ma campo per campo

ciao

Luca

Link al commento
Condividi su altri siti

Io a volte scrivo la DB come sorgente AWL (in tal modo ho tutti i comandi "taglia", "copia", "incolla", ecc. tipici di un qualunque editor di testo), quindi la compilo.

Utilizzo questo metodo soprattutto quando voglio assegnare dei valori ai campi della DB.

Link al commento
Condividi su altri siti

se copi da excel o da word lo puoi fare ma campo per campo

Beh, ma campo per campo non ci si guadagna niente.

Buona l'idea di scriverla come sorgente... non ci avevo mai pensato

Link al commento
Condividi su altri siti

  • 3 weeks later...

Con Excel o con qualche altro programma puoi farti una macro che crea un file.txt con la sintassi

usata per creare una Sorgente AWL (della DB da Creare o Modificare),

oppure ti creai una Sorgente SCL (della DB da Creare o Modificare),

In questo modo in Excel ti prepari tutti i Commenti (Magari in lingue anche diverse), ti crei tutti gli allarmi,stati etc (Struttura adeguata alla tua applicazione).

Inoltre potresti crearti anche tutte le TAGs per l'uso in HMI.

In questo modo dalla Motor-List ti creai e sincronizzi immediatamente sia le DB nel PLC, che le tags per la Supervisione HMI.

Poi nel PLC importi il File Sorgente AWL oppure Sorgente SCL, e con questa ti ricrei la DB perfettamente

aggiornata con la Motor-List della nuova macchina.

Nella stessa maniera ti importi nella tua supervisione le Tags generate da Excel.

Link al commento
Condividi su altri siti

Sub CreaDB()
'Esempio di Macro per Excel
'Colonna A = Nome
'Colonna B = Tipo
'Colonna C = Valore iniziale
'Colonna D = Commento
'I valori attuali si formano automaticamente al momento della compilazione in Step 7
'è comunque possibile inserirli con lo stesso sistema.
'Questo programma crea un file con estensione AWL (per il "dove lo crea" vedi NomeFile)
'Il file deve essere importato nel progetto Step7 > Sorgenti > Sorgente esterna...
'===========================IMPORTANTE================================
'Prima di compilare il sorgente controllare il numero del "DATA_BLOCK DB xxx", xxx è il numero del DB che
'verrà creato nella cartella blocchi.Se avete già un DB con lo stesso numero di xxx ,a seconda delle
'impostazioni di Step7, il vostro DB potrà essere sovrascritto senza chiedervi conferma.
'Quindi occhio al numero xxx
'===================================================================
    Dim NumFile As Integer
    Dim NomeFile As String
    Dim NomeFoglio As String
    Dim I As Integer
    Dim Simbolo As String
    Dim Tipo As String
    Dim Valore As String
    Dim Descrizione As String
    Dim RigaInizio As Integer
    Dim RigaFine As Integer
    Dim SimboloVuoto As String
    Dim TipoVuoto As String
    Dim ValoreVuoto As String
'===================================================================
    RigaInizio = 2  'La riga 1 mettiamo l'intestazione delle colonne NOME,TIPO,VALORE INIZIALE,COMMENTO
    RigaFine = 1024 'Allungabile/accorciabile secondo quantità dati (righe)
'===================================================================
    'Questi servono per la compilazione, da RigaInizio a RigaFine ci deve essere sempre qualcosa di valido
    ' altrimenti restituisce un errore
    SimboloVuoto = "Simbolo"
    TipoVuoto = "INT"
    ValoreVuoto = "0"
'===================================================================
    NomeFoglio = Worksheets(1).Name
    NomeFile = "c:\" + NomeFoglio + ".awl"
    NumFile = FreeFile
    Open NomeFile For Output As NumFile
'===================================================================
    Print #NumFile, "DATA_BLOCK DB 999" 'Numero a caso del DB
    Print #NumFile, "TITLE = Titolo"
    Print #NumFile, "AUTHOR : Dago"
    Print #NumFile, "FAMILY : Dago"
    Print #NumFile, "NAME : Dago"
    Print #NumFile, "VERSION : 0.1"
'===================================================================
    Print #NumFile, "STRUCT"
    For I = RigaInizio To RigaFine
        Simbolo = Worksheets(NomeFoglio).Range("A" + CStr(I)).Value
        If Simbolo = "" Then Simbolo = SimboloVuoto + CStr(I)
        Tipo = Worksheets(NomeFoglio).Range("B" + CStr(I)).Value
        If Tipo = "" Then Tipo = TipoVuoto
        Valore = Worksheets(NomeFoglio).Range("C" + CStr(I)).Value
        If Valore = "" Then Valore = ValoreVuoto
        Descrizione = Worksheets(NomeFoglio).Range("D" + CStr(I)).Value
        Print #NumFile, Simbolo & " : " & Tipo & " := " & Valore & ";" & " //" + Descrizione
    Next I
    Print #NumFile, "END_STRUCT;"
'===================================================================
    Print #NumFile, "BEGIN"
        'Qui si possono scrivere i valori "attuali"
        'Print #NumFile, Simbolo & " := " & Valore & ";"
    Print #NumFile, "END_DATA_BLOCK"
Close
End Sub

Link al commento
Condividi su altri siti

Bravo Dago_ , questo e' un bel esempio di Macro VBA per EXCEL.

Comunque con il medesimo criterio potresti costruirti ancle la Sorgente SCL.

Io Preferisco la Sorgente SCL, perche' voglio usare lo Standard IEC 61131-3 cosi' facendo

posso utilizzare le sorgente fatte in STL-SCL anche per altri tipi di PLC.

inoltre la sintassi di scrittura di una DB, usando SCL mi sembra piu' semplice.

Per facilita' e comodita' d'uso ho preferito farmi una piccola applicazione in Delphi, per creare queste

sorgenti in SCL, in questo modo posso crearmi le Strutture Dati, che voglio e commentarle nella

lingua che desidero, la struttura dati creata.

In sostanza e' abbastanza semplice perche' si costruisce un file di tipo testo.

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