Roboterforum Willkommen Gast. Bitte einloggen oder registrieren.
Haben Sie Ihre Aktivierungs E-Mail übersehen?
07. Februar 2012, 15:02:33
Übersicht Hilfe Suche Kalender Einloggen Registrieren
News: English and international Robotsupport now on Robot Forum. Also Supported by the Moderators of the roboterforum.de

Roboterforum für Industrieroboter Anwender  |  Industrieroboter Helpcenter  |  Mitsubishi Roboter (Moderatoren: Werner Hampel, Urmel)  |  Thema: Input Befehl 0 Mitglieder und 1 Gast betrachten dieses Thema. « vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: Input Befehl  (Gelesen 2001 mal)
fallon
Member
***
Offline Offline

Beiträge: 56


« am: 10. Juni 2008, 16:46:43 »

Könnte noch mal euere Hilfe gebrauchen:

Ich bekomme von auserhalb folgenden  String geliefert:

023;M;7;1;0300;0500;0900;

Wie kann ich den unter Melfa IV weiterverarbeiten, bzw ich benötige nur die letzten 3 Werte. Diese sollen einzel in eine Variable fliessen. Das Semikolon kann nicht vorher in ein Komma umgewandelt werden.

Gruß
Fallon
Gespeichert
Urmel
Global Moderator
Elite Member
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 743


« Antworten #1 am: 10. Juni 2008, 19:20:58 »

Hallo,

das geht im Prinzip genauso wie in anderen Basic Dialekten:

Einlesen als String, also z.B. 

Code:
INPUT #1,CIN$

dann auseinandernehmen

Code:
C1$ = MID$(CIN$, 1, 3)

und in eine Zahl umwandeln

Code:
M1=VAL(C1$)

Grüße

  Urmel

Gespeichert
fallon
Member
***
Offline Offline

Beiträge: 56


« Antworten #2 am: 30. Juni 2008, 14:00:36 »

Danke, hat mir sehr geholfen. Habs so ähnlich probiert, hab nur dabei einen Syntaxfehler eingebaut.

Gruß
Fallon
Gespeichert
Netman86
Stammgast
**
Offline Offline

Geschlecht: Männlich
Beiträge: 45



« Antworten #3 am: 08. Januar 2010, 15:31:46 »

Auch wenn der Thread schon etwas älter ist, stell ich meine Frage mal hier rein:

Und zwar bekomme ich über nen INPUT versch. Positions-Offset-Werte übermittelt, das sieht dann in etwa so aus:

Offset1:50.5

Und ich würde mir dann in diesem Falle nur die letzten vier Stellen nehmen um meine Position anzufahren.
Nun kann es aber auch sein das mal Werte wie 120.53 oder 5.99 oder 10.125 kommen. Wie kann ich möglichst alle Fälle abdecken? Gibts eine Funktion mit der ich z.b. bei Werten mit weniger Stellen die fehlenden mit Nullen auffüllen kann oder sowas?

Gespeichert
Urmel
Global Moderator
Elite Member
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 743


« Antworten #4 am: 08. Januar 2010, 15:45:03 »

Du kannst ja mit StrPos nach dem Doppelpunkt suchen. Das was rechts davon ist, extrahierst du dann mit Mid$.

Grüße

  Urmel
Gespeichert
Netman86
Stammgast
**
Offline Offline

Geschlecht: Männlich
Beiträge: 45



« Antworten #5 am: 08. Januar 2010, 17:04:49 »

Danke, das hilft mir schonmal weiter. Und wie kann ich das Problem lösen, dass die Zahl unterschiedlich viele Stellen hat?

Gespeichert
Urmel
Global Moderator
Elite Member
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 743


« Antworten #6 am: 08. Januar 2010, 18:05:59 »

Und wie kann ich das Problem lösen, dass die Zahl unterschiedlich viele Stellen hat?

Woraus besteht denn das Problem ?

Ein Val("50.5") funktioniert genauso gut, wie ein Val("10.125"). Die benötigten Werte für Mid$ kannst du mit den Funktionen StrPos und Len ermitteln.

Oder kommt nach der Zahl noch was im String ?  Dann musst du auch danach suchen.
Gespeichert
Netman86
Stammgast
**
Offline Offline

Geschlecht: Männlich
Beiträge: 45



« Antworten #7 am: 08. Januar 2010, 20:27:15 »

Nein, nach der Zahl kommt nix mehr.

Ich dachte nur ich erhalte nen Fehler wenn ich ich sage das ich 6 Stellen ("10.125") nach dem ":" lesen will und es kommt ne Zahl mit nur 4 Stellen ("50.5") !?








Gespeichert
Urmel
Global Moderator
Elite Member
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 743


« Antworten #8 am: 09. Januar 2010, 09:34:15 »

Ich dachte nur ich erhalte nen Fehler wenn ich ich sage das ich 6 Stellen ("10.125") nach dem ":" lesen will und es kommt ne Zahl mit nur 4 Stellen ("50.5") !?

Bei den meisten anderen Basic Dialekten ist das kein Problem. Auf dem Roboter habe ich es noch nicht ausprobiert.

Zur Not kann man es ja ausführlich schreiben:

Doppelpunktpos = StrPos( Doppelpunkt in String )
Zahlanfang = Doppelpunktpos + 1
ZahlLänge =  Len(String) - Doppelpunktpos
StringMitZahl = Mid$( von Zahlanfang ab ZahlLänge Zeichen)
Zahl = Val( StringMitZahl )


Grüße

  Urmel
Gespeichert
Netman86
Stammgast
**
Offline Offline

Geschlecht: Männlich
Beiträge: 45



« Antworten #9 am: 09. Januar 2010, 12:59:23 »

ok werde das Montag mal am Roboter testen.


Gespeichert
Netman86
Stammgast
**
Offline Offline

Geschlecht: Männlich
Beiträge: 45



« Antworten #10 am: 11. Januar 2010, 11:00:05 »

so, hab mal die ausführliche Variante getestet und es funktioniert bis jetzt sehr gut Smile


Gespeichert
Seiten: [1] Nach oben Drucken 
Roboterforum für Industrieroboter Anwender  |  Industrieroboter Helpcenter  |  Mitsubishi Roboter (Moderatoren: Werner Hampel, Urmel)  |  Thema: Input Befehl « vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.16 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS