# Anfänger bittet um Hilfe bei den ersten Schritten



## Ratoncito (2 November 2020)

Hallo,

ich bin Wolfgang und muss eine bestehende SPS durch eine neue ersetzen. Wenn nichts dagegen spricht, möchte ich dies mit einer 750-8212 PFC200 realisieren.

Meine letzten Erfahrungen mit Programmierung liegen 25 Jahre zurück. Inzwischen hat sich vieles verändert. Für die Programmierung wird wohl Codesys verwendet. Daher habe ich Codesys und die Demo-Version e!Cockpit installiert.

Mein Plan ist, ein neues Programm zu erstellen, das auf dem alten Programm aufbaut und nach Möglichkeit die verwendeten Bezeichnungen für Ein- und Ausgänge, Timer, Zähler und sonstigen Variablen zu übernehmen.

Für den Anfang habe ich eine erste Application mit einer 750-8212, einer Eingangskarte mit 4 Eingängen und einer Ausgangskarte mit 4 Ausgängen erstellt. Darin ist ein Programmbaustein mit 3 Netzwerken.

Dabei sind schon die ersten Fehler und grundlegenden Fragen aufgetaucht.

Alle Ein- und Ausgänge sollen globale Variablen sein. Die Eingänge sollen z.Bsp. mit E1.01 usw. bezeichnet sein. Wie werden die in E1 deklarierten Variablen den Eingängen der Steuerung zugewiesen?

Mein erster Versuch ist im Anhang.

Ich würde mich freuen, wenn sich hier Einige meiner Probleme und Fragen annehmen würden, um die vorhandenen Fehler zu beseitigen.

Für Antworten im Voraus schon mal vielen Dank.

Liebe Grüße und einen guten Start in die neue Woche - Wolfgang


----------



## Azubine (2 November 2020)

Hi ich könnte gerne Helfen aber wie ich sehe ist der Eingang E1.01 wird so nicht akzeptiert es wird dann zu E 1.1 die null fällt weg.


----------



## Azubine (2 November 2020)

Hi ich könnte gerne Helfen aber wie ich sehe ist der Eingang E1.01 wird so nicht akzeptiert es wird dann zu E 1.1 die null fällt weg.


----------



## Tobsucht (2 November 2020)

Hallo Wolfgang,

E1 ist nur eine Variablenliste und tritt nicht selbst als Variable auf. In dieser Liste kannst Du eigene Variablen deklarieren.
Die Deklaration E1.01: BOOL; wird einen Fehler, da der Punkt in einem Variablennamen nicht zulässig ist.
Du gönntest schreiben: E1_01 : bool;
Dann ist die Variable unter E1.E1_01 global verfügbar.

Wenn Du mit E1._01 und E1._02 arbeiten möchtest, also die einzelnen Ein- und Ausgänge musst Du dir zuerst eine Struktur mit Bool Varialben _01 und _02 anlegen. Ein Variablenname darf nicht mit einer Zahl beginnen. Daher der Unterstrick.
Diese Struktur kannst Du dann in der Variablenliste deklarieren.

Das Mappen auf die Ein- und Ausgänge erfolgt nach einem Doppelklick auf dem PFC in der Kachelansicht.
Im Reiter Lokalbus kannst Du dort deine Variablen mappen. Klicke dazu doppelt in die erste Spalte und dann auf die erscheinende Schaltfläche mit den drei Punkten.

Grüße


----------



## Ratoncito (2 November 2020)

Hallo,

vielen Dank für die Antworten.

Die Zuordnung der Eingänge und Variablen zur Steuerung hat geklappt. Zumindest werden keine Fehler mehr angezeigt.

Nun zu den nächsten Fragen.

Bei der Variablendeklaration gibt es die Felder Adresse, Initialisierung und Attribute. Wozu dienen sie?

Frage zum Zeitbaustein
Das Signal Q soll bei einem Signal an IN sofort 1 sein und nach der an PT definierten Zeit auf 0 gehen. Geht das Signal an IN vor Ablauf der Zeit PT auf 0 soll auch Q sofort 0 sein.
Einen passenden Baustein habe ich nicht gefunden.

Das geänderte Programm ist im Anhang.

Liebe Grüße - Wolfgang


----------



## Heinileini (3 November 2020)

Ratoncito schrieb:


> Das Signal Q soll bei einem Signal an IN sofort 1 sein und nach der an PT definierten Zeit auf 0 gehen. Geht das Signal an IN vor Ablauf der Zeit PT auf 0 soll auch Q sofort 0 sein.
> Einen passenden Baustein habe ich nicht gefunden.


Passend machen: TON verwenden, das Signal an IN zusätzlich auf ein UND geben und den Ausgang des TON negiert ebenfalls auf das UND. Ausgang des UND hat das gewünschte Verhalten.


----------



## Ratoncito (3 November 2020)

Hallo,

vielen Dank.

Ich habe vermutet, dass es einen fertigen Baustein gibt.

Bei der Suche bin auf TB gestoßen, hat allerdings ein etwas anderes Verhalten und war etwas versteckt.

Fragen:
1.) Warum wird dieser Baustein bei den Werkzeugen nicht angezeigt?
2.) Gibt es noch andere "versteckte" Bausteine und wo finde ich die?
3.) Bei Codesys gibt es eine Online-Hilfe mit Index. Gibt es diese auch als PDF? Habe sie leider nur ohne Index gefunden.

Liebe Grüße - Wolfgang


----------



## Heinileini (3 November 2020)

Vorhin stand in Deiner #7 noch "Das Signal ist ein verlängerter Impuls.", Wolfgang.

Worauf beziehst Du Dich damit? Auf das, wonach Du suchst oder das, was ich Dir geschrieben hatte?
Ich hatte Deine Frage als Frage nach einem nicht verlängerten Impuls verstanden und auch dementsprechend geantwortet.
Falls Du nach einem verlängerten Impuls suchst, könntest Du einen TOF als Basis nehmen und dabei beachten, dass beim TOF die Zeit mit der negativen Flanke des EingangsSignals gestartet wird.

Deine CodeSys-spezifischen Fragen kann ich Dir leider nicht beantworten.

Gruss, Heinileini


----------



## Ratoncito (3 November 2020)

Sorry, Du bist ja schneller als der Schall.

Ich hatte Unfug geschrieben, und daher den Teil gelöscht, als es mir auffiel. Deine Antwort war und ist korrekt.

Ich bin gerade dabei den ersten Teil meines alten Programms in e!Cockpit zu übertragen. Ist 1:1 leider nicht so ganz möglich, daher war ich gedanklich nicht so ganz bei meiner Antwort.

Liebe Grüße - Wolfgang


----------



## Ratoncito (3 November 2020)

Hallo,

ich habe mal ein kleines Programm geschrieben. Nun habe ich entdeckt, dass man wohl eine Simulation starten kann, ohne dass eine SPS angeschlossen ist. Das wollte ich direkt probieren.

In der Doku steht, dass man die Eingänge manuell belegen kann. 

Kann mir bitte jemand erklären wie das geht?

Das Programm ist im Anhang. Ist allerdings noch mehr oder weniger sinnfrei, es geht nur um ein wenig zu probieren.

Liebe Grüße - Wolfgang


PS ich glaube ich habe es gefunden


----------

