Siemens
Siemens

Digital Industries, Motion Control, Machine Tool Systems

Automatische Rüstdaten Sicherung

Beitrag 06.03.2017, 17:54 Uhr
Andy742000
Andy742000
Level 7 = Community-Professor
*******
Gruppe: Banned
Mitglied seit: 15.09.2012
Beiträge: 3.725
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

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

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
   
1 Besucher lesen dieses Thema (Gäste: 1)
0 Mitglieder: