Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

kako ubrzati izvrsavanje programa

[es] :: Pascal / Delphi / Kylix :: kako ubrzati izvrsavanje programa

[ Pregleda: 1892 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

gobs
Goran Surtov
ing. odrzavanje ,
K.Dubica

Član broj: 162343
Poruke: 49
89.111.232.*



+2 Profil

icon kako ubrzati izvrsavanje programa28.03.2013. u 13:48 - pre 100 meseci
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 ...
 
Odgovor na temu

captPicard
programer
more i planine

Član broj: 216084
Poruke: 1119



+19 Profil

icon Re: kako ubrzati izvrsavanje programa28.03.2013. u 14:06 - pre 100 meseci
Bez primjera koda ćemo ti teško pomoći.
F
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2665



+73 Profil

icon Re: kako ubrzati izvrsavanje programa28.03.2013. u 16:55 - pre 100 meseci
> 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.
 
Odgovor na temu

Lawd

Član broj: 312064
Poruke: 20
*.dynamic.isp.telekom.rs.



+1 Profil

icon Re: kako ubrzati izvrsavanje programa28.03.2013. u 18:09 - pre 100 meseci
Koristi thread-ove. Napravi listener thread.
 
Odgovor na temu

gobs
Goran Surtov
ing. odrzavanje ,
K.Dubica

Član broj: 162343
Poruke: 49
*.teol.net.



+2 Profil

icon Re: kako ubrzati izvrsavanje programa28.03.2013. u 21:28 - pre 100 meseci
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 ...
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2665



+73 Profil

icon Re: kako ubrzati izvrsavanje programa28.03.2013. u 23:24 - pre 100 meseci
> 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).

 
Odgovor na temu

komplikator
Programer / sys. inženjering
CRO

Član broj: 29755
Poruke: 158
...144.83-dsl.net.metronet.hr.

ICQ: 13387003


+8 Profil

icon Re: kako ubrzati izvrsavanje programa29.03.2013. u 07:58 - pre 100 meseci
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.
God is real unless is declared as integer.
 
Odgovor na temu

gobs
Goran Surtov
ing. odrzavanje ,
K.Dubica

Član broj: 162343
Poruke: 49
89.111.232.*



+2 Profil

icon Re: kako ubrzati izvrsavanje programa29.03.2013. u 18:03 - pre 100 meseci
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 ...
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: kako ubrzati izvrsavanje programa

[ Pregleda: 1892 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.