Energieberechnung verschiedener Motoren

Markus1474

Level-1
Beiträge
7
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,
Ich habe ein Problem, ich besuche die Technikerschule und wir haben eine Aufgabe bekommen. Leider fehlt mir schon der Ansatz für diese Aufgabe.

Wir sollen den Energieverbrauch von 4 Motoren berechnen und die in den Datenbausteinen auslesen können. Die Motoren haben eine Leistung von 1KW,3KW,5KW und 7KW. Der Schalter S1 schaltet alles ein und setzt bei nicht betätigung auch wieder alles zurück.

Wir haben die Aufgabe zwar ansatzweise besprochen aber irgendwie bekomme ich das nicht mehr hin ... Ich weiß noch das wir die Werte von Integer in eine Realzahl bringen sollen, aber ich weiß leider gar nicht, wie ich erstmal dahin kommen soll :-/

Markus
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Der Ansatz der Aufgabe

Ich habe mir leider auf die schnelle nur einpaar Notizen machen können, deshalb ist es nicht viel was ichschreiben kann.

Also unser Lehrer hat uns die ersten 2 -3 Netzwerke vom "Ob1" angemahlt leider weiß ich da schon nicht welchen Baustein er beim ersten Netzwerk verwendet hat, weil das nicht angeschrieben worden ist. Das erste Netzwerk wird wohl zum umrechnen da sein von Leistung in Energie
E1=p*t Energie Motor 1 =1 KW *1s
Die Einzelnen Energien sollen hinterher noch durch 3,6 geteilt werden, um auf die KW/H zukommen.

Netzwerk 1:
Eingänge von dem Baustein sind:
S1-- //Motor ein
P1-- //Motorleistung 1kW
M100.5-- //Taktmerker
Nullsetzen-- // vermutlich "Reset" also Schalter "S1" aus

Als Ausgang kam ein Datenwort ....

Netzwerk 2:
Baustein ADD_R
Eingänge:
E1-- //Energie vom ersten Motor
E2-- //Energie vom zweiten Motor
Ausgang:
MD50-- // Denke mal einfach einen Merker nach wahl

Netzwerk 3:
Baustein ADD_R
Eingänge:
E3-- //Energie vom ersten Motor
E4-- //Energie vom zweiten Motor
Ausgang:
MD60-- // Denke mal einfach einen Merker damit die hinterher zusammen gerechnent werden können

IM FB hatte er folgende Bausteine verwendet und noch weitere die ich mir nicht merken konnte =):
Netzwerk1: Move ----> Leider kann ich mit dem Baustein schon nicht viel anfangen
Aufgabe dieses Baustein soll wohl sein, den Motor1 einzuschalten ...

Netzwerk2: Move ----> Wenn Motor 1 nicht an ist soll zurück gesetzt werden

Netzwerk3: R+ ----> kA welcher Baustein das ist ... finde den nicht unter der Liste
Da kommt wohl der Taktmerker in einsatz :-/ naja ich blicke leider nicht mehr durch... vielleicht versteht ihr da was ... ich hoffe es auf jedenfall =)

Gruß Markus
 
Ich setze jetzt mal eine S7-SPS vorraus.
Der M 100.5 wäre der 1s Merker des Taktmerkerbytes. Dies muss in der Hardware-Konfiguration des Projektes angelegt werden.

Wenn dann der Motor läuft und der Taktmerker eine positive Flanke bringt, kannst Du ein Datenbausteinwort hochzählen. Somit kannst Du die verbrauchte Energie ermitteln.
In etwa so:

//Sek.merker flanken
u m 100.5
fp m 10.0 (Flankenhilfsmerker)
= m 10.1 (Flanke auf Sekundenmerker)

//Zählen
u S1 (Motoren ein)
un m 10.1
spb nix

l db1.dbd0
l1.000000e+000
+R
t db1.dbd0 (Speicher für den gezählten Wert)
nix: NOP 0

//Umwandeln in KW/h
l db1.dbd0
l 3.600000e+000
/R
t db1.dbd4 (Speicher für berechneten Wert in KW/h)

für die anderen Motoren musst Du natürlich andere Werte beim Addieren einsetzen. Aber das wäre doch schon mal ein Anfang.
Der Rest ist ja eigentlich nur ein Addieren der 4 Werte um den Gesamtverbrauch zu ermitteln.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Habe mir das nochmal angeschaut

