FB 42 Schrittregler

geduldiger

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

es heißt ja man muss den FB 42 CONT_S in einem Weckalarm OB, am besten OB 35 aufrufen. Kann man stattdessen dort auch die einzelnen FC's aufrufen in denen ich die FB 42's, die ich verwende, aufgerufen und parametriert hab? :confused:

danke im voraus für Hilfe

Mfg​
 
Zuviel Werbung?
-> Hier kostenlos registrieren
danke erstmal,

nun hab ich die FB’s aufgerufen und möchte meine parameter übergeben, da gibt es nun zum beispiel den instanzdatenbaustein des Reglers. Kann ich trotzdem aus anderen Bausteinen datenwörter an die eingänge und ausgänge des reglers legen? Und was passiert dann mit den einstellungen im “PID parametriern“ Tool von siemens, da stehen ja werte drin die ich dann nicht benötige für den regler, werden die dann überschrieben?
 
Hallo,

wenn du eigene Parameter-DB verwenden willst, würd ich zunächst den Regler ohne Übergabenparameter mit dem Tool von Siemens beobachten und einstellen.
Sobald der genügt schnell und Stabil ist kannst du deinen Paramter-DB aufrufen und an den Eingängen aufschalten. Die gefundenen Werte lassen sich dann als Anfangswerte im Parameter-DB eingeben.
Vorteil: Auch nach einem CPU-Tausch sind die Werte sofort wieder verfügbar.

hth
 
beim mir sieht dass zurzeit so aus:

CALL FB 42 , DB102

COM_RST :=
LMNR_HS :=
LMNR_LS :=
LMNS_ON :=
LMNUP :=
LMNDN :=
PVPER_ON:=
CYCLE :=
SP_INT := DB33.DBD56
PV_IN := DB33.DBD54
PV_PER :=
GAIN := DB33.DBD64
TI := DB33.DBD66
DEADB_W := DB33.DBD72
PV_FAC :=
PV_OFF :=
PULSE_TM:=
BREAK_TM:= DB33.DBD82
MTR_TM :=
DISV := MD230
QLMNUP := A1.5
QLMNDN := A1.6
PV :=
ER := MD220

kann man das so machen?
 
oha, jetzt bin ich verwirrt:confused:

wie kann ich denn dann die parameter des ehemals s5 DB33 für die Regelung nutzen?

DB33.DBB54 nimmt er ja nicht an

und im DB 33 gehn die adressen 0.0, 2.0, 4.0, 6.0 .....
 
Zuletzt bearbeitet:
Die Parameter in der S5 sind je nach Regler Festpunktzahlen oder Gleitpunktzahlen.
Wieso machst Du nicht einen neuen DB33 und trägst die Parameter dort ein?
oder lass die Parameter ganz weg, und beschreibe den InstanzDB vor dem Aufruf.

zB:

L 23.0 //Sollwert
T DB102.SP_INT

L 12.0 //Verstärkung
T DB102.GAIN

usw.


Dann FB aufrufen!

Zusätzlich kannst Du die Variablenzuweisung vorübergehend als // kommentieren und mit dem Optimierprogramm werken bis Du die gewünschte Prozessoptimierung erreicht hast.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
das mit L 23.//sollwert und so funzt glaub ich net weil sich die werte ja wärhrend des programmablaufs ständig ändern, deswegen ja auch z.B. der DB 33 wo solche werte gespeichert werden, und noch fünf weitere für die anderen regler.

das mit dem DB33 neu schrieben, meinst du damit, dass ich quasi z.B. das, was an der stelle 2.0 im DB steht im neuen DB33 an die stelle 4.0 schreibe und immer so weiter in 4er schritten? und müsste ich das nicht mit allen konvertierten DBs anstellen?
 
Ich kenne das bestehende Programm nicht, aber:
an der Stelle Deines alten Programmes wo der DB33 beschrieben wird kannst Du ja auch den DB102 beschreiben.

L 23.0 war ja nur ein Beispiel.

Vielleicht verstehe ich das Problem aber nicht.
 
Das is ne gute idee mit dem beschreiben an der stelle, an der der Alte DB 33 beschrieben wir,

das werd ich mir jetzt mal ansehn

Danke

kurz noch zu den schmiermerkern, da hab ich im forum gelesen, dass man da was in s7 ändern müsste mit dem retten und dem laden , das hab ich einfach so konvertiert
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

die Frage ist, was funktioniert wann.

1. funktioniert so nicht, wenn du mit PID-Parametrieren arbeiten willst.

2. Die Parameter liegen im Real Format - daher sind die auch 4 Bytes lang
3. Definiere dir dazu Symbol, die sich auch noch in 2 Jahre lesen lassen, mit DB33.DBD56 kann keiner mehr was anfegen.
4. Beschalte auch die Einänge mit den Defaultwerten

Gruss & hth

 
DB neu erzeugen

@ geduldiger,

mit dem "alten" DB wird das nichts. Es wird sich nicht vermeiden lassen, einen neuen Instanz-DB zum Regler zu erzeugen. Dann sind auch Real-Variablen dort vorgesehen, wo sie hingehören.
Zum Thema Schmiermerker: Die gehören wirklich zur S5 und machen bei S7 keinen Sinn. Dafür gibt es lokale und statische Variablen oder wenn es nicht anders geht auch globale Datenbausteine.
 
heißt das, dass ich alle DB's neu schreiben muss die durch das konvertierungsprogramm gelaufen sind und mit denen das programm zurzeit arbeitet? oder gilt das nur für die DBs mit denen ich die Regler beschreiben möchte?

und die schmiermerker MW 200-250 werden auch überall im programm verwendet. kann ich die nicht einfach so lassen? das MW 200 z.B. gibts ja bei s7 auch oder verstehe ich da was falsch.

wie genau schreibe ich die auf lokale oder statische variablen um

Mfg
 
Zuviel Werbung?
-> Hier kostenlos registrieren
... die schmiermerker MW 200-250 werden auch überall im programm verwendet. kann ich die nicht einfach so lassen? das MW 200 z.B. gibts ja bei s7 auch oder verstehe ich da was falsch.

Selbstverständlich kannst du die MW's so lassen wie sie sind.
Schmiermerker sind ganz normale Merker. "Schmieren" nur eben deshalb, weil viele Programmierer die Angewohnheit haben, Verknüpfungs-Zwischenergebnisse in irgendwelchen Bits zwischenzuspeichern um sie dann ein paar Netzwerke später noch mal aufzugreifen. Meisst erhalten diese "Zwischenergebnisse" dann keinen richtigen Namen, sondern die Bezeichnung Schmiermerker. Ob das guter Programmierstil ist sei dahingestellt ...
Bei Step7 hast du die Möglichkeit innerhalb eines jeden Bausteins im Bausteinkopf unter TEMP unterschiedliche Variablen beliebigen Formats anzulegen, die du nur in diesem Baustein benötigst (LOKAL) und in denen du Zwischenergebnisse ablegen möchtest. Aber Vorsicht : beim erneuten Aufruf desselben Bausteins haben diese Variablen (wenn nicht gezielt zugewiesen) undefinierte Zustände oder Inhalte ...!

STATISCHE Variablen hast du innerhalb eines FB's. Sie werden im Bausteinkopf unter STAT angelegt. Diese Variablen behalten ihren zuletzt zugewiesenen Inhalt auch beim nächsten Aufruf des FB's, da sie in einem sogenannten Instanz-DB hinterlegt werden, den du für jeden FB vorgeben musst (beim Aufruf desselben).
 
Zurück
Oben