Siemens
Digital Industries, Motion Control, Machine Tool Systems
8843
Follower:innenAutomatische Rüstdaten Sicherung
06.03.2017, 17:54 Uhr
Hi
Ok dann nun mit Excel- Importunterstützung ' ist die Einführung / Deklaration für einen String in Excel
Als Trennzeichen wird hier jetzt TAB ( Tabulator ) verwendet.
Damit steht nun 'R1 - TAB - 85.876 in der Datei
Falls nun noch der "." durch einem "," ersetzt werden müsste, ist das auch möglich. würde aber die Ausführungszeit bedeutend erhöhen.
Ok dann nun mit Excel- Importunterstützung ' ist die Einführung / Deklaration für einen String in Excel
Als Trennzeichen wird hier jetzt TAB ( Tabulator ) verwendet.
Damit steht nun 'R1 - TAB - 85.876 in der Datei
CODE
%_N_SICHERN_SPF
;-----------------------------------------------------------------
; ORIGINAL VON SIMTRA95 BY INDUSTRYARENA
;-----------------------------------------------------------------
DEF STRING[128] DATEI ="/_N_WKS_DIR/_N_PARA_WPD/_N_PARA"
DEF STRING[200] SCHREIBTEXT
DEF STRING[50] ZWISCHENTEXT
DEF CHAR TRENNZEICHEN = 9;TRENNZEICHEN FUER OFFICE (ASCII 9 = TAB)
; ALLE TRENNZEICHEN FÜR DEN IMPORT SIND DER ASCII TABELLE BZW DER
; OFFICEANWENDUNG ZU ENTNEHMEN
DEF CHAR EXCELSTRING = 39;EINFÜHRUNGSZEICHEN STRING EXCEL (')
DEF REAL WERT
DEF INT ERROR, MAXR, TEILBAR, SCHLEIFEN, REIHE, LAENGEG, LAENGET
DEF INT SLZ1, SLZ2, RZAHL
TEILBAR = 1
MAXR = $MC_MM_NUM_R_PARAM; ERFASSE ANZAHL DER R-PARAMETER
IF (TRUNC(MAXR / 2)) == (MAXR / 2)
TEILBAR = 2; ANZAHL DER R-PARAMETER IST DURCH 2 TEILBAR
ENDIF
IF (TRUNC(MAXR / 5)) == (MAXR / 5)
TEILBAR = 5; ANZAHL DER R-PARAMETER IST DURCH 5 TEILBAR
ENDIF
IF (TRUNC(MAXR / 10)) == (MAXR / 10)
TEILBAR = 10; ANZAHL DER R-PARAMETER IST DURCH 10 TEILBAR
ENDIF
START:
IF ISFILE(DATEI)
DELETE(ERROR,DATEI)
IF ERROR > 0
MSG("DATEI WURDE NICHT GELOESCHT")
ENDIF
ENDIF
MSG()
SCHLEIFEN = (MAXR / TEILBAR) - 1
REIHE = TEILBAR - 1
FOR SLZ1 = 0 TO SCHLEIFEN
SCHREIBTEXT = ""
FOR SLZ2 = 0 TO REIHE
LAENGEG =STRLEN(SCHREIBTEXT)
RZAHL = (TEILBAR * SLZ1) + SLZ2
WERT = R[RZAHL]
ZWISCHENTEXT = EXCELSTRING<<"R"<<RZAHL<<TRENNZEICHEN<<WERT
LAENGET = STRLEN(ZWISCHENTEXT)
IF (LAENGEG + LAENGET) > 200;LAENGENPRUEFUNG FUER WRITE
IF TEILBAR == 10; REDUZIERUNG DER SPALTEN AUF 5
TEILBAR = 5
GOTOB START
ENDIF
IF TEILBAR == 5; REDUZIERUNG DER SPALTEN AUF 2
TEILBAR = 2
GOTOB START
ENDIF
IF TEILBAR == 2; REDUZIERUNG DER SPALTEN AUF 1
TEILBAR = 1
GOTOB START
ENDIF
ENDIF
SCHREIBTEXT = SCHREIBTEXT << ZWISCHENTEXT
IF SLZ2 < REIHE; FUEGE TRENNUNG AN
SCHREIBTEXT = SCHREIBTEXT << TRENNZEICHEN
ENDIF
ENDFOR
WRITE(ERROR,DATEI,SCHREIBTEXT)
IF ERROR > 0
MSG("DATEN KONNTEN NICHT GESCHRIEBEN WERDEN")
LOOP
G4 F10
ENDLOOP
ENDIF
ENDFOR
RET
;-----------------------------------------------------------------
; ORIGINAL VON SIMTRA95 BY INDUSTRYARENA
;-----------------------------------------------------------------
DEF STRING[128] DATEI ="/_N_WKS_DIR/_N_PARA_WPD/_N_PARA"
DEF STRING[200] SCHREIBTEXT
DEF STRING[50] ZWISCHENTEXT
DEF CHAR TRENNZEICHEN = 9;TRENNZEICHEN FUER OFFICE (ASCII 9 = TAB)
; ALLE TRENNZEICHEN FÜR DEN IMPORT SIND DER ASCII TABELLE BZW DER
; OFFICEANWENDUNG ZU ENTNEHMEN
DEF CHAR EXCELSTRING = 39;EINFÜHRUNGSZEICHEN STRING EXCEL (')
DEF REAL WERT
DEF INT ERROR, MAXR, TEILBAR, SCHLEIFEN, REIHE, LAENGEG, LAENGET
DEF INT SLZ1, SLZ2, RZAHL
TEILBAR = 1
MAXR = $MC_MM_NUM_R_PARAM; ERFASSE ANZAHL DER R-PARAMETER
IF (TRUNC(MAXR / 2)) == (MAXR / 2)
TEILBAR = 2; ANZAHL DER R-PARAMETER IST DURCH 2 TEILBAR
ENDIF
IF (TRUNC(MAXR / 5)) == (MAXR / 5)
TEILBAR = 5; ANZAHL DER R-PARAMETER IST DURCH 5 TEILBAR
ENDIF
IF (TRUNC(MAXR / 10)) == (MAXR / 10)
TEILBAR = 10; ANZAHL DER R-PARAMETER IST DURCH 10 TEILBAR
ENDIF
START:
IF ISFILE(DATEI)
DELETE(ERROR,DATEI)
IF ERROR > 0
MSG("DATEI WURDE NICHT GELOESCHT")
ENDIF
ENDIF
MSG()
SCHLEIFEN = (MAXR / TEILBAR) - 1
REIHE = TEILBAR - 1
FOR SLZ1 = 0 TO SCHLEIFEN
SCHREIBTEXT = ""
FOR SLZ2 = 0 TO REIHE
LAENGEG =STRLEN(SCHREIBTEXT)
RZAHL = (TEILBAR * SLZ1) + SLZ2
WERT = R[RZAHL]
ZWISCHENTEXT = EXCELSTRING<<"R"<<RZAHL<<TRENNZEICHEN<<WERT
LAENGET = STRLEN(ZWISCHENTEXT)
IF (LAENGEG + LAENGET) > 200;LAENGENPRUEFUNG FUER WRITE
IF TEILBAR == 10; REDUZIERUNG DER SPALTEN AUF 5
TEILBAR = 5
GOTOB START
ENDIF
IF TEILBAR == 5; REDUZIERUNG DER SPALTEN AUF 2
TEILBAR = 2
GOTOB START
ENDIF
IF TEILBAR == 2; REDUZIERUNG DER SPALTEN AUF 1
TEILBAR = 1
GOTOB START
ENDIF
ENDIF
SCHREIBTEXT = SCHREIBTEXT << ZWISCHENTEXT
IF SLZ2 < REIHE; FUEGE TRENNUNG AN
SCHREIBTEXT = SCHREIBTEXT << TRENNZEICHEN
ENDIF
ENDFOR
WRITE(ERROR,DATEI,SCHREIBTEXT)
IF ERROR > 0
MSG("DATEN KONNTEN NICHT GESCHRIEBEN WERDEN")
LOOP
G4 F10
ENDLOOP
ENDIF
ENDFOR
RET
Falls nun noch der "." durch einem "," ersetzt werden müsste, ist das auch möglich. würde aber die Ausführungszeit bedeutend erhöhen.
--------------------
MfG
Andy
-------------------------------------------------------------------------------------------------------------------------
4 BIT NC, Kugelschrittschaltwerk
Numerik 600 + Lochstreifen
und nun nicht weiter gekommen als bis zur Sinumerik ;-)
PS : Ich hasse R- Parameter ! Aus Rxxx wird unter Beachtung der Mond-Parabel und der "ERDschen" Glockenkurve nach der Division mit PI/8 + Werkhallenhöhe ein neuer sinnvoller Parameter Rxxx
Impressum: Wer Rechtschreib- oder Grammatikfehler findet darf sie behalten, sind kostenlose Beigaben des Autors
Andy
-------------------------------------------------------------------------------------------------------------------------
4 BIT NC, Kugelschrittschaltwerk
Numerik 600 + Lochstreifen
und nun nicht weiter gekommen als bis zur Sinumerik ;-)
PS : Ich hasse R- Parameter ! Aus Rxxx wird unter Beachtung der Mond-Parabel und der "ERDschen" Glockenkurve nach der Division mit PI/8 + Werkhallenhöhe ein neuer sinnvoller Parameter Rxxx
Impressum: Wer Rechtschreib- oder Grammatikfehler findet darf sie behalten, sind kostenlose Beigaben des Autors
1 Besucher lesen dieses Thema (Gäste: 1)
0 Mitglieder: