Beiträge von Zuckerbäcker
-
-
Hallo zusammen,
da ich Neu in diesem Forum bin, ein großes Hallo und eine kurze Vorstellung.
Ich habe einen TX90 zum Testen bei mir im Haus, u. auch schon eine Programmier Schulung bei Stäubli gemacht.
Programmierer bin ich sonst eigentlich nicht, aber meine gewünschten Wege kann ich mit dem Roboter schon fahren.
Ich komme eher aus der CNC Fräsmaschinen Ecke.Mein aktuelle Aufgabe.
Ich möchte über Profibus einen Schrittmotor zum laufen bringen,
über das MCP funktioniert es grudnsätzlich, jetzt möchte ich 2 Ausgangs-Bytes befüllen, welche aus einer Zahl berechnet werden.
Da ich mit der Funktion: toBinary() nicht weitergekommen bin, habe ich mich eines Beispiels von einer Stäubli Bibliothek bedient,
siehe weiter unten.Leider finde ich in Val3 nichts dazu, wie ich einen String mit 16 Zeichen - also mein Binärer Wert (2 Bytes, also 1 Word)
in 2 Strings aufteilen kann.Hier mein aktueller Code bzw. Versuch:
Code
Alles anzeigen// This program turns a decimal number into a binary word. // Receives decimal value and turns it into the corresponding // binary word (16 Bits). // //Input parameters // num x_nDecimal : // role : decimal value to convert // //Output parameters // string x_sBinary : // role : binary value converted (16 Bits) // //History // Creation : 16-04-09 - t.Gra // verändert 2014 - nicht mehr original, welches vom internen Bereich unter Libarys von Stäubli zu bekommen ist. //Header end //----------------------------------------------------------------------- //take the full value // x_nDecimal=roundDown(x_nDecimal) - ausgeblendet, damit unten ein beliebiger Wert eingesetzt werden kann: x_nDecimal=1000 //Calcul loop do if (x_nDecimal%2)==0 x_sBinary="0"+x_sBinary else x_sBinary="1"+x_sBinary endIf x_nDecimal=roundDown(x_nDecimal/2) until (x_nDecimal<1) l_sVal=x_sBinary //Add bit 0 for l_ni=1 to (16-len(l_sVal)) x_sBinary="0"+x_sBinary endFor // leider funktionieren die 2 unteren Zeilen nicht, d.h. ich kann nicht mit [Wert] auf die Stelle im String zugreifen // und ich kam bisher auch nicht darauf wie es sonst geht putln(x_sBinary[0] + x_sBinary[1] + x_sBinary[2] + x_sBinary[3] + x_sBinary[4] + x_sBinary[5] + x_sBinary[6] + x_sBinary[7] + " Byte No.1") putln(x_sBinary[8] + x_sBinary[9] + x_sBinary[10] + x_sBinary[11] + x_sBinary[12] + x_sBinary[13] + x_sBinary[14] + x_sBinary[15] + " Byte No.2")
leider funktionieren die 2 unteren Zeilen nicht, d.h. ich kann nicht mit [Wert] auf die Stelle im String zugreifen
und ich kam bisher auch nicht darauf wie es sonst geht...