Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Incalzire in pardoseala etapizata

Suprataxa card energie?!

Cum era nivelul de trai cam din a...

probleme cu ochelarii
 Impozite pe proprietati de anul v...

teava rezistenta panou apa calda

Acces in Curte din Drum National

Sub mobila de bucatarie si sub fr...
 Rezultat RMN

Numar circuite IPAT si prindere t...

Pareri brgimportchina.ro - teapa ...

Lucruri inaintea vremurilor lor
 Discuții despre TVR Sport HD.

Cost abonament clinica privata

Tremura toata, dar nu de la ro...

Renault Android
 

VB si RS232

- - - - -
  • Please log in to reply
12 replies to this topic

#1
Wingyfeather

Wingyfeather

    New Member

  • Grup: Members
  • Posts: 7
  • Înscris: 18.06.2010
Buna

sunt student in sesiune si am de facut un proiect in care tre sa afisez turatia unui motor reglata d un regulator pid.Proiectul il fac cu un coleg..el s-a ocupat d partea hardware eu tre sa fac softul. Ca sa pot face graficul in timp real a turatiei reglate am folosit ( la cerintele profesorului) visual basic.
Sunt cam incepator si m-ar interesa care e comanda unui buton pentru a trimite controllerului o informatie

Mai exact
- am un buton de start si cand apas p el vreau sa trimit controllerului comanda care sa imi porneasca motorul
-un alt buton de stop care sa imi opreasca motorul   , mentionez ca valorile trimise sunt p 8 biti...hexadecimal

Private Sub BaudRate_Click()

   If FormLoaded Then
        With MSComm1
            .Settings = BaudRate.Text + ",N,8,1"    
        End With
    End If
End Sub

Private Sub Start_Click()
If FormLoaded Then

MSComm1.Output = Chr$(1) ' aici cum as putea sa trimit 0x5B

End If

End Sub

Private Sub Stop_Click()
If FormLoaded Then

MSComm1.Output = 0x5A

End If
End Sub

#2
macaz

macaz

    Junior Member

  • Grup: Members
  • Posts: 108
  • Înscris: 14.06.2007
MSComm1.Output = Chr$(&H5B)'

Asta daca nu stii cum se specifica in hexa (pui &H in fata reprezentarii hexa).

#3
Wingyfeather

Wingyfeather

    New Member

  • Grup: Members
  • Posts: 7
  • Înscris: 18.06.2010
ahaa..ma gandeam ca si asta ar fi o forma..desi cam greu cu declararea in vb

static const BYTE baEnableScan[ 1] = {0x5A};

#4
Wingyfeather

Wingyfeather

    New Member

  • Grup: Members
  • Posts: 7
  • Înscris: 18.06.2010
si daca as avea un buton pentru a mari turatia motorului..."+"..cand apas vreau sa transmit un semnal controllerului ..pot scrie astfel codul ?

Private Sub TurPlus_Click()   'butonul de "+"
If FormLoaded Then
   IntValue = Val(ComboValues.Text)
   IntValue = IntValue + 1
MSComm1.Output = Chr$(IntValue)
End If


ma intereseaza daca exista o alta forma d scriere a codului..gen " If "apasa buton " atunci mareste turatia

decat If "incarca formular" atunci modiufica turatia "

#5
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,194
  • Înscris: 24.02.2007
Ce treaba are formularul aici? E clar ca nu poti apasa pe buton cat timp nu ai form'ul incarcat.
Private Sub TurPlus_Click()
	 MSComm1.Output = Chr(Val(ComboValues.Text)+1)
End Sub
Nu e suficient?

Edited by dani.user, 19 June 2010 - 14:52.


#6
Wingyfeather

Wingyfeather

    New Member

  • Grup: Members
  • Posts: 7
  • Înscris: 18.06.2010

View Postdani.user, on 19th June 2010, 15:52, said:

Ce treaba are formularul aici? E clar ca nu poti apasa pe buton cat timp nu ai form'ul incarcat.
Private Sub TurPlus_Click()
	 MSComm1.Output = Chr(Val(ComboValues.Text)+1)
End Sub
Nu e suficient?


Ai dreptate..ma luase valul

mai am intrebari...

pentru butonul d pornire ..start...trimit semnal controllerului apoi acesta asteapta o valoare de turatie.
am un combo box cu turatia si un buton de start..vreau sa fac in asha fel incat:

- ar trebui facut o chestie, ca atunci cand dau start sa nu ia in considerare alte butoane, ci sa  ia doar valorile de turatie din casuta pentru ca asa cum e acum, daca apas start si pe urma stop, o sa imi seteze turatia ca fiind valoarea butonului de stop
adica 0x5B

#7
macaz

macaz

    Junior Member

  • Grup: Members
  • Posts: 108
  • Înscris: 14.06.2007
buun.. si butonul de stop cand trebuie luat in considerare? 0x5B nu era start? sau poate dupa comanda de start trebuie trimisa imediat comanda de schimbare a turatiei?

#8
Wingyfeather

Wingyfeather

    New Member

  • Grup: Members
  • Posts: 7
  • Înscris: 18.06.2010

View Postmacaz, on 19th June 2010, 23:05, said:

buun.. si butonul de stop cand trebuie luat in considerare? 0x5B nu era start? sau poate dupa comanda de start trebuie trimisa imediat comanda de schimbare a turatiei?
da , dupa comanda de start trebuie introdusa comanda de turatie..cum fac asta ?

#9
macaz

macaz

    Junior Member

  • Grup: Members
  • Posts: 108
  • Înscris: 14.06.2007
pai cand apesi pe butonul ala in event handler-ul aferent, trimiti doua comenzi una dupa alta, ori independente ori le concatenezi (mscomm-ul accepta un string).

ceva in genul:
MSComm1.Output = Chr(&H5B) & Chr(Val(ComboValues.Text))' sau ce combo ai tu acolo pentru viteza


#10
Wingyfeather

Wingyfeather

    New Member

  • Grup: Members
  • Posts: 7
  • Înscris: 18.06.2010
yey..da. ..scrisesem si eu cv asemanator intre timp

Next question:
Cum afisez datele c vin pe serial port ? fiindca motorasul se cam opreste la turatia 20 daca dau cu "+"..o turatie mai amre introdusa  merge...

ASta e codul pentru comanda

Public Sub MSComm1_OnComm()

Buffer = ""
If MSComm1.CommEvent = comEvReceive Then

      Buffer = Left(MSComm1.Input, 1)
           If Buffer <> "" And LastValue <> Buffer Then
            value = Asc(Buffer)
            Tur.Text = Str(value)
            LastValue = Buffer
            Form1.Refresh
        End If
   End If
End Sub

Preferabil..as vrea sa afisez undeva...ce imi recoamndati sa fac un camp d text..sau sa afisez ca mesaj datele ? si cum sa fac asta ?

Va multumesc pana acum..raspunsurile voastre chiar m-au ajutat

#11
macaz

macaz

    Junior Member

  • Grup: Members
  • Posts: 108
  • Înscris: 14.06.2007
vezi ca textboxul are o proprietate multiline pe care o setezi pe true si o proprietate scrollbars pe care o pui pe vertical, dupa care redimensionezi acel textbox cat ai tu nevoie.
In timpul rularii cele doua proprietati sunt read-only deci va trebui sa le setezi valoarea in design-time.

apoi in cod pui ceva de genul
Tur.SelText = Str(value) & vbCrLf

astfel fiecare caracter primit pe seriala va fi afisat in acel textbox pe un singur rand.

#12
R&D

R&D

    New Member

  • Grup: Members
  • Posts: 2
  • Înscris: 22.07.2007
Foarte tare !

Cum se rezolva aplicarea de butoane de maximize si minimize la form ? ...ca am incercat acest lucru (pura curiozitate) si nu mi-a iesit sa le adaug la bara d titlu.

#13
R&D

R&D

    New Member

  • Grup: Members
  • Posts: 2
  • Înscris: 22.07.2007

View PostR&D, on 21st June 2010, 15:53, said:

Foarte tare !

Cum se rezolva aplicarea de butoane de maximize si minimize la form ? ...ca am incercat acest lucru (pura curiozitate) si nu mi-a iesit sa le adaug la bara d titlu.


Nevermind..I fixed it :D

Anunturi

Chirurgia endoscopică a hipofizei Chirurgia endoscopică a hipofizei

"Standardul de aur" în chirurgia hipofizară îl reprezintă endoscopia transnazală transsfenoidală.

Echipa NeuroHope este antrenată în unul din cele mai mari centre de chirurgie a hipofizei din Europa, Spitalul Foch din Paris, centrul în care a fost introdus pentru prima dată endoscopul în chirurgia transnazală a hipofizei, de către neurochirurgul francez Guiot. Pe lângă tumorile cu origine hipofizară, prin tehnicile endoscopice transnazale pot fi abordate numeroase alte patologii neurochirurgicale.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate