Brauche Hilfe bei einem Programm (Förderband, 2 Lichtschranken, Analogwerte)

Breakstuff

Level-1
Beiträge
13
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo :)

Ich habe vor lange Zeit mal mit S5 gearbeitet und muss jetzt einen Testaufbau mit einem Förderband per TwinCAT machen.
BC9000 und Komponenten sind im System Manager eingetragen und werden erkannt.
Zuordnung exportiert bzw im PLC importiert.


Meine Ausstattung:
1x BC9000
1x KL1408
1x KL2408
1x KL3102
1x KL9010


Programm zum Steuern des Förderbandes "eigentlich" fertig. Was heißt eigentlich? Es ist nicht schön aber für den Testaufbau sollte es reichen ;)
Aber eben noch nicht getestet da:

Eine Frage ist nun wie ich die Variablen deklarieren muss. Im Programm gibt es z.B. Lichtschranke Links & Rechts (SL & SR)
Diese sind ja durch TwinCAT automatisch angelegt worden beim Programm schreiben.
SL: BOOL;(*Lichtschranke links, schließer*) usw

Durch das importieren haben ich ja bei den Ressourcen den Reiter TwinCAT_Import der so aussieht:
VAR_GLOBAL (* DO NOT CHANGE THIS SHEET MANUALLY! *)
Klemme_4_KL3102_1_Status AT %IB0: USINT;
Klemme_4_KL3102_1_Daten_Ein AT %IB2: INT;
Klemme_4_KL3102_1_Kontrolle AT %QB0: USINT;
Klemme_4_KL3102_1_Daten_Aus AT %QB2: INT;
Klemme_4_KL3102_2_Status AT %IB4: USINT;
Klemme_4_KL3102_2_Daten_Ein AT %IB6: INT;
Klemme_4_KL3102_2_Kontrolle AT %QB4: USINT;
Klemme_4_KL3102_2_Daten_Aus AT %QB6: INT;
Klemme_2_KL1408_1_Eingang AT %IX8.0: BOOL;
Klemme_2_KL1408_2_Eingang AT %IX8.1: BOOL;
Klemme_2_KL1408_3_Eingang AT %IX8.2: BOOL;
Klemme_2_KL1408_4_Eingang AT %IX8.3: BOOL;
Klemme_2_KL1408_5_Eingang AT %IX8.4: BOOL;
Klemme_2_KL1408_6_Eingang AT %IX8.5: BOOL;
Klemme_2_KL1408_7_Eingang AT %IX8.6: BOOL;
Klemme_2_KL1408_8_Eingang AT %IX8.7: BOOL;
Klemme_3_KL2408_1_Ausgang AT %QX8.0: BOOL;
Klemme_3_KL2408_2_Ausgang AT %QX8.1: BOOL;
Klemme_3_KL2408_3_Ausgang AT %QX8.2: BOOL;
Klemme_3_KL2408_4_Ausgang AT %QX8.3: BOOL;
Klemme_3_KL2408_5_Ausgang AT %QX8.4: BOOL;
Klemme_3_KL2408_6_Ausgang AT %QX8.5: BOOL;
Klemme_3_KL2408_7_Ausgang AT %QX8.6: BOOL;
Klemme_3_KL2408_8_Ausgang AT %QX8.7: BOOL;
END_VAR

Kann ich jetzt einfach Klemme_2_KL1408_1_Eingang durch z.B. SL ersetzen oder wie bringe ich TwinCAT dazu zu erkennen welcher Ein- / Ausgang wozu gehört?

Eine zweite Frage ist für mich noch die Analogwert-Verwaltung.

Auf dem Förderband wird ein Teil hin und her bewegt, jedes mal wenn das Teil nach rechts fährt gibts nen Trigger und ein Analogwert 0 - 10 V wird auf den Eingang gelegt.

Dieser Wert sollte gespeichert werden und wird dann von einer software ausgelesen und dann wieder gelöscht.
Wie sowas funktioniert hab ich leider absolut keine Ahnung, ich habe auch schon die Infosys von Beckhoff angesehen aber dort steht nur wie man den KL3102 anschließen muss usw.

Ich würde mich freuen wenn mir jemand helfen könnte oder nen Tipp gebebn würden.

Danke schon mal
 
Das was du oben geschrieben hast ist die symbolische Zuordnung der E/As zu den gewünschten Namen

wenn du jetzt in deiner quelle:
Code:
[COLOR=#333333]Klemme_2_KL1408_1_Eingang AT %IX8.0: BOOL;[/COLOR]

durch
Code:
[COLOR=#333333]SL AT %IX8.0: BOOL;[/COLOR]

ersetzt kannst du zukünftig diesen als symbolischen namen des Eingang %IX8.0 verwenden.

Problem dabei ist das du nun alle verwendungsstellen prüfen solltest ob sie nun die neue benennung verwenden.

Zum Thema speichern von analogwerten empfiehlt es sich einen bedingten Move-Befehl zu verwenden, die speichervariable kann später durch einen beliebigen anderen bedingten befehl wieder genullt werden.

Aber hast du ein RI-Schema und ein Flussdiagramm erstellt aus dem der abzubildende Prozess hervorgeht oder gehst du nach Trial and Error vor?

Bei zweiterem wirds sehr schwer dir zu helfen, besser gesagt es ist nahezu unmöglich
 
In der Regel deklariert man seine E/A Variablen im PLC Programm.

Also z.B.
Lichtschranke1 AT%I*:BOOL;

Beim Kompilieren erzeugt TwinCAT die Konfig-Datei (.tpy Datei) für das Projekt.
Diese liest man im TwinCAT Systemmanager unter dem Punkt SPS-Konfiguration ein.

Danach kann man den einzelnen Kanälen seiner EA_Klemmen die passenen Variablen zuordnen.

z.B.
Klemme1 - > Eingang1 -> Variable verknüpfen
da öffnet sich ein neues Fenster und man bekommt alle Inputvariablen des Projekts, die den passenden Typ haben und noch nicht verwendet wurden, angezeigt.
-> die passende Variable auswählen und OK -> die Variable ist jetzt mit diesem Kanal verknüpft.

Das macht man mit allen anderen Variablen.
Dann: Zuordnung erzeugen -> Zuordnung prüfen -> Konfiguration aktivieren
Der Systemmanager läd dann die Konfiguration auf die SPS und startet diese neu.
Danach sollten im PLC Programm die Ein- und Ausgänge über die zugehörigen Variablen gelesen bzw. gesteuert werden können ......
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Vielen dank erst mal für die schnellen Antworten :)
Hab die Variablen nach der Anleitung von MasterOhh deglariert. Förderband macht nun das was es soll.

Ein Problem habe ich aber, wenn ich den BC9000 bzw die Anlage vom Strom trenne und dann wieder Strom anlege startet das Programm bzw die SPS nicht.
Ich muss mich immer erst Verbinden, online gehen und auf Starten klicken.

EDIT:
Noch mal Bootprojekt erstellt und aufeinmal gehts :)
 
Zuletzt bearbeitet:
In TwinCAT PLC Control: Einloggen und dann Bootprojekt erzeugen.
Im Systemmanger: System-Konfiguration -> Boot-Einstellungen -> bei Autoboot das Feld "Run Modus" aktivieren (ist jedenfalls bei den CXen)

Danach sollte der BC nach dem Einschalten automatisch das Programm (Bootprojekt) starten.
 
Ich habe ein neues Problem :/

Die Variablen habe ich über den Systemmanager exportiert und dann im PLC importiert.
Da man ja die TwinCAT_Import nicht ändern soll habe ich eine zuweisung gemacht einmal für Ausgaenge und einmal für Eingaenge.
Diese werden über Main (prg) aufgerufen
Im FUP werden dieses aber nicht korekt verknüpft. Sprich bei Eingaenge sehe ich wenn sich der Wert von False auf True ändert aber das kommt im FUP nicht an :(

Warum wo liegt mein Denkfehler?

problem.jpg
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Warum exportierst du Zuordnungen aus dem System Manager um diese dann wieder in dein PLC Projekt zu importieren??

Du hast ja schon Symbole angelegt, für die absolute Adressen erzeugt werden, warum also diese absoluten Adressen zurückimportieren?? Das macht für mich keinen Sinn und hebelt das Zusammenspiel PLC und SysManager aus.

Im PLC Projekt hast Du ja immer noch deine Symbole um Zustände zu prüfen etc. warum nimmst du nicht deine ursprünglichen Symbole her?

Ich glaub du drehst Dich ein wenig im Kreis.


1. Symbol in PLC deklarieren:
Symbolname at %I* : Datentyp --> Eingang
Symbolname at %Q*: Datentyp --> Ausgang

2. mit Symbolnamen deine FB PRG etc aufbauen und du musst dir um die Zuordnung keine Gedanken mehr machen, dafür ist der System Manager da.

mit absoluten Adressen im PLC Projekt machst Du Dir das Leben unnötig schwer.

ließ dir den Post von MasterOoh nochmal durch :)
 
Zuletzt bearbeitet:
Zurück
Oben