Da ich in FUP programmiere, frage ich nochmal nach ob ich das richtig übersetze.

Also im ersten Netzwerk wird ja nur der Taktmerker ins Spiel gebracht.

Im zweiten Netzwerk wird doch nur mit dem S1 der/die Motoren eingeschaltet bzw alles wieder auf Null gesetzt oder? was heißt "spd Nix" oder kann da auch was anderes stehen außer nix?

Soweit ich das nun richtig verstehe wurde beim 3. Netzwerk in FUP-Sprache ein Add_R Baustein benutzt wird wo die beiden Werte DB1.dbd0 und 1 sind.
Oder heißt das nur das der DB1 geladen wird und die 1 KW dort gespeichert wird?
Das "t db1.dbd 0" ist das der Ausgegebene Wert in FUP? quasi out?

Denletzten Baustein kann ich mir schon denken.

Eine dumme Frage habe ich noch ^^ und zwar programmiere ich das doch alles im FB oder?

Gruß Markus
und danke für die Hilfe =)
 
Morgen, ich versuch dir das mal mit meinen begrenzten Wissen etwas näher zu bringen. Ich bezieh mich auf das von Lars.

NW1: Hier wird ein Merker erzeugt der pro Sekunde einmal an ist um diesen für die Zeitmessung zunutzen.

NW2: Wenn der Motor an ist und die Flanke vom Tankmerker kommt, wird der Wert des ersten Motoers geladen und dann pro Sekunde um eins erhöht und wieder in die selbe Adresse geschrieben. SPB bedeutet "Springe Begingt" und "nix" kannste auch durch was anderes ersetzten, wie z.b. m001, für Motor 1.

NW3: Berechnet dann die Leistung des Motoers und schreibt diese in das nächste Datendoppelwort, also das dbd.

Für den nächsten Motor kannste dann den eigentlichen AUfbau wieder nehmen, musst allerdings die Adressen der Datenbausteine anpassen, also z.b. db1.dbd8 und db1.dbd8 für Motor 2 und db1.dbd16 und db1.dbd20 für Motor 3.

Ich würd das auch in einem Fb machen, geht aber bestimmt auch mit glob. Merkern in einem FC.
Bis denne
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten morgen alle zusammen,
Danke für eure Hilfe.ich werde das heute abend ausprobieren.

Ich habe leider noch ein Problem. Ich weiß leider nicht wo ich den letzten Befehl "nix: NOP 0 in Fup hinschreiben muss. Und was bedeutet das?
Gruß Markus
 
"Nix" ist das Sprungziel, also in FUP unter Sprünge "Label" und NOP0 ist eigenlich für die Darstellung von AWL in FUP. NOP0 bedeutet "Nulloperation".

Also in deinem Fall einfach Label "m001" oder so nutzen.
 
ok die 3600 habe ich auch genommen. Leider habe ich immer noch das Problem mit dem Netzwerk 3 ...
Ich habe jetzt einen ADD_R Baustein erstellt.

Auf der Eingangsseite habe ich den Wert von 1 und den DB1.DBD0 eingesetzt.

Auf der Ausgangsseite habe ich bei "OUT" wieder den DB1.DBD0 eingesetzt. nur wo muss der Sprung hin oder das "Label" wird das einfach da nur reingeschrieben?

Gruß Markus
 
Die Geschichte mit dem Sprung resultiert doch daraus, dass ich in AWL programmiert hatte.
In deinem Fall benötigst du den Sprungbefehl nicht.
Du musst die Flanke des Sekundenmerkers auf den EN-Eingang deines ADD_R Bausteins legen.
Sonst wird deine 1 bei jedem SPS-Zyklus zum Datenbausteindoppel addiert.
Und den S1 ebenfalls, also UND-Verknüpft mit der Flanke, damit nur addiert wird wenn die Motoren laufen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Eine tolle Funktion ist übrigens auch der Pfeil mit dem Fragezeichen. Einfach mal anklicken und dann im Bausteinbehälter auf den ADD_R klicken. Dann kriegst du eine Hilfe zu dem Baustein. Das hilft meist schon weiter.
 
Hi, die Hilfe von Siemens ist super und ich benutze diese auch so gut es geht, aber da ich leider nicht so viel Ahnung von AWL habe wusste ich nicht das der Sprung daraus resultiert. Ich probiere mich weiter danke euch.

Gruß Markus
 
Zurück
Oben