MC_AxRtReadPressureDiff_BkPlcMc (ab V3.0)
Der Funktionsbaustein übernimmt die Ermittlung des Istdrucks der Achse aus den Eingangsdaten von zwei Analog-Eingangsklemmen.
Steht nur ein Eingangssignal zur Verfügung sollte ein Baustein des Typs MC_AxRtReadPressureSingle_BkPlcMc verwendet werden. Soll nicht der Druck sondern die Kraft ermittelt werden ist ein Baustein vom Typ MC_AxRtReadForceDiff_BkPlcMc einzusetzen. |
Eingänge
VAR_INPUT
AdcValueA: INT:=0;
AdcValueB: INT:=0;
ScaleFactorA: LREAL:=0.0;
ScaleOffsetA: LREAL:=0.0;
ScaleFactorB: LREAL:=0.0;
ScaleOffsetB: LREAL:=0.0;
ReadingMode: E_TcMcPressureReadingMode:=iTcHydPressureReadingDefault;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
AdcValueA | INT | Hier sind die Eingangsdaten von den Analog-Klemmen zu übergeben. |
AdcValueB | INT | |
ScaleFactorA | LREAL | [bar/ADC_INC] Dieser Wert stellt die Gewichtung dar. Er legt fest, welche Druckerhöhung einer Stufe des AD-Wandlers entspricht. |
ScaleOffsetA | LREAL | [bar] Dieser Offset dient dazu, den Nullpunkt der Druckskala zu korrigieren. |
ScaleFactorB | LREAL | [bar/ADC_INC] Dieser Wert stellt die Gewichtung dar. Er legt fest, welche Druckerhöhung einer Stufe des AD-Wandlers entspricht. |
ScaleOffsetB | LREAL | [bar] Dieser Offset dient dazu, den Nullpunkt der Druckskala zu korrigieren. |
ReadingMode | E_TcMcPressureReadingMode | Mit diesem Parameter wird festgelegt, wo das Ergebnis der Auswertung abzulegen ist. |
Ein-/Ausgänge
VAR_INOUT
Axis: Axis_Ref_BkPlcMc;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
Axis | Axis_Ref_BkPlcMc | Hier ist die Adresse einer Variablen vom Typ Axis_Ref_BkPlcMc zu übergeben. |
Ausgänge
VAR_OUTPUT
Error: BOOL;
ErrorID: UDINT;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
Error | BOOL | Hier wird das Auftreten eines Fehlers signalisiert. |
ErrorID | UDINT | Hier wird eine codierte Fehlerursache bereitgestellt. |
Verhalten des Bausteins
Bei jedem Aufruf untersucht der Baustein das übergebene Achsinterface. Dabei kann ein Problem erkannt und gemeldet werden:
- Ist der Pointer pStAxRtData in Axis_Ref_BkPlcMc nicht initialisiert reagiert der Baustein mit Error und ErrorID:=dwTcHydErrCdPtrMcPlc. Die Achse kann in diesem Fall nicht in einen Störzustand versetzt werden.
Wenn diese Überprüfung ohne Problem durchgeführt werden konnte wird der Istdruck der Achse durch Auswertung der Variablen AdcValueA und AdcValueB ermittelt. Das Ergebnis wird in ST_TcHydAxRtData.fActPressure eingetragen.
Die Speicherung von einer Achse zugeordneten Parametern kann zum Beispiel in den ST_TcHydAxParam.fCustomerData[...] erfolgen. So ist sichergestellt, dass die Daten zusammen mit den Standard-Parametern der Achse geladen, gespeichert und gesichert und bei Bedarf auch exportiert und importiert werden.
Inbetriebnahme-Variante A
Hierbei ist keine Bewegung der Achse erforderlich. Die erreichbare Genauigkeit ist bei hochwertigen Drucksensoren in den meisten Fällen ausreichend.
- Als ScaleFactorA und ScaleFactorB ist der Bemessungsdruck der Drucksensoren dividiert durch AdcValueAMAX bzw. AdcValueBMAX einzutragen.
Inbetriebnahme-Variante B
Hierbei ist keine Bewegung der Achse erforderlich. Die erreichbare Genauigkeit ist bei hochwertigen Drucksensoren in den meisten Fällen ausreichend.
- Als ScaleFactorA und ScaleFactorB ist der Bemessungsdruck der Drucksensoren dividiert durch AdcValueAMAX bzw. AdcValueBMAX einzutragen.
Inbetriebnahme-Variante C
Hierbei ist es erforderlich, das in beide Richtungen ein Block mit vollem Systemdruck angefahren werden kann. Dabei ist eine echte Bewegung der Achse nicht erforderlich. Also kann das Anfahren der Anschläge dadurch nachgebildet werden, dass die Achse durch Einlegen von provisorischen Begrenzungen nur einen Teil ihres Fahrweges zurücklegen kann oder sogar mechanisch vollständig fixiert wird.
- Es sind alle Bausteine zu deaktivieren, die auf den Wert von ST_TcHydAxRtData.fActPressure reagieren.
- Mit niedriger Geschwindigkeit wird zunächst der untere (in Richtung sinkender Istposition gelegene) Block angefahren. Dabei wird für AdcValueA und AdcValueB der Wert ermittelt und festgehalten. Jetzt sollte auf der B-Seite der Systemdruck und auf der A-Seite der Tankdruck und somit der Umgebungsdruck anstehen. Ist dies aus irgendwelchen Gründen nicht der Fall sind die A- und B-seitigen Drücke durch Messung zu ermitteln.
- Mit niedriger Geschwindigkeit wird anschließend der obere (in Richtung steigender Istposition gelegene) Block angefahren. Dabei wird erneut für AdcValueA und AdcValueB der Wert ermittelt und festgehalten. Auch jetzt sind die Drücke festzustellen.
- Die einzutragenden Parameter errechnen sich dann wie folgt:
- ScaleFactorA := (DruckAMAX - DruckAMIN) / (AdcValueAMAX - AdcValueAMIN);
- ScaleFactorB := (DruckBMAX - DruckBMIN) / (AdcValueBMAX - AdcValueBMIN);
- ScaleOffsetA := DruckAMIN - ScaleFactorA * AdcValueA;MIN
- ScaleOffsetB := DruckBMIN - ScaleFactorB * AdcValueB;MIN
Inbetriebnahme-Variante D
Ersatzweise kann eine Inbetriebnahme der Erfassung ohne Ansteuerung der Achse erfolgen. Dabei wird jedoch eine weitaus geringere Genauigkeit erreicht.
- Zunächst ist die Achse druckfrei zu machen. Dazu ist der Kompressor still zu setzen und der Druckspeicher zu entlasten.
- Es ist sicher zu stellen, dass die Achse keinen Druck aufbaut. Dazu ist eine von außen mit Kräften (Gravitation usw.) beaufschlagte Achse mechanisch abzustützen. Das Ventil ist mehrfach manuell oder elektrisch in beide Richtungen zu öffnen.
- Jetzt wird für AdcValueA und AdcValueB der Wert ermittelt und festgehalten. Es sollte sowohl auf der A- als auch auf der B-Seite der Tankdruck und somit der Umgebungsdruck anstehen. Ist dies aus irgendwelchen Gründen nicht der Fall sind die A- und B-seitigen Drücke durch Messung zu ermitteln. Die so gefundenen Werte sind in den oben genannten Gleichungen als MIN Werte einzusetzen.
- Aus den Datenblattangaben der Drucksensoren ist der Druck für die obere Grenze des elektrischen Signals (10 Volt, 20 mA) zu entnehmen. Als AdcValueA und AdcValueB ist der obere Grenzwert für die gewandelte elektrische Größe anzunehmen. Diese Werte sind als MAX Werte in die oben genannten Gleichungen einzusetzen.
- Die einzutragenden Parameter errechnen sich dann wie oben beschrieben.