IPOS-Programm eines Applikationsmoduls von SEW editieren/anzeigen?

egger

Level-2
Beiträge
43
Reaktionspunkte
4
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Forum,

ist es möglich sich das IPOS-Programm eines Applikationsmoduls z.B. Erweiterte Buspositionierung anzuschauen bzw. auch mit dem Compiler zu ändern?
Falls ja wie stelle ich das an?
 
wenn du die Quellen von SEW hast, kannst du die im IPOS Compiler
bearbeiten. Eine Quelle sieht in etwa so aus.
Die Quellen die SEW als Opion verkaufen werden Sie dir wahrscheinlich
nicht aushändigen, die leben ja auch vom Geld verdienen.

Code:
/*=============================================
   Zielregelung
   30.11.05  Helmut_von_der_Reparatur
   Eingabevariablen:
   TargetPos                Ziel in incr
   Reg_Speed                Geschwindigkeit in Anwendereinheit
   Ausgabe:
   Position_erreicht
   Lokale Variablen:
   Timer_1
   Reg_Differenz
   Reg_Divisor_Rampe
   Reg_Divisor_Rampe_min
   Reg_Divisor_Rampe_max
   Reg_Faktor_Rampe
   Reg_Lose_fahren
   Reg_Lose_gefahren
   Reg_Fenster              In Incrementen
   Verwendung
   Automatik Modus
   Funktionsweise
   Es wird wird die Differenz zwischen soll und Istposition ermittelt
   Dieser Wert ist die Geschwindigkeit, die nach oben durch die
   Feldbusgeschwindigkeit begrenzt wird. Damit sanft in das Ziel gefahren
   werden kann wird dieser Wert über einen Faktor und Divisor bewertet.
   Damit man nicht in das Ziel reinschleicht ist ein zweiter Divisor
   vorhanden (Divisor_min). Dieser wird kurz vor dem Ziel aktiv. Die Stoprampe ist
   keine Gerade.
   Die Stoprampe wird verschliffen
===============================================*/
Funktion_Zielregelung()
  {
  //-----  Ziel ohne Schleife  -----
  Reg_Schmier = TargetPos;
  //-----  Schleife ausrechnen  -----
  if(Reg_Lose_fahren && !Reg_Lose_gefahren)
    Reg_Schmier = TargetPos + (Reg_Lose* Faktor_Position / Divisor_Position);
  //-----  Schleife überfahren, Fahrt wiederholen  -----
  if(TargetPos > ActPos_Mot + Reg_Fenster)
    Reg_Lose_gefahren = 0;
  //-----  Differenz zwischen Soll und Ist ausrechnen  -----
  Reg_Differenz = Reg_Schmier - ActPos_Mot;
  if(Reg_Differenz < 0)
    Reg_Schmier = -Reg_Differenz;
    else
    Reg_Schmier = Reg_Differenz;
  //-----  Ziel-Regelung durchführen  -----
  Reg_Divisor_Rampe = Reg_Schmier / 5 + Reg_Divisor_Rampe_min;
  if(Reg_Divisor_Rampe > Reg_Divisor_Rampe_max)
    Reg_Divisor_Rampe = Reg_Divisor_Rampe_max;
  Reg_Schmier = Reg_Differenz * Reg_Faktor_Rampe / Reg_Divisor_Rampe;
  if(Reg_Differenz > 0 && Reg_Schmier < 0)
     Reg_Schmier = Reg_Speed;
  if(Reg_Differenz < 0 && Reg_Schmier > 0)
     Reg_Schmier = -Reg_Speed;
  if(Reg_Schmier > Reg_Speed)
     Reg_Schmier = Reg_Speed;
  if(Reg_Schmier < -Reg_Speed)
     Reg_Schmier = -Reg_Speed;
  if((Reg_Schmier > 0) && (Reg_Schmier < Reg_Mindestdrehzahl))
     Reg_Schmier = Reg_Mindestdrehzahl;
  if((Reg_Schmier < 0) && (Reg_Schmier > -Reg_Mindestdrehzahl))
     Reg_Schmier = -Reg_Mindestdrehzahl;
  //-----  Geschwindigkeit berechnen  -----
  Soll_Speed = Reg_Schmier * 0x4000 / 3000 * (Faktor_Speed / Divisor_Speed);
  //-----  Zieleinlauf durchführen  -----
  if(Reg_Differenz > Reg_Fenster || Reg_Differenz < -Reg_Fenster)
    Timer_1 = Verz_Ziel;
  if(Timer_1 == 0 && (Reg_Lose_gefahren || !Reg_Lose_fahren))
    Pos_erreicht_SET;
  if(Timer_1 == 0 && Reg_Lose_fahren)
    Reg_Lose_gefahren = 1;
  if(TargetPos == ActPos_Mot)
    Soll_Speed = 0;
  //-----  Geschwindigkeit herausgeben  -----
  mcd.PO2 = Soll_Speed;
  }
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke für die schnelle Info!
Mein Ziel war es eine fertige Applikation zu erweitern da ich dies in eine Projektarbeit einbinden wollte.
Gibt es keine weitere Möglichkeit an die Quellen zu kommen?
 
asm

Den Assemblercode kannst du dir absehen, und auch erweitern... Hab ich schon bei der absolutwertpositionierung mal gemacht, und dort referenzieren eingebaut.

Ist natürlich nicht so schön, als wie wenn man den hochsprachencode hat, aber es geht....
 
Ist es möglich eine bestehende inbetriebgenommene Applikation "Modulo-Positionierung" durch ein weiteres selbstgeschriebenes IPOS-Programm zu erweitern, welches in einem separaten Prozess parallel zum Applikationsmodul läuft?

Hintergrund: Die Slaveantriebe sind mit "DriveSync Applikation" in Betrieb und der Master soll per Modulo parametriert werden. Die Übertragung der Masterposition über SBus soll eigenständig in IPOS programmiert werden.
 
Grundsätzlich ist das möglich, du kannst verschiedene Task aufrufen, aber
welche hängt ein bischen vom Gerät ab. MOVIDRIVE B hat 4 Tasks und
MOVIDRIVE A hat 2 Tasks. Aber du brauchst trotzdem die Quellen vom
IPOS Programm um zu sehen welche Tasks schon wie genutzt werden.
 
herzlichen dank für die vielen hilfreichen antworten. ich werde mich in nächster zeit mal intensiver mit diesem thema beschäftigen um diverse sachen herauszufinden und mögliche lösungsansätze zu bekommen.
 
Zurück
Oben