TIA ATT/FIFO-Probleme: CPU geht in Stop

ansgar96

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

ich habe ein Problem bei der FIFO/ATT Funktion. Ich möchte die Funktionen nutzen um eine Anforderungsreihenfolge bei einer Ampelschaltung zu speichern. Leider geht die CPU in Stop sobald die FIFO-Funktion ausgeführt werden soll, im Diagnosepuffer steht dazu:
STOP durch Programmierfehler (OB nicht geladen oder nicht möglich, bzw. kein FRB vorhanden )
Unterbrechungstelle im Anwenderprogramm: Zyklisches Programm (OB 1)
Prioritätsklasse: 1
FC-Nummer: 85
Bausteinadresse: 88
Bisheriger Betriebszustand: RUN


Ich weis aber leider nicht was ich falsch mache. Könnte da mal jemand drüber gucken und mir auf die Sprünge helfen? :)
Im Anhang 3 Bilder von der Bausteinschnittstelle, einer ATT-Zuweisung mit der FIFO-Ausgabe und eine Verarbeitung der Ausgabe, zusätzlich noch das ganze Projekt.

Software ist TIA V13, CPU eine VIPA 214-1BC02

Schnittstelle.jpg FIFO.jpg Zuweisung_Ausgabe.jpg
Anhang anzeigen Ampel5.zip


Freundliche Grüße
Ansgar
 
Schau dir mal die Hilfe zu den Fifo-Bausteinen an. Die Fifo-Tabelle benötigt einen Kopf mit der Tabellenlänge und der Anzahl der Einträge. Ist dort eine fehlerhafte Länge angegeben wird womöglich auf nicht vorhandene DB-Adressen zugegriffen.
"Reihenfolge" ist bei dir ein Pointer, und aus den Bildern kann man nicht erkennen worauf dieser zeigt.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hey,

hättest du ein Beispiel oder einen Link zum Nachlesen wie man das macht? Ich habe leider nichts gefunden was mir weiter hilft.
"Reihenfolge" ist bei mir einfach eine INOut-Variable im zum FB2 zugehörigem DB2, mehr hatte ich da nicht gemacht. Jetzt wo ich die Hilfe nochmal gelesen habe fällt mir auch auf das da was von Länge und Anzahl der Einträge steht.
Nur ich weis wie gesagt leider nicht so Recht wie man das denn nun anstellen soll. :confused:

Freundliche Grüße
Ansgar
 
Du könntest erstmal so wie im Beispiel den FIFO in einem separaten Global-DB ablegen.

Z.B. wie in der Hilfe einen DB1, in dem du eine entsprechende Anzahl an Variablen vom Datentyp WORD anlegst. So wie es auch in der Hilfe gezeigt ist.
Bei den Aufrufen am Parameter TABLE gibst du dann einen Zeiger auf diesen Baustein. Wenn der Eintrag mit der Tabellenlänge direkt am Anfang des DB1 beginnt wäre das P#DB1.DBX0.0.
 
Zurück
Oben