Unsere Partner:

DIAdem-Forum.de Partner

DIAdem-Forum.de Partner

DIAdem-Forum.de Partner

DIAdem-Forum.de Partner






Stellenangebote:
Entwicklungsingenieur Messtechnik und Fahrzeugelektronik (m/w)
Planung und Durchführung von Projekten im Bereich NFZ-Messtechnik
MBtech Group GmbH Co. KGaA
Magstadt, Sindelfingen bei Stuttugart, Stuttgart
Versuchsingenieur innovative Chassissysteme (m/w)
Erprobung von Chassissystemen, Koordination des Aufbaus von Aggregateträgern
MBtech Group GmbH Co. KGaA
Magstadt
Laboringenieur / Messtechnikingenieur mit Labview (w/m)
Entwicklung und Auslegung von Versuchsaufbauten
Brunel GmbH
Frankfurt/Offenbach
Versuchsingenieur Chassis Erprobung (m/w)
Grundsatzuntersuchungen, Fahrversuche und Freigabeuntersuchungen im Fahrwerkbereich
MBtech Group GmbH Co. KGaA
Magstadt
Entwicklungsingenieur Fahrzeugapplikation Verbrennungsmotor (m/w)
Applikation, Test und Validierung von Motorsteuergerät-Funktionen auf den Gebieten Fahrbarkeit und Regelungssysteme
MBtech Group GmbH Co. KGaA
Fellbach
Entwicklungsingenieur Getriebemechatronik (m/w)
Getriebe und Hybrid Aufgabenstellungen
MBtech Group GmbH Co. KGaA
Fellbach, Stuttgart
Applikationsingenieur Abgasnachbehandlung / SCR Dosiermodul (m/w)
Spezifikation, Applikation, Test und Validierung von Softwarefunktionen der Abgasnachbehandlung
MBtech Group GmbH Co. KGaA
Fellbach
Applikationsingenieur Abgasnachbehandlung /-OBD Otto (m/w)
Applikation, Test und Validierung von Softwarefunktionen der Abgasnachbehandlung / - OBD
MBtech Group GmbH Co. KGaA
Fellbach
Versuchsingenieur Betriebsfestigkeit (m/w)
Auswerten von Messdaten, Erstellung von Autosequenzen
MBtech Group GmbH Co. KGaA
Wörth, Untertürkheim
Versuchsingenieure / Produktionsingenieure (m/w)
Prozessentwicklung, Versuchswesen in den Bereichen Messtechnik, Elektronik, Getriebetechnik
über Steinbach Partner Executive Consultants
Region Stuttgart und Unterfranken
Versuchsingenieur (m/w) Sonderversuch
Entwicklung neuer Testmethoden im Sonderversuch
Continental AG
Hannover
Test Engineer (m/w)
Durchführung und Analyse von Versuchen an PKW-Innenraumkomponenten
Johnson Controls Automotive Experienc über Scheerer Werbung GmbH
Burscheid

Stand: 20:51:07 07.02.2012



.
 
Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5

Anfänger: Script zur Transformation von Fräskräften?
24.06.2010, 08:41
Beitrag #21
DIAdem-Version: 10.2, 11.1, 2010 und auf alten CD's runter bis 3.0
DIAdem-Sprachversion: DE
DIAdem Erfahrung seit: 1996
RE: Anfänger: Script zur Transformation von Fräskräften?

Bei mir funktionert es, wenn ich mit der Variablen "ExcelExpSheetChn" arbeite, also
ExcelExpSheetChn = &FS&"_TV"&TVnr&"_radius"&re&
und vorher in der STP Datei 'Names des Blatts' gelöscht habe.
ABER: DIAdem überschreibt die Alte xls Datei!
Um eine vorhandene Datei abzuändern benötigst Du OLE...
Gruß
Bruno

Diadem 2010
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren



24.06.2010, 08:44
Beitrag #22
DIAdem-Version: 10.2, 11.1, 2010 und auf alten CD's runter bis 3.0
DIAdem-Sprachversion: DE
DIAdem Erfahrung seit: 1996
RE: Anfänger: Script zur Transformation von Fräskräften?

Code:
'-------------------------------------------------------------------------------
'-- VBS-Script-Datei
'-- Neu erstellt am 24.06.2010 08:44:10
'-- Ersteller:
'-- Kommentar:
'-------------------------------------------------------------------------------
Option Explicit  'Erzwingt die explizite Deklaration aller Variablen in einem Script.
Const DiademExcelWorkbook = "c:\Versuchsergebnisse.xls"
Const xlMaximized =&HFFFFEFD7
Dim Excel           ' Object variable for Excel
Dim myExcelSheet      ' Object variable for Excel worksheet

runExcel

Sub runExcel
  Dim DataCol       ' Data column
  Dim DataRow       ' Data row
  
  ' Disable automatic error handling to prevent error messages.
  On Error Resume Next
  
  ' Start Excel via OLE.
  ' A new Excel instance always starts.
  Set Excel = CreateObject("Excel.Application")
  If CheckError Then Exit Sub
  
  ' Show Excel. Excel was hidden up to now.
  Excel.Visible = True
  
  ' Maximize Excel window.
  Excel.WindowState = xlMaximized
  

  ' Open prepared DIAdem table in Excel.
  Excel.Workbooks.Open(DiademExcelWorkbook)
  
  ' Provide reference to DIAdem table.
  ' The reference makes it easier to access the table.
  Set myExcelSheet = Excel.Sheets.Add
  ' Select first cell in the worksheet.
  myExcelSheet.Name = "Test"
  myExcelSheet.Cells(1, 1).Select
  
  ' Display infomation text above the data table. The text is written
  ' in a cell. The '.Value' property must not necessarily be specified,
  ' because the default property is 'Cells'.
  ' Cells(1, 1) = "abc" means the same as Cells(1, 1).Value = "abc".
  myExcelSheet.Cells(1, 3).Value = "DIAdem steuert Excel an..."
  If CheckError Then Exit Sub
  
    If MsgBox("Excel schließen?", vbYesNo Or vbQuestion, "Bestätigen") = vbYes Then
      ' Set status of Excel work folder to saved, so no prompt
      ' appears when Excel closes.
      ExcelSheet.Parent.Saved = True
  
      ' In VBS, Excel must be closed explicitly.
      Excel.Quit
    End If
  
    ' Set object references to 'Nothing'.
    Set ExcelSheet = Nothing
    Set Excel = Nothing
  
    ' Restore DIAdem window.
    Call WndShow("SHELL", "NORMAL")
End sub

' ----------------------------------------------------------------------------------------
' Name:      CheckError
'
' Purpose:     Check error status and display message is necessary.
'
' Parameters: None
' ----------------------------------------------------------------------------------------
'Sub CheckError()
Function CheckError

  CheckError = False
  ' If error occurs.
  If Err.Number <> 0 Then
    CheckError = True
    ' Restore DIAdem window.
    Call WndShow("SHELL", "NORMAL")

    ' Display error message.
    Call MsgBoxDisp("Fehler bei OLE-Kommunikation!" & vbCrLf & _
                    "Fehlernummer: "& CStr(Err.Number) & vbCrLf _
                    & Err.Description & vbCrLf & vbCrLf _
                    & "DIAdem bricht das Script ab!", , "MsgTypeAlert")

    ' Reset error status.
    Err.Clear
  End If

End Function
Hier mal ne abgespeckte Version von Expl_OLE.vbs, mit der Du starten kannst.
Gruß
Bruno

Diadem 2010
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.06.2010, 14:13
Beitrag #23
DIAdem-Version: 2011 / 2010 / 11.1
DIAdem-Sprachversion: DE/EN
DIAdem Erfahrung seit: 2003
RE: Anfänger: Script zur Transformation von Fräskräften?

(24.06.2010 08:44)Bruno schrieb:  Hier mal ne abgespeckte Version von Expl_OLE.vbs, mit der Du starten kannst.
Gruß
Bruno
Hallo Bruno,
danke, das habe ich schon länger auf meiner ToDo stehen gehabt. Smile

Gruß
M.Schneiders

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.06.2010, 15:41
Beitrag #24
DIAdem-Version: 11.1
DIAdem-Sprachversion: DE
DIAdem Erfahrung seit: 2010
RE: Anfänger: Script zur Transformation von Fräskräften?

Hi!

Danke auch von mir!!!!

Probiere am Wochenende wieder rum! Melde mich dann!

Grüße und nochmal vielen Dank!
Alex

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
29.06.2010, 11:57
Beitrag #25
DIAdem-Version: 11.1
DIAdem-Sprachversion: DE
DIAdem Erfahrung seit: 2010
RE: Anfänger: Script zur Transformation von Fräskräften?

Hi!
Dein Script funktioniert soweit! Nochmal danke! Auch, dass ein neues Tabellenblatt erstellt wird, aus zuvor eingegebenen Variablen, hab ich hinbekommen Smile

Jetzt häng ich gerade beim übertragen meiner Kanäle. Angenommen ich habe folgende Kanäle:
- [1]/Fv
- [1]/Fvn
- [1]/Fz
- [1]/Result XY
- [1]/CopyYFv
- [1]/CopyYFvn
- [1]/CopyYFz
- [1]/CopyYResult XY

Ich will aber nur folgende in "Versuchsergebnisse.xls" übertragen:
- [1]/CopyYFv
- [1]/CopyYFvn
- [1]/CopyYFz
- [1]/CopyYResult XY

Wie programmiert man das im Script? Aus dem OLE-Beispiel werd ich nicht ganz schlau:
....
myExcelSheet.Cells(1, 3).Value = "Ergebnisse"
If CheckError Then Exit Sub

' Set column headings in the data table.
ExcelSheet.Cells(2, 1).Value = "CopyYFv"
If CheckError Then Exit Sub
ExcelSheet.Cells(2, 2).Value = "CopyYFvn"
If CheckError Then Exit Sub
ExcelSheet.Cells(2, 3).Value = "CopyYFz"
If CheckError Then Exit Sub
ExcelSheet.Cells(2, 4).Value = "CopyYResult XY"
If CheckError Then Exit Sub

' Disable screen refresh.
Excel.ScreenUpdating = False

' Transfer single data columnwise and rowwise.
For DataCol = 5 To 8
ExcelSheet.Cells(DataCol-4, 2).Value = ChnVal("[1]/", DataCol)
Next
If CheckError Then Exit Sub


' Enable screen refresh.
Excel.ScreenUpdating = True
.....

Das will irgendwie nicht klappen, wo ist der Fehler?

Grüße!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
29.06.2010, 22:38
Beitrag #26
DIAdem-Version: 11.1
DIAdem-Sprachversion: DE
DIAdem Erfahrung seit: 2010
RE: Anfänger: Script zur Transformation von Fräskräften?

UPDATE:

Hi Bruno!
Hab den Excel-Transfer jetzt mehr oder weniger so hinbekommen, wie ich es haben will:

Code:
Option Explicit  'Erzwingt die explizite Deklaration aller Variablen in einem Script.
Dim Antwort
Antwort = msgbox("Excel-Export der Ergebnisse gewünscht?", vbYesNo)

if Antwort = vbYes then
    'Excel export
    Const DiademExcelWorkbook = "C:\Dokumente und Einstellungen\Administrator\Desktop\Script Alex Selfmade\Excel-Exporte\Versuchsergebnisse.xls"
    Call DataMatrixToExcel()
'-------------------------------------------------------------------------------
' DataMatrixToExcel
' Diese Prozedur uebertraegt die Daten aus der Datenmatrix an Excel.
' Dazu wird Excel als Apllikation gestartet und die Daten werden über die
' Active-X Schnittstelle von Excel übertragen
'-------------------------------------------------------------------------------
Sub DataMatrixToExcel
  Dim oExcel,oWorkbookT,oSheetT,iChannelT,lFirstDataRowT,lChnCountT,lLengthT,lProzent,​ iIndex1, iIndex2
  '-------------------------------------------------
  ' Excel als Applikation starten :
  '-------------------------------------------------
  Set oExcel = CreateObject("Excel.Application")
  ' Erste Zeile mit Daten :
  lFirstDataRowT = 6
  ' Open prepared DIAdem table in Excel.
  Set oWorkbookT = oExcel.Workbooks.Open(DiademExcelWorkbook)
  'Sheet in Excel anlegen
  Set oSheetT = oWorkbookT.Sheets.Add
  ' Kanaele zaehlen
  lChnCountT = 0
  For iChannelT = 1 To ChnNoMax
    if ( 0 >= Len(ChnName(iChannelT)) ) Then Exit For
    lChnCountT = lChnCountT + 1
  Next
  ' Namen des Tabellenblatts setzen in das die DIAdem-Daten eingetragen werden
  oSheetT.Name = FS & "_TV" & TVnr & "_Vc" & Vc & "_r" & re & "_p" & p & "_fz" & fz
  
  '-------------------------------------------------
  ' Informationen aus dem Kanalheader uebertragen :
  '-------------------------------------------------
  For iChannelT = 1 To lChnCountT
    oSheetT.Cells(1, iChannelT) = ChnName(iChannelT)
    oSheetT.Cells(2, iChannelT) = ChnComment(iChannelT)
    oSheetT.Cells(3, iChannelT) = ChnDim(iChannelT)
    oSheetT.Cells(4, iChannelT) = ChnLength(iChannelT)
    ' Noch was fuers Auge ....
    oSheetT.Cells(5, iChannelT).Interior.ColorIndex = 48
    oSheetT.Columns(iChannelT).AutoFit
  Next
  '-------------------------------------------------
  ' Kanaldaten übertragen
  '-------------------------------------------------
  For iChannelT = 5 To lChnCountT
    Call LoopInit()
    Call MsgLineDisp("Übertragung des Kanals '"&ChnName(iChannelT)&"' ("&CStr(ChnLength(iChannelT))&" Werte)")
    ' ----- ist ein NV-Wert im Kanal ?
    if ucase(ChnNovKey(iChannelT)) = "YES" then
      For iIndex1 = 1 To ChnLength(iChannelT)
        oSheetT.Cells(lFirstDataRowT+iIndex1-1, iChannelT) = GetValue(iIndex1,iChannelT)
        lProzent = (iIndex1*100)/ChnLength(iChannelT)
        If ( 0 = (lProzent Mod 5 ) ) Then Call LoopInc(lProzent)
      Next
    else
      For iIndex2 = 1 To ChnLength(iChannelT)
        oSheetT.Cells(lFirstDataRowT+iIndex2-1, iChannelT) = GetValueX(iIndex2,iChannelT)
        lProzent = (iIndex2*100)/ChnLength(iChannelT)
        If ( 0 = (lProzent Mod 5 ) ) Then Call LoopInc(lProzent)
      Next
    end if
    Call LoopDeInit()
  Next
  ' Excel anzeigen
  oExcel.Visible = true
  If MsgBox("Excel schließen?", vbYesNo Or vbQuestion, "Bestätigen") = vbYes Then
      ' Set status of Excel work folder to saved, so no prompt appears when Excel closes.
      oSheetT.Parent.Saved = True
  
      ' In VBS, Excel must be closed explicitly.
      oExcel.Quit
    End If
  
    ' Set object references to 'Nothing'.
    Set oSheetT = Nothing
    Set oExcel = Nothing
  
End Sub

' ----- holt Werte und prüft nicht auf NV
function GetValueX(iIdxT, iChnT)
  GetValueX = CHD(iIdxT,iChnT)
end function

' ----- holt Werte und prüft auf NV
function GetValue(iIdxT, iChnT)
dim vVal
  vVal = CHD(iIdxT,iChnT)
  if IsNull(vVal) then
    GetValue = "Novalue"
  else
    GetValue = vVal
  end if    
end function
  
Else
  MsgBox "Das Script wurde beendet!"
  AutoQuit()
End If

Nur wenn ich Excel dann per Script schließen lasse, werden meine exportierten Ergebnisse nicht automatisch abgespeichert. D.h., an folgender Stelle im obigen Code muss irgendwo ein Fehler sein:

Code:
If MsgBox("Excel schließen?", vbYesNo Or vbQuestion, "Bestätigen") = vbYes Then
      ' Set status of Excel work folder to saved, so no prompt appears when Excel closes.
      oSheetT.Parent.Saved = True
  
      ' In VBS, Excel must be closed explicitly.
      oExcel.Quit
    End If
  
    ' Set object references to 'Nothing'.
    Set oSheetT = Nothing
    Set oExcel = Nothing

Siehst Du den Fehler zufällig?

Viele Grüße,
Alex

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.06.2010, 07:56
Beitrag #27
DIAdem-Version: 10.2, 11.1, 2010 und auf alten CD's runter bis 3.0
DIAdem-Sprachversion: DE
DIAdem Erfahrung seit: 1996
RE: Anfänger: Script zur Transformation von Fräskräften?

Hallo Alex,
schön, dass es soweit klappt!
Du hast ja die richtige Stelle im Code schon gefunden: In meinem Codebeispiel, welches ich aus Dem Diadembeispiel herausgenommen habe, wird Excel vorgespielt, dass die Daten bereits gespeichert sind (siehe auch die Kommentarzeile)

Code:
' Set status of Excel work folder to saved, so no prompt
' appears when Excel closes.
oSheetT.Parent.Saved = True
Das muss natürlich weg!
Automatisch speichern wäre:
Code:
Excel.ActiveWorkbook.Save

Gruß
Bruno

Diadem 2010
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.06.2010, 14:55
Beitrag #28
DIAdem-Version: 11.1
DIAdem-Sprachversion: DE
DIAdem Erfahrung seit: 2010
RE: Anfänger: Script zur Transformation von Fräskräften?

Hey Bruno!
DANKE! Es klappt alles! Wirklich super! Ohne deine Hilfe hätte ich das nicht hinbekommen!

Noch eine letzte Kleinigkeit:

Zum Abschluss will ich die aktuelle "Default-Datei" im Datenportal abspeichern. Ich benutze folgenden Code, welcher auch funktioniert!

Code:
Dim Speichern1
Speichern1 = msgbox("Die aktuell im Datenportal verwendete Datei abspeichern unter ...\Auswertung\ ?", vbYesNo)
    if Speichern1 = vbYes then
        'Speichert den gesamten Datenbestand des DIAdem-Datenportals mit den zugehörigen Eigenschaften in einer Datendatei.
        Call DATAFILESAVE(AutoActPath & "\Auswertung\ & TEST & "_TV" & TVnr & "_fz" & fz &".tdm", "TDM")            
    else
        AutoQuit()
    end If

Nur würde ich gerne wissen, wie ich es hinbekomme, dass an der Stelle "TEST" automatisch der Name der aktuellen Default-Datei eingesetzt wird? Da gibt es doch bestimmt auch nen Befehl, oder?

Grüße!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.06.2010, 16:05
Beitrag #29
DIAdem-Version: 11.1
DIAdem-Sprachversion: DE
DIAdem Erfahrung seit: 2010
RE: Anfänger: Script zur Transformation von Fräskräften?

UPDATE:

Hab das letzte Problem soeben gelöst Smile Folgender Code:

Code:
Dim Speichern1
Dim Gruppenname1
Gruppenname1 = ChnPropGet("[1]/Fv", "sourcedatafilename")
Speichern1 = msgbox("Die aktuell im Datenportal verwendete Datei abspeichern unter ...\Auswertung\ ?", vbYesNo)
    if Speichern1 = vbYes then
        Call DATAFILESAVE(AutoActPath & "\Auswertung\" & Gruppenname1 & "_TV" & TVnr & "_fz" & fz & ".tdm", "TDM")            'Speichert den gesamten Datenbestand des DIAdem-Datenportals mit den zugehörigen Eigenschaften in einer Datendatei.
    else
        AutoQuit()
    end If

Nur leider gibt er als Dateiname dann Folgendes aus:
"sp_kraft2_vc200_fvar_r04_p05_1.TDM_TV1.1_fz0,1.tdm"

Geht es auch so, dass "TDM" in der Mitte weggelassen wird? Also, dass "tdm" ausschließlich am Ende steht?

Grüße!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.06.2010, 17:36
Beitrag #30
DIAdem-Version: 10.2, 11.1, 2010 und auf alten CD's runter bis 3.0
DIAdem-Sprachversion: DE
DIAdem Erfahrung seit: 1996
RE: Anfänger: Script zur Transformation von Fräskräften?

Hallo Alex,
schön, dass das Programieren schon so gut klappt SmileExclamationSmile
Ich kann nicht genau sehen, in welcher Variablen der Dateiname mit der Endung TDM steckt, ich vermute es ist "Gruppenname1"?
Mit der Funktion FileNameSplit kannst Du die Dateinamenserweiterung abschneiden:

Code:
NameSplit(Gruppenname1,"N")
Müsstest Du noch an entsprechender Stelle in Deinen Code einbauen...
Gruß
Bruno

Diadem 2010
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  im Dialog Excel Datei laden und mit Werten im Script rechnen Timo 4 81 31.01.2012 09:09
Letzter Beitrag: voyager
  [ERLEDIGT] script bei &quot;Messung stoppen&quot; ausführen muelleran 2 365 18.10.2011 06:54
Letzter Beitrag: muelleran
  Script-Debugger unter WIN7 64Bit voyager 1 908 05.10.2011 20:33
Letzter Beitrag: grisu
  Tabelle per Script erstellen und manipulieren Jasper 1 323 26.09.2011 07:10
Letzter Beitrag: grisu
  neuen Kanal mit "komplexerem" Script befüllen CB369 5 453 08.09.2011 06:31
Letzter Beitrag: KUGA
  Dialog/Script in DAC MarkGiese 14 1.016 26.07.2011 12:13
Letzter Beitrag: grisu
  Daten via Script zur RS232 rausschicken? DennZ 1 556 27.06.2011 08:55
Letzter Beitrag: grisu
  Schriftart in DIAdem Script bei Programmstart STG 4 450 08.06.2011 13:27
Letzter Beitrag: STG
Music Script: Strings zusammensetzen und Integer in String verwandeln faleX 2 507 13.05.2011 07:07
Letzter Beitrag: Carpe_DIAdem
  [ERLEDIGT] DIAdem Script für Wert aus Kanal Dennis 7 973 06.04.2011 14:43
Letzter Beitrag: Dennis

Gehe zu: