-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 18

Thema: print mit 6 Stellen

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.07.2006
    Alter
    87
    Beiträge
    627

    print mit 6 Stellen

    Anzeige

    Hallo,
    ich möchte eine Software über RS232 ansteuern und die gibt ein bestimmtes Format vor:

    Und da muss ich 6 Zeichen senden! also wenn ich eine 1 senden möchte muss ich 000001 senden wie geht das?

    Genauer gesagt ich möchte einen Analogeingang auslesen und dann übe RS232 senden ABER immer 6 Zeichen.

    Tobias

  2. #2
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    EIn Beispiel, hoffentlich verständlich

    Code:
    Dim Inpt As String * 20
    Dim Utp As String * 20
    Dim Va As Integer
    
       Va = 123
       Inpt = Str(va)
       Utp = Format(inpt , "000000")
       Print Utp
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.07.2006
    Alter
    87
    Beiträge
    627
    hmmm....
    kannst du mir das noch ein bisschen erklären?

    Warum String*20 - warum nicht *6?

    Also ich verstehe das soo:

    Va = 123 oder z.B. mein Analogeingang....
    Va kommt in ein String (Inpt)
    Utp bekommt das Format 000000 und inpt(warum kann ich hier nicht gleich Va eintragen?)
    Dann wird Utp ausgegeben.

    Tobias

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    15.02.2007
    Ort
    NB
    Beiträge
    6
    Hallo,

    möcht auch mal was schreiben

    Warum String*20 - warum nicht *6?
    Also du kannst natürlich auch string * 6 "schreiben" , dann "passen" halt 6 Zeichen in deinen String, macht dann 7 Byte.



    Va kommt in ein String (Inpt)
    Richtig. Va wird in durch die STR-Funktion in einen String umgewandelt.

    Utp bekommt das Format 000000 und inpt(warum kann ich hier nicht gleich Va eintragen?)
    Naja, inpt bekommt das Format und wird in Utp gespeichert. Du kannst der FORMAT-Funktion nur Strings übergeben, wenn Va ein String ist,kannst du auch Va direkt übergeben.


    Steht auch alles sehr schön in der Online-Hilfe von der Bascom.....

    Gute Nacht...

    Mfg

    Robby[/i]

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.07.2006
    Alter
    87
    Beiträge
    627
    so und schon fertig - dachte ich...

    nun muss nur noch der Analogeingang angehängt werden. Nun habe ich aber ein Problem bei der Umrechnung mit den Kommastellen: die werden ignoriert:


    Dim Uuuuu_in0 As Long 'Analogeingang ADC0
    Dim Uuuuu_in1 As Long
    Dim Uuuuu_in2 As String * 5
    Dim Uuuuu As String * 5 '5)Spannung in mV

    'Spannung wandeln
    '______________________


    Uuuuu_in0 = Getadc(0) 'Wert aus Analogeingang laden
    Uuuuu_in1 = Uuuuu_in0 * 5.43499511241447
    Uuuuu_in2 = Str(uuuuu_in1)
    Uuuuu = Format(uuuuu_in2 , "00000")
    Print Uuuuu

    was muss ich ändern, das die komastelen berücksichtigt werden? Im Ergebniss (Print Uuuuu) soll natürlich KEIN Komma drin sein.

    Tobias

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    15.02.2007
    Ort
    NB
    Beiträge
    6
    Hallo,

    ähmm vielleicht solltes du dich doch ein wenig erstmal mit grundlegenden Sachen beschäftigen. Z.Bsp. DATENTYPEN in Bascom

    Long ist ganzzahlig, der Wertebereich ist von -2,1Mrd noch irgendwas bis +2,1Mrd....(hab es nicht im Kopf,aber 2^32 dann hast den Wertebereich)

    Also?

    Ganz klar das dann keine "Kommastellen" vorhanden sind.
    Deklariere sie mal als SINGLE anstatt LONG.....

    Und kleiner Tip, schau echt einmal in die Online-Hilfe...Dann lernste sicher mehr...

    Gruß

    Robby

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.07.2006
    Alter
    87
    Beiträge
    627
    Danke für den Tip,
    aber single ist nicht mit dem Analogeingang "kompatibel"

  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.07.2006
    Alter
    87
    Beiträge
    627
    so, hab´s mal ausprobiert:

    Source variable does match the target variable [36]

    bezieht sich auf:
    Uuuuu_in0 = Getadc(0)

    Tobias

  9. #9
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.07.2006
    Alter
    87
    Beiträge
    627
    da es ja mit single probleme gibt habe ich

    Dim Uuuuu_in0 As Long
    Dim Uuuuu_in1 As Single
    Dim Uuuuu_in11 As Single
    Dim Uuuuu_in2 As String * 5
    Dim Uuuuu As String * 5

    Keine Fehlermeldung - aber es kommt nicht´s vernünftiger über RS232 an:
    <\0>ð<\0>ð<\0>ð<\0>ð<\0>ð<\0>ð<\0>ð<\0>ð<\0>ð<\0>ð <\0>ð
    <\0>ð<\0>ð<\0>ð<\0>ð<\0>ð<\0>ð<\0>ð<\0>ð<\0>ð<\0>ð <\0>ð<\0
    >ð<\0>ð<\0>ð<\0>ð<\0>ð<\0>ð<\0>ð<\0>ð<\0>ð<\0>ð<\0 >ð<\0>ð

  10. #10
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.07.2006
    Alter
    87
    Beiträge
    627
    wie wärs damit? 2 mal rechnen, ist aber nicht die feine art...

    Dim Uuuuu_in0 As Long 'Analogeingang ADC0
    Dim Uuuuu_in1 As Long
    Dim Uuuuu_in11 As Long
    Dim Uuuuu_in2 As String * 5
    Dim Uuuuu As String * 5 '5)Spannung in mV


    '_____________________

    Uuuuu_in0 = Getadc(0) 'Wert aus Analogeingang laden
    Uuuuu_in1 = Uuuuu_in0 * 5474
    Uuuuu_in11 = Uuuuu_in1 / 1000
    Uuuuu_in2 = Str(uuuuu_in11)
    Uuuuu = Format(uuuuu_in2 , "00000")
    'Print Uuuuu

    aber kein Komma mehr...na ja...

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •