Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 7 odgovora
  • 3.402 pregleda

Najnovija ↓

kako ubrzati izvrsavanje programa 28.03.2013. u 14:48 · pre 165 meseci #1
Pozdrav ,
problem je sledeći :Radi se o kontroli doziranja, čitati sa vage podatak preko seriskog porta o masi i kada masa pređe zadanu aktivirati izlaz na paralelnom portu.vrijeme do dostizanja kilaže je oko 3,5 sekundi.
Ja sam uradio sledeće: u OnTimer_u šaljem zahtjev vagi , ona mi vraća podatak o masi , poredim taj podatak sa zadanim ,i preko 'inpout32.dll' upravljam paralelnim portom.
Kako ubrzati da se program izvršava brže , pošto od momenta dostizanja zadane mase do momenta promjene prođe dosta vremena.
Potpis
Potpis ...
Re: kako ubrzati izvrsavanje programa 28.03.2013. u 17:55 · pre 165 meseci #3
> problem je sledeći :Radi se o kontroli doziranja, čitati sa vage podatak preko seriskog porta o masi i kada masa pređe zadanu aktivirati izlaz na paralelnom portu.vrijeme
> do dostizanja kilaže je oko 3,5 sekundi.
> Ja sam uradio sledeće: u OnTimer_u šaljem zahtjev vagi

Na koliko se okida OnTimer?

> , ona mi vraća podatak o masi , poredim taj podatak sa zadanim ,i preko 'inpout32.dll' upravljam paralelnim portom.

Teško je reći bez koda i više detalja. Timer sam po sebi nije precizna stvar, on se okida tek kada aplikacija nema ništa drugo da radi, dakle ako tvoj program nešto drugi radi, timer poruke nećeš ni dobiti.

> Kako ubrzati da se program izvršava brže , pošto od momenta dostizanja zadane mase do momenta promjene prođe dosta vremena.

Šta to tačno znači, promene čega? Da li tvoj program detektuje masu (koliko tu prođe vremena) i onda pošalje neku komandu na paralelni port? Možda je problem u tom uređaju na drugoj strani.
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: kako ubrzati izvrsavanje programa 28.03.2013. u 22:28 · pre 165 meseci #5
Hvala svima na odgovorima.
Interval Timer_a je 30 .Funkcija programa je samo to da komunicira sa vagom i daje signal
na paralelni port koji se dalje prosljeđuje preko optokaplera.
kod:
Code:

procedure TForm1.Timer1Timer(Sender: TObject);
var
  Str,answer,a: String;
  poz_broja:Integer;
  masa:single;
begin
 zad_masa:=StrToFloat(Edit1.Text);
  com.WriteStr(#05);
  sleep(40);                                // ne moze krace zbog vage
  com.WriteStr(#17);
  sleep(40);
   com.ReadStr(Str,50);
   answer:=answer+str;
   Memo1.Lines.Add(Str);

    if pos('S',answer) >0 then
      begin
        poz_broja:=pos('S',answer);

        Label1.Caption:=copy(answer,poz_broja+2,5);
        answer:='';
      end;
      if pos('U',answer) >0 then
      begin
        poz_broja:=pos('U',answer);

       Label1.Caption:=copy(answer,poz_broja+2,5);
        //a:=copy(answer,poz_broja+2,7);

       // if a then

        masa:=StrToFloat(Label1.Caption);
        if masa < zad_masa then
        begin
           Shape1.Brush.Color:=clLime;
           Out32($378,$0);
        end;

        if masa > zad_masa then
         begin
          Shape1.Brush.Color:=clRed;
          Out32($378,$1);
         end;

        answer:='';
      end;

end;



jos jednom hvala
Potpis
Potpis ...
Re: kako ubrzati izvrsavanje programa 29.03.2013. u 00:24 · pre 165 meseci #6
> Hvala svima na odgovorima.
> Interval Timer_a je 30 .

Ali se funkcija izvršava duže, najmanje 80ms. Za početak ili isključi timer dok si u funkciji ili povećaj interval.

> Funkcija programa je samo to da komunicira sa vagom i daje signal na paralelni port koji se dalje prosljeđuje preko optokaplera.

Nisi napisao gde je usko grlo, da li je spor prijem podataka ili slanje podataka (reakcija uređaja na poslatu komandu).
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: kako ubrzati izvrsavanje programa 29.03.2013. u 08:58 · pre 165 meseci #7
Prvo, zadatak koji si opisao bi uz puno manje utjecaja raznih faktora ili mogućih izvora problema izvršavao jedan mali jeftini sklop s mikrokontrolerom tipa atmela 8051 ili AVR, PIC ili sl. za cijenu troškova od možda 20-25$.

Drugo, većina vagi šalje podatke na port kontinuirano ili u nekim bulkovima svakih pola sekunde, sekundu... zavisi kako je programirana. Očitavaš prethodno stanje i novo stanje i ako dođe do promjene vrijednost usporediš sa limitom, okineš port, isprazniš vrijednosti i vozi dalje... Već godinama očitavam mosne vage po silosima i asfaltnim bazama, razne analizatore i sl. i sve kod vaga radi uglavnom na ovaj sistem. Napominjem, ako PC glumi neku automatsku regulaciju tipa kontrolera koji upravlja punjenjem proizvoda u pakovanja na točnu mjeru i sl. tada unatoč idejama o uštedi zbog takvog pristupa ili sl. ipak treba odabrati namjenski i sigurniji uređaj. Također, koliko mi je ostalo u sjećanju, razne vage se mogu programirati svakako i da rade svašta i imaju na sebi razne portove i ekstenzije. Provjeri ima li tvoja vaga port koji može signalizirati i da joj se upiše program gdje se port aktivira na neki limit i preskoči priču s PC-em.
Potpis
God is real unless is declared as integer.
Re: kako ubrzati izvrsavanje programa 29.03.2013. u 19:03 · pre 165 meseci #8
Ljudi hvala vama na javljanju.Konačno rješenje će biti sa PLC_om ,
nego mi je bilo lakše ovako da skuzim protokol pošto sam dobio neku šturu dokumentaciju uz vagu .
Što se tiče vage (vaga CAS AP-EX L serija) ona šalje podatke samo na zahtjev .
Pa rekoh aj da probam ovako da ne trošim PLC a već mi je potreban računar na tom mjestu.
Potpis
Potpis ...
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme