CPU313C und SCL?

L

linax

Guest
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi!
Weiß jemand zufällig ob ich eine CPU313C in SCL programmieren
kann ?
Ich bekomme nämlich immer Fehlermeldungen wenn ich ein Programm
in die CPU lade obwohl der Compilerlauf fehlerlos ist.

By!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wo genau hast du das gelesen?
Ich habe nämlich gehört das erst ab CPU314 eine SCL-Programmierung möglich ist.
Ich wäre natürlich froh wenn es irgend wie gehen würde.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,

es geht definitiv, schon gemacht !

Interessant wäre aber:

Welche Fehlermeldungen kommen überhaupt ??

Programm vielleicht zu groß für Speicher ?
Bausteinnummern im erlaubten Bereich?
Merker/Zeiten/Zähler im erlaubten Bereich ?

Fehlen FC/SFC, die über den Compiler aufgerufen werden, aber die CPU nicht kann ?

Ein paar Info's wären da schon nützlich !

Gruß Jörg
 
Vielen Dank erst einmal für die vielen Tip's.
Ich bin noch nicht so vertraut mit der S7 und überhaupt mit der Programmierung einer SPS.
Da ich aber früher mit C und VisualBasic gearbeitet habe möchte ich schon auch mit SCL
programmieren.

Also beim Übertragen eines fehlerfrei compilierten Programmes, das einfach nur eine Eingabebyte
liest und es an einer Ausgabebaugruppe wieder aus gibt, kam die Fehlermeldung das OB1 nicht kopiert werden konnte.
Ich habe die SPS mehrmals aus und wieder ein geschalten aber die Fehlermeldung beim laden
des Programmes war immer die gleiche.
Dann dachte ich das es daran liegt das die CPU313C nicht in SCL programmiert werden kann aber das kann es ja wohl nicht gewesen sein.
Alle Programme die ich bis jetzt in AWL geschrieben habe liefen anstandslos.
Vielleicht hat noch jemand einen praktischen Hinweis was man machen könnte ?
 
Ich habe hier noch die präzise Fehlermeldung:
Länge der Lokaldaten oder Schreibschutzkennung ist fehlerhaft!

Vielleicht kommt das ja jemand bekannt vor!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Bingo....

Hi linax,

Du hast wohl den OB1 in SCL geschrieben ?!

Hast Du dabei auch daran gedacht, daß die OB's bestimmte, fest definierte Lokalvariablen brauchen ?

Für OB1:

VAR_TEMP
OB1_EV_CLASS : BYTE ; //Bits 0-3 = 1 (Coming event), Bits 4-7 = 1 (Event class 1)
OB1_SCAN_1 : BYTE ; //1 (Cold restart scan 1 of OB 1), 3 (Scan 2-n of OB 1)
OB1_PRIORITY : BYTE ; //1 (Priority of 1 is lowest)
OB1_OB_NUMBR : BYTE ; //1 (Organization block 1, OB1)
OB1_RESERVED_1 : BYTE ; //Reserved for system
OB1_RESERVED_2 : BYTE ; //Reserved for system
OB1_PREV_CYCLE : INT ; //Cycle time of previous OB1 scan (milliseconds)
OB1_MIN_CYCLE : INT ; //Minimum cycle time of OB1 (milliseconds)
OB1_MAX_CYCLE : INT ; //Maximum cycle time of OB1 (milliseconds)
OB1_DATE_TIME : DATE_AND_TIME ; //Date and time OB1 started
END_VAR


wenn Du die nicht in Deiner SCL-Quelle definierst, gehts nicht.

Ich hab mir angewöhnt, die SCL-Programmteile nur in FB/FC zu schreiben, die OB's jedoch in AWL. Dann braucht man sich um die System-Lokalvariablen nicht zu sorgen.

Gruß Jörg
 
Steht im SCL-Handbuch !

-----
2.12 Erstellen des Organisationsbausteins ZYKLUS
Aufgaben des OB ZYKLUS
Ein OB1 wurde gewählt, weil er zyklisch aufgerufen wird. Mit ihm werden folgende
Aufgaben für das Programm realisiert:
· Aufruf und Versorgung des Funktionsbausteins ERFASSEN mit Eingabedaten
und Steuerungsdaten
· Übernahme der Ergebnisdaten des Funktionsbausteins ERFASSEN
· Ausgabe der Werte zur Anzeige
Am Anfang des Vereinbarungsteils steht das temporäre Datenfeld mit 20 Byte
"systemdaten".
-----------

Die Definition des Systembereiches, die ich vorhin geschrieben habe, ist die AWL-Definition. Da ich teilweise auf die Variablen zugreife, ist das so übersichtlicher als ein ARRAY[0..19] of BYTE, was aber für die reine Definition reichen würde.

Gruß Jörg
 
Zurück
Oben