Temp "Hardcore" benutzen

Fanta-Er

Level-2
Beiträge
198
Reaktionspunkte
16
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo.....

Ich habe zwei Fragen:

zu1: Ich will/muss eine "Eierlegendewollmilchsau" Programmieren.

Zur Aufgabe: Wir stellen ein Messcomputer in unserer Firma her und der redet uber RS232 mit der S7.
Er liefert Datenpackete mit 82 Char. Immer gleiche Anzahl was die Sache beding vereinfacht. Der Messcomputer hat aber viele Messprogramme und Messkreise die ich Archivieren muss und auch ordnen. Die Information welches Ergebniss und was er gemessen hat steht in den char´s drin.
Ich will nun einen FC/FB stricken der die Daten liest und abhängig was drin steht in DB´s ablegt. Des weiteren überprüft der Baustein richte Datenreihenfoge, länge, und Inhalt. Soweit ist es es auch kein Problem, aber ich muss die 82char´s kurz in die Temps legen.

Ab S7-300 Stehen, laut Hardwarekatalog, mindestens 255 Bytes Localdaten zur Verfügung.
Ich weis aber das verschiedene Sachen vom System dort schon abgelegt werden. z.B.ANY-Pointer, In-Outparameter AR1/AR2 bei verschiedenen Anwendungen, Bausteinaufrufe und unter Umständen sogar Stat-Variablen.
(Teilweise nur bei Rechnungen und verschiedenen Sonderbefehlen)

Wer kann mir sagen wo ich ungestört mit meinen Pointer rumkopieren kann ohne mich selbst wieder zu überschreiben.????????????????

Gibt es eine Liste von Localbereichen von denen ich die Finger lassen sollte????

Welchen Bereich benutzen AR1/AR2 wenn ich sie BEIDE benutzen will.
(Problem mit dem zerstören der Temp durch Nutzung falschem Addressregisters dürfte bekannt sein)

Ich muss alles in einem Baustein verpacken und der muss Speicher SPAREND aufgebaut sein. d.H. möglichst keine/kaum Stat-variablen oder Zusätzliche DB´s. Mehrfach indirect aufrufbar.


zu2: Ich weiss nicht ob sonst noch jemand das Problem kennt, ich habe es am laufenden Band. Der Kunde fordert:
Möglichst alles in KOP/FUP. Super.......
Wenn ich nun sehr viel Move, Timer usw benutze belegen die für ihre "BILDCHEN" Temp´s. Wenn ich nun beim Programmieren selbst Temp´s nach deklarieren will schreit Step 7: Localvariable wird im absoluten Temp bereich bereits genutzt.

Wie kann ich entweder die Temps der "BILDCHEN" verschieben oder die Addresse meiner Temp´s selbst zuordnen?????

Für jeden Tipp/Link währe ich sehr Dankbar.

Gruss Fanta-Er

P.S. Rechtschreibfehler sind gewollt. Wer sie findet darf sie behalten. :)
 
Zuletzt bearbeitet:
temp

Hallo Fanta-Er,

wenn du schön alle temp.Variablen die du verwendest deklarierst wird diese Meldung (Localvariable wird im absoluten Temp bereich bereits genutzt.) nicht kommen. Voraussetzung ist dass du neue Temp-Variablen in der Sprache einfügst in der S7 auch seine temp wegen der Zwischenergebnisse eingefügt hat. Also nie temp. Variablen in AWL einfügen wenn man vorher in KOP/FUP programmiert hat.

MfG
André Räppel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Zu 1:

Kommt drauf an. Wenn du bei Siemens bleiben willst/musst nimm ne 400. Preiswerte Alternative Vipa Speed7-CPU's, die haben alle 8192 Byte Lokaldaten (nebenbei auch 2048 Prozessabbild). Das gilt auch schon für die kleine 313SC/PtP die jetzt rauskommt.;) SPS'en sind zur Stringverarbeitung eben leider nur bedingt geeignet, besonders die kleinen 300er von Siemens.:???:
 
:))

Danke für den Tipp mit dem Sprachumschaltung......hab es es ausprobier und:



ES FUNKONIERT:ROFLMAO:


Das einzige was mich noch weiter in den Himmel heben könnte, wäre eine Liste oder Link mit den Localvariablen die vom System genutzt werden...AR1/AR2 usw..(siehe oben).

Sry für den spähten Dank...war im Ausland.
IB
 
Ar1, Ar2, Akku1,Akku2... usw... wird nicht in den Lokalvariablen abgelegt sondern im Statuswort, welches du nicht mit Lokalvariablen überschreiben kannst, also alles was du als lokalvariable anlegen kannst kannst du auch benutzen. Nur beim FB musst du aufpassen, weil dieser auch das AR2 intern benutzt und dieses überschreiben kann.(speziell Siemens FBs machen das)
Wenn du im Baustein die Lokalvariablen direkt aufrufst
z.B.

L LW 0

oder

u L 0.0

kommt immer der Hinweis beim ändern der Deklararation das diese auch absolut verwendet werden. Das heisst noch nicht das irgendwas überschrieben wird sondern hilft nur den vergesslichen :)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn ich Kunden habe, die ALLES in KOP/FUP fordern, dann mache ich alle Bausteine zu (KNOWHOW-Schutz), die AWL-Code enthalten und rufe diese mit FUP/KOP auf. Meist lassen sich die Kunden aber überzeugen, daß nicht ALLES in KOP/FUP auch wirklich sinnvoll ist und ich darf dann bestimmte Teile in AWL schreiben.

PS: Für Stringverarbeitung kann man die IEC-Functions aus der Standard Library ganz gut nutzen.
 
Zurück
Oben