Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Acoperire gol extrior intre termo...

Intreprindere individuala fara ac...

Marci Biciclete - recomandari

Lipsa Tensiune pe o Faza, bransam...
 Recomandare bicicleta copil 5 ani.

Recomandare kit automat acces usa

[email][nvidia] Your GeForce NOW ...

Site nesigur
 Baghetele ornamentale intre foile...

O recomandare pentru o camera ful...

Pareri magazin online quickmobile?

Unde gasesc banane albastre?
 Despre compania de aministrare Sq...

Durere taietura deget dupa 2 luni

Dalți gravare lemn

Didgeridoo
 

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,231
  • Î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