Wägezelle Programmierung B & R Automation studio

sunshine2017

Level-1
Beiträge
2
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute,

ich programmiere Wäge Zelle und nutze die Funktion ASWeigh-WGH Scale. Die werte dass ich lesen möchte liegen zwischen 0kg und 150 kg. Leider habe ich keine Möglichkeit die raw werte(raw value) für den Pointer pWGHscalePara zu lesen.

Bitte Hilfe
 
Ich habe den folgenden Quellcode verwendet:

// Intialising parameters for inbuilt function AsWeigh

fb_WGHscale.enable=1;
fb_WGHscale.t_measure=1;

//Intialising parameters to Pointer to WGHscale

pWGHscalePara.ref1_std=0;
fb_WGHscale.doStandardize1=1;

if(fb_WGHscale.doneStandardize1==1)
{
fb_WGHscale.doStandardize1=0;
pWGHscalePara.ref2_std=150000;
fb_WGHscale.doStandardize2=1;

}


fb_MTFilterMovAvg.In=IO.Input.nTank1Input;
MTFilterMovingAverage(&fb_MTFilterMovAvg);
fb_WGHscale.pWGHscalePara=&pWGHscalePara;
fb_WGHscale.raw_value=IO.Input.nTank1Input;

WGHscale(&fb_WGHscale);

TankWeightTest=(REAL) (fb_WGHscale.std_value/1000);


Watch 1.PNGWatch2.PNG

Aber wie ihr sieht die Raw werte für 150Kg ist anscheinend Falsch. Und dadurch kriege ich einen Falschen Ausgang wert. Was mache ich falsch?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Sunshine

Als erstes kann ich dir die Hilfe von AutomationStudio sehr empfehlen. Wenn du die die Library in der Logical View markierst, so bringt dich F1 direkt zum Eintrag

Grob gesagt wo der Fehler liegt: die beiden doStandardize Eingänge des FUBs sind dafür gedacht, die Wägezelle zu kalibrieren. Dabei werden zwei Wertepaare aus dem von dir angegebenen Referenzwert und dem zu diesem Zeitpunkt anliegenden Rohwert (IO.Input.nTank1Input bei dir) gebildet. Diese beiden Wertepaare werden anschliessend verwendet um die Skalierung des Rohsignals vorzunehmen.

Wenn in deiner Anwendung also Präzise Messungen gefordert sind, müssen bei der Inbetriebnahme zwei unterschiedliche Gewichte entsprechend der Werte in den ref Parametern auf die Wage gelegt werden und dann die doStandardize Eingänge gesetzt werden. Die ermittelten Rohwerte wirst du dir remanent, permanent oder noch besser in einem File gespeichert merken müssen.

Wenn die Präzision nicht so hoch gewichtet ist, so kannst du auch mit dem Datenblatt der Wägezelle die Rohwerte ermitteln und im InitUP direkt in die Parameter schreiben.

Freundliche Grüsse
Ulumulu
 
Zurück
Oben