help - Win sąsają sukonfigūruoti įtaisas mesti RS232

A

ajsik

Guest
Aš dirbu dėl tam tikrų projektų, matavimo termocouples.Prietaisas pats savaime neturi jokių mygtukų ar rodyti.Ir yra daug reikšmių setuped.Taigi man reikia daryti kai kuriuos GUI Windows (98 ar daugiau), kuri bus naudojama sąrankos prietaisas.

Dėl aparatūros įrenginio turi rs232 ir aš dirbti Ansi C 8051 ir kompiuterio pusėje Delphi 5,0 Atitikti bibliotekos (pagal winsoft.sk).

Man reikia, turi būti stabilus, pernelyg padidinto eilutė kaltės nustatymo
ir kt ..

Aš ką nors rountines tačiau ji nėra stabili, ir daryti daug klaidų, kai jūs dirbate kaip "paprastas vartotojas" (be comm uždarymo, kabelinė Atsukti be comm uždarymo
tt .. žinote

<img src="http://www.edaboard.com/images/smiles/icon_confused.gif" alt="Confused" border="0" />

).

Jei turite experiencies,
nurodykite, prašau, man patarimus apie tai.Bet kuris protokolas, arba būdas, kaip valdyti komunikacijos ...I ll do rountines tačiau i dont turite vaizduotę kaip valdyti comm ...ačiū

 
Deja, aš tik dirba uosto szeregowego naudojant MSCOMM32 kontrolės (ActiveX) iš visual basic.Bet aš tikiu, kad galite naudoti ActiveX valdiklį iš delphi per.Ji dauguma funkcija esate klausia, kaip pariteto kontrolės, bitrate kontrolė ir
ttDėl stabilumo problemą, ji priklauso nuo daug jūsų prašymą dizainas.I've made paraišką (naudojant VB), kad padaryti uosto szeregowego sąsajos į transporto priemonių svorių sistemą.Duomenys iš transporto priemonių svorių sistema yra siunčiami į uosto szeregowego visą laiką (streaming).Tačiau mano, aš tik uosto, kai vartotojas paspaudžia nuorodą į tam tikras taikymo kompiuterio.Tada paimkite į "srautinių baitų" iš wighting sistemos dukart ilgio, "duomenys" baitų.Jis reikalingas, nes man reikia gauti "vieną pilną duomenų baitų" ir atmesti "uncomplete duomenų baitų.
Kadangi naudojate termoelementas.Galbūt Jums reikia tik padaryti Temperatur "mėginių" į laiku.Nereikia vartotojo uždaryti arba atidaryti komunikacijos uosto rankiniu būdu.Tiesiog atidarykite uoste ir paimti duomenis, kiek reikia uždarykite jį vėl laiku naudojant laikmatį.

 
Prietaisas yra conveter ...dėl indėlio yra termocouples (J, K, S, B) ir outpup yra 0-20mA, 4-20mA, 0-10V ir apibrėžtos vartotojo (tarp 0-22mA, 0-11V).Yra galimybė priemonę "šaltai pabaigos" arba "lange temperatūra", kad būtų išvengta tiksli temperatūros aplinkos temperatūros.Ir kai kurių kitų galimybių setuped.

Ir aš turiu daryti GUI kad galės setup šias galimybes ir nukreipti jį į Keitiklis ir Ieškoti jį atgal.

Štai pavyzdys iš GUI ...www.volny.cz / ajsik / preview_fisrt_alpha.JPG

Atrodo paprastai ir ant stalo ji veikia gerai, kai jūs jį galutiniams vartotojams jie suras kas silpnumas (Žinai, jis turi būti "idiot-proove")

Ar tai geriau tai daryti dvejetainiu režimu ar ANSI (kaip modemą comm)?Yra apie 100Bytes siųsti ir Ieškoti (ne realiu laiku atranka).

CRC yra problema pati, ant PC yra bibliotekos, o mikroschemą jūs turite tik 9Bits duomenų registrą, 8bits vėliavos registro ir nutraukti (kad nutrūksta dėl incomming simbolių).Taigi aš išspręsti CRC pagal save, ir atsiųsti jį kaip papildomą simbolių į srautą.

Kaip nustatyti ar sugadinta linija (kabelinė ir-pluged)?Aš tik 3 laidai prijungti (Rx, Tx ir GND).

Ačiū už būsimus patarimus ...

 
Citata:

Ar tai geriau tai daryti dvejetainiu režimu ar ANSI (kaip modemą comm)?
Yra apie 100Bytes siųsti ir Ieškoti (ne realiu laiku atranka).
 
thaks daug ...i will do it in ANSI režimu ir eilutė klaidos manekeno signalo ...dėl pirmadienis aš pradėti

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Šypsotis" border="0" />

...Aš atsipalaiduoti ...

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Vėsus" border="0" />
 
Jūs galite koduoti su specialiu pradėti pobūdį ir Checksum, baigėsi CR / LF

(Visos sumos šešioliktainis)
- Pradėti su specialių simbolių (pvz., kolonėlės)
- Siųsti komanda (registro numeris,
80 skaitymui, pvz: 01 = parašyti registras 1, 81 = skaityti registre 1)
- Siųsti ilgis
- Jei rašyti, siųsti vertė rašyti (po šešioliktainį pavyzdžiui)
- Galiausiai, atimti visus bytes išsiųsti, ir išsiųsti šią, kaip kontrolinė.

Pavyzdys: Jei norite nustatyti vertė registre 1 iki 5, nustatyti registro 2'55 FS 02 ", ir priimti registre 3.

: 010105F9
: 020355FF02A5
: 82017D

Aprašymas pirmą eilutę aukščiau:
: 010105F9
':' Yra pradžios linija
'01 'Yra įrašyti į registrą 1
'01 'Yra ilgis (1 baitas)
'05 'Yra vertė
"F9" yra 0 -'01 '-'01' -'05 '
CR / LF

Antroji eilutė:
: 020355FF02A5
':' Yra pradžios linija
'02 'Yra įrašyti į registrą 2
'03 'Yra ilgis (3 bytes)
'55FF02 "Yra reikšmė (3 bytes 55 FF 02)
"A5" yra 0 -'02 '-'03' -'55 '-' FF '-'02' (lygus A5, sutrumpintas iki 1 baitas)
CR / LF

Tas pats taikoma ir kitų linijų.Jei skaitant atgal vertė, kažkas panašaus galėtų būti naudojamas įtaisas-> PC atsakymą.

Taigi, tokiu būdu, kad prietaisas bus žinoti, kada linijos pradžios (su skiltis), ji žino, kada pabaigos (CR / LF) ir taip pat žinoti, jei duomenys yra svarbūs (patikrinkite, ar jis gavo "ilgis" baitų plius vienas baitas į komandą, vienas baitas dėl ilgio ir vienas baitas už kontrolinės. Be to, padarytais * pridedant * visi bytes jis gauna kartu, tai žinau, kad tai galioja tik tuo atveju, jei suma lygi nuliui.

Kai gaunate skiltyje, anuliuoti checsum nuliui, ir pradėti iš naujo.Kai gaunate CR, patikrinkite rezultatus.

 

Welcome to EDABoard.com

Sponsor

Back
Top