so langsam bin ich echt am verweifeln.
Ich blick einfach garnicht mehr durch.
Ich finde deinen Datenbaustein "Schieneregister" nirgens.


Und ich weiß auch garnicht wie ich einen Datenbaustein erstellen kann und auch abspielen.
Ich habe schon alle Funktionen durchgeschaut aber keinen gleichen Datenbaustein gefunden.
Ich bin noch glaub zu unerfahren für sowas.
Und das oben mit der Schnittstelle bekomme ich auch nicht hin. Ich schreibe die gleichen Begriffe rein die du auch reingeschrieben hast, aber da kann ich dann den Defaultwert nicht ändern und auch keine häckchen setzen bei Sichtbar...
Ich weiß nicht wie ich das hinkriege, ich hab bisher auch noch nie mit Datenbausteine gearbeitet.
Das ist genau das, was ich hier:
Da er aber bis dato noch nichts mit SCL gemacht hat, möchte er lieber eine Lösung in FUP. Obwohl m.M.n. seine Kenntnisse da auch nicht viel mehr als in SCL sind. Es würde also nicht viel Unterschied machen, obe er sich mit SCL oder FUP beschäftigt.
gemeint habe. Auch Dein Wissen in FUP tendiert gegen Null. Es macht überhaupt keinen Unterschied, in welcher Sprache Dir das Programm serviert wird.
Das kann man aber alles lernen.
Also ich will jetzt die Realisierung mit Siemens LOGO machen,
Immer diese Meinungsumschwünge.
aber trotzdem möchte ich gerne wissen, wie ich sowas in S7 programmieren kann.
Kannst du mir helfen bei dieser Aufgabe?
Am besten mit einzelnen Schritten wie ich das öffne etc.
Neues Projekt anlegen und die zu verwendende CPU auswählen, hast Du doch schon hinbekommen, oder? Ich nehm' mal irgend eine S7-1500, weil die sich im Gegensatz zu einer 1200er simulieren läßt (in Natura mußt Du natürlich genau die auswählen, die Du auch hast), und gebe ihr den Namen "Test-CPU".
In der Projektansicht erst noch per Drag & Drop Ein- und Ausgänge aus dem Hardwarekatalog zur Gerätekonfiguration hinzufügen (bei der 1200er wahrscheinlich nicht notwendig):
Jetzt klickst Du erst mal die CPU mit Rechts im linken Projektbaum an und wählst die Eigenschaften aus. Dort aktivierst Du sowohl das System- als auch das Taktmerkerbyte. Speziell Letzteres brauchen wir (zumindest testweise) für den Takteingang des SCL-Bausteins. Schaden tun beide nicht, deswegen aktiviere ich sie eigentlich immer.
Danach gehts Du links auf Programmbausteine und "Neuen Baustein hinzufügen". FB auswählen, Sprache auf SCL stellen und dem FB einen Namen geben:
Im FB als erstes die Schnittstelle öffnen und die gewünschten Variablen-Namen und deren Datentyp! eintragen. Und Kommentar ist immer sinnvoll. Den Rest macht TIA erst mal allein. Nur bei den beiden Variablen Schritte und Laenge gibst Du den Defaultwert vor. (Wenn Du Dir die Variablen in das Editor-Feld unterhalb kopierst, brauchst Du beim Eintragen nicht ständig zwischen den TIA- und 'nem anderen Fenster hin- und herwechseln.)
Code:
//[FONT=Courier New]INPUT:
// Start1 BOOL Startbedingung 1
// Start2 BOOL Startbedingung 2
// Takt BOOL Impuls-Eingang
// Schritte INT := 100 Impulszahl bis zur Ausgabe
// Laenge INT := 4 Ausgabelänge des Impulses in Takten
//OUTPUT:
// Ausgabe BOOL Impulsausgabe
//STATIC:
// Takt_Old BOOL Flankenmerker für Eingang Takt
// Start BOOL Startbedingung erfüllt
// Schieberegister ARRAY [0..500] OF BOOL statische Variablen
// Ausgangszaehler INT Zähler für Ausgabelänge
//TEMP:
// Schieben BOOL positive Flanke Eingang Takt
// Index INT Array-Zeiger
[/FONT]
Variablen wieder aus dem SCL-Feld löschen und dafür das eigentliche Programm hinein kopieren.
Code:
[FONT=Courier New] // Schrittbegrenzung
IF #Schritte > 500 THEN
#Schritte := 500;
END_IF;
// Startbedingung erfüllt?
IF #Start1 AND #Start2 THEN
#Start := true;
END_IF;
// Flankenerkennung Eingang Takt
#Schieben := #Takt AND NOT #Takt_Old;
#Takt_Old := #Takt;
// Schieberegister
IF #Schieben THEN
// Register weiterschieben
FOR #Index := #Schritte TO 1 BY -1 DO
#Schieberegister [#Index] := #Schieberegister [#Index - 1];
END_FOR;
// Startbedingung ins Schieberegister übernehmen
#Schieberegister [0] := #Start;
#Start := false;
// Ausgang Schieberegister
IF #Schieberegister [#Schritte] THEN
#Ausgangszaehler := #Laenge;
END_IF;
// Ausgabe
#Ausgabe := #Ausgangszaehler > 0;
// Zähler Ausgabelänge
IF #Ausgabe THEN
#Ausgangszaehler := #Ausgangszaehler - 1;
END_IF;
END_IF;[/FONT]
Jetzt den OB1 "Main" im Projektbaum doppelt anklicken, damit er im Editor-Feld angezeigt wird. Eventuell die Programmiersprache durch Rechtsklick auf den OB1 im Projektbaum auf FUP wechseln. Danach den FB1 "Schieberegister" aus dem Projektbaum per Drag & Drop ins Netzwerk 1 des OB1 im Editor ziehen. TIA fragt mit einem Pop-Up nach dem Instanz-DB. Einfach bestätigen und TIA legt den DB automatisch für Dich an.
Jetzt noch die Ein- und Ausgänge des FBs beschalten und die von TIA automatisch vergebenen Symbole "Tag_x" unter PLC-Variablen in aussagekräftigere Namen ändern.
Dann alles übersetzen:
