Bosch Indraworks- Sercos Parameter auslesen aus Drive mit FB: MT_ScsData

Daxgehtsteil

Level-1
Beiträge
74
Reaktionspunkte
6
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich hoffe jemand von euch hat Erfahrung mit Bosch- Indraworks und Sercos Schnittstellen.
Folgendes Problem:

Ich möchte Parameter aus einem Drive auslesen (z.b. aktuelle Geschwindigkeit). Dies kann man laut Doku mit dem Baustein MT_ScsData.
Der Baustein wird mit einem Start-Flag aufgerufen, und meldet zurück, wenn er aktiv ist. Soweit so Doku.
Wie folgt habe ich den Aufruf gestaltet:

fbReadScsData(
Start := true,
Mode := 5,
StandardsParam:= 'S',
DataAddr := ADR(aSCSCycData),
Size := SIZEOF(aSCSCycData)
);

if not fbReadScsData.Active
then
do something.....


Mein Problem ist nun das der Baustein so nie fertig wird,sprich "Active" nie zurückgesetzt wird. Erst im nächsten Zyklus wird das Active zurückgenommen, und eventuell noch ein Error-Ausgang gesetzt, und zwar auch dann, wenn der Baustein NICHT mehr aufgerufen wird. Wie ist das überhaupt möglich das der Baustein einen zusätzlichen Error- Ausgang setzen kann, wenn er gar nicht mehr aufgerufen wird? Für mich sieht das so aus das seitens Rexroth kein sauberer Handshake zum Starten und Beenden des Bausteins programmiert wurde.
Ich würde behaupten er muss sobald er fertig ist (könnte ja auch mehr als einen Zyklus benötigen) nimmt er das Acitve zurück und ich beende ihn, indem ich in einmal mit Start = false aufrufe.

Hoffe jemand hat nen Tipp für mich.


Hier noch ein paar Infos:
Bausteinversion MT_ScsData: 13.6.0.0
Steuerung: IndraWorks MTX 13V14.0069

Viele Grüße

Dax
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Die Parameternummer wird mit übergeben, habe das nur hier im Thread übersehen. Ich hab nen Problem damit, die Active-Abfrage wegzulassen. Ich kann ja nur sicher davon ausgehen, das der Baustein fertig ausgeführt wurde, wenn er mir das zurückmeldet. es könnte ja auch sein das er mehrere zyklen braucht.
ich finde die Umsetzung so nicht konsequent. Aber was solls, ich bastle mir dann mal ein Work-Around..
danke schon mal...
 
Ich kann dein Argument nicht nachvollziehen. Außerdem stimmt es ja überhaupt nicht, das ich einen Zyklus länger warten müsste.
Wenn der Baustein intern mit einem sauberen Handshake arbeiten würde, und sagen wir mal tatsächlich nur einen Zyklus braucht um Daten zu liefern,
dann müsste er sinnvollerweise das Active-Flag sofort VOR verlassen des bausteins wieder zurücksetzen, und nicht anstehen lassen um erst bei Zykluswechsel zurückzusetzen. dann könnte ich hinter dem Bausteinaufruf prüfen "IF NOT fbReadData.Active" und mich dann damit darauf verlassen das er fertig ist. Damit wäre kein unnötiger Zyklus zu viel und es wäre sauber.

P.s. Ich rufe den auch gar nicht permanent auf, sondern in einem Intervall von z.b. 250ms um daten auszulesen und im HMI anzuzeigen.
Habe nur den kompletten code nicht angegeben hier im thread.

viele grüße
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich kenne den Baustein nicht, denke aber ebenfalls, daß bei Auftragserledigung im selben Aufruf Active garnicht true wird.
Sollte man Aufträge auslösen welche länger als einen Zyklus dauern, dann muß man wegen dem Warten auf Active=false keine Performance verlieren - man könnte ja in dem selben Zyklus den Baustein ein zweites mal aufrufen, um den nächsten Auftrag zu starten.

Active überhaupt nicht auswerten halte ich für falsch.

Harald
 
Moin
Welche Steuerung wird genutzt? Normal sind doch fertige Anwendungen als Beispiel dabei ?



Sent from my iPhone using Tapatalk
 
Zurück
Oben