Hallo Harald,
Danke für deine Antwort.
Ich sehe ich muss dann doch präziser werden.
Ich schreibe einen SCL Baustein der mir von einen angeschlossenen Sensor Messwerte ich einen Datenbaustein speichert.
Mein System:
Code:
S7 Distributed Safety Programming |
V5.4 + SP5 |
K5.4.5.0_3.5.0.2 |
K5.4.5.0 |
Automation License Manager |
V5.1 + SP1 |
K05.01.01.00_01.10.00.06 |
K5.1.1.0 |
S7-PLCSIM |
V5.4 + SP5 + Upd1 |
K05.04.05.01_01.02.00.01 |
K5.4.5.1 |
S7-PDIAG |
V5.3 + SP6 |
K05.03.06.00_01.01.00.09 |
K5.3.6.0 |
S7 F ConfigurationPack |
V5.5 + SP6 |
K5.5.6.0_9.1.0.1 |
K5.5.6.0 |
S7-GRAPH |
V5.3 + SP7 |
K5.3.7.0_1.2.0.1 |
K5.3.7.0 |
S7-PCT |
V2.3 |
V02.03.00.00_01.18.00.01 |
V2.3.0.0 |
S7-SCL |
V5.3 + SP6 |
K05.03.06.00_01.05.00.01 |
K5.3.6.0 |
STEP 7 |
V5.5 + SP2 + HF1 |
K5.5.2.1_8.1.0.1 |
K5.5.2.1 |
Mein Code:
Code:
Aktuell_Adresse := (BYTE_TO_INT(STATUS.BYTE_3_BYTE_JOB_Number)-1)*2400; // Wert 1 speichern
t_real := DWORD_TO_DINT(DATA.BYTE_02_MESSWERT_01)*korr_fact/100;
daten_db.dd[Aktuell_Adresse] := REAL_TO_DWORD(t_real) ; // 1. Wert
Wenn jetzt meine "Job_nummer" die 15 erreicht macht es "puff" und die sps (416-F) stoppt.
Das Problem ist das laut Anleitung die indize als INT übergeben werden muss.
Bei mir die variable "Aktuell_Adresse".
Sobald der Wert von "Aktuell_Adresse" die 32767 überschreitet passt die Adressierung des Datenbausteins nicht mehr.
Ich hoffe jetzt ist es ein bisschen verständlicher.
Hier noch das Dokument von Siemens:
SCL_d.jpg
Gruß Tom
Bookmarks