awl in scl Code einbinden

schlarpi

Level-1
Beiträge
18
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Forum
Ist es irgenwie möglich im SCL Programmteile in AWL direkt einzubinden. Habe lieber komplette Bausteine als 100 Funktionen und zum Tippen bin ich eh zu faul.
So in z.B. der Form:

BEGIN
bla ...bla...
bla ...bla...
<AWL>
U M10.0
UN M10.1
S M10.2
<END_AWL>
bla ...bla...
bla ...bla...
END_FUNCTION

Danke
Beni
 
S7 kann das auch mit FUP - KOP - AWL

SCL ist etwas anderes, das wird compiliert und erscheint als AWL-Baustein in deinem projekt ... einfach mal die quelle löschen und dann den baustein öffnen ...

der SCL-editor versteht aber den AWL-code nicht ... klingt scheiße, ist scheiße, ist aber nun mal so ... also wenn du AWL einbinden willst, dann mach es als funktion ...
 
Also für:
IF Blink_0_5S THEN
Blink_0_5S := False;
ELSE
Blink_0_5S := True;
END_IF;

Eine Funktion in AWL die da wäre

UN Blink_0_5S
= Blink_0_5S

Oder habe ich da was falsch verstanden?

Ok. --> Hirn nun wieder ein ( Blink_0_5S:= NOT Blink_0_5S;)
Aber ersatz für z.B UW / OW ?

Beni
 
Zuletzt bearbeitet:
Zuletzt bearbeitet:
Also hättest Du nun AWL in SCL eingebetet für Funktionen die SCL von Haus aus bietet. Da wäre diese Einbettung eher kontraproduktiv. Es gibt aber tatsächlich Anwendungen wo man das in SCL brauchen könnte. Ich erinnere mich da an eine Frage wo es um den AWL befehl TAD ging. Aber auch in solchen Fällen würde ich diesen Code in eine AWL-Funktion auslagern und dann in SCL aufrufen.

Bei einem anderen System (CoDeSys, TwinCAT, und Co) kann man den Bausteinen Aktionen in beliebigen Sprachen anhängen und somit eine Art einbettung machen.
 
Wobei es sicher nicht schwierig für die Compilerbauer wäre, eine "Einbettungsfunktion" zu realisieren, da ja ohnehin AWL-Code (ja, u.U. mit Zusätzen) für die SPS erzeugt wird.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Selbst wenn man eine einfache Folge von AWL Anweisungen wie
U M0.0
O M0.1
= A4.6
in SCL einbetten will, muß man klar stellen, ob das U M0.0 Beginn einer neuen Operation oder Und-Verknüpfung mit dem existierenden VKE bedeuten soll.
Da müßten die Compilerbauer erstmal dokumentieren (und vielleicht sich festlegen, damit es was zu dokumentieren gibt), was sie wann in VKE, AKKU1 und 2 (3,4) AR1 und AR2 oder Lokal-Variablen speichern.
 
Was meiner Meinung nach noch dagegen sprechen würde AWL in SCL einzubetten ist, dass SCL sich ja zumindest soweit an dem "ST" aus der IEC61131-3 orientiert das man den Programmcode meist noch relativ leicht auf andere Steuerungen portieren kann.
 
Hi Beni.


Es geht in SCL. Die daten müssen nur als BYTE, WORD oder DWORD deklariert werden.

Beispiel:

VAR_TEMP
w1, w2 : WORD ;
END_VAR

w1 := w1 AND w2 ;

geändert wegen tippfehler

Das habe ich in der Hilfe nicht gefunden.... Lesen ist eine Sache, finden die Andere ;-)
So wird diese Konstrukt auch ein weig klarer....
Code:
VAR_TEMP
  ImpGenVerwaltung :WORD;
  CoInt         :INT;
END_VAR
 
 
  ImpGenVerwaltung := (SHL(IN:=ImpGenVerwaltung,N:=4));
  CoInt := WORD_TO_INT (SHR(IN:=ImpGenVerwaltung,N:=4)); //highByte ausfilteren
 
-------- oder
 
  CoInt :=  WORD_TO_INT(ImpGenVerwaltung AND W#16#0FFF); // Alternative
 
/-------- oder
 
  CoInt := CoInt + 1; //Max. Wert ist 4095

Trotzdem ich bleibe dabei beides wäre schön. Sehr viele Beispiel von euch sind in AWL und daraus schliesse ich, dass der alte Maschinencode noch lange leben wird......

und dann noch einen schönen Sonntag :rolleyes:
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Sehr viele Beispiel von euch sind in AWL

was aber auch dem zu schulden ist, dass man AWL sehr viel einfacher weitergeben kann als KOP, FUP, CFC ...

SCL ist nicht für alles gut, man kann schöne sachen damit machen, ja, aber es gibt viele viele sachen, die in anderen "sprachen" einfacher, schöner oder einfach schneller zu lösen sind ... und die wartbarkeit von AWL/KOP/FUP ist meines erachtens auch besser - auch weil man sich das lästige übersetzen spart :rolleyes:
 
Ich könnte getrost auf AWL verzichten. Oder um es deutlicher zu sagen mir wäre es sogar recht wenn es einfach verschwinden würde ;o)

Das sich SCl in der Siemens-Welt nicht durchgesetzt hat liegt wohl eher an der schlechten Implementierung (Umweg über Quellen, kein Syntax-highlighting, mäßige Umsetzung der IEC Vorgaben, keine Kontexthilfe, usw.) in Step7.

Und das AWL Maschinencode ist, ist ein Gerücht [edit] oder vielmehr Aberglaube [/edit] ;o)
 
Zuletzt bearbeitet:
Ich könnte getrost auf AWL verzichten. Oder um es deutlicher zu sagen mir wäre es sogar recht wenn es einfach verschwinden würde ;o)

Gibt kein 0% Ack-Schild zotos ;-)
Aber daß wir da nicht einer Meinung sind ist uns beiden ja bekannt.
Ich hoffe, daß du wenigstens noch mit FUP klarkommst, denn Bitverknüpfungen will ich nun wirklich nicht in SCL/ST machen, na ja und diese Move-Befehle statt Lade und Transferriere, sind dann halt auch Geschmackssache :ROFLMAO:. Für mich ist das immer ein wenig wie Malen nach Zahlen, aber das ist wohl eines meiner eigenen Probleme *ROFL*.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich könnte getrost auf AWL verzichten. Oder um es deutlicher zu sagen mir wäre es sogar recht wenn es einfach verschwinden würde ;o)
Zotoz, Du kriegst ein *ACK* von mir.
Und ja, Syntax highlighting wäre schön.

In SCL gibt es meiner meinung nach kein grund für ein "eingebettete" AWL.

Ralle schrieb:
Ich hoffe, daß du wenigstens noch mit FUP klarkommst, denn Bitverknüpfungen will ich nun wirklich nicht in SCL/ST machen, na ja und diese Move-Befehle statt Lade und Transferriere, sind dann halt auch Geschmackssache. Für mich ist das immer ein wenig wie Malen nach Zahlen, aber das ist wohl eines meiner eigenen Probleme
Ich "male" gerne. Bit logik mache ich liebstens in KOP (ich kann damit leben das ich von deutsche FUP programmierer ausgelachelt wird. Ich weiss aber das KOP FUP überlegen ist.)

Das hin-und-her programmieren von MOVE Befehle ist wirklich lästig. Es ist auch der Grund dafür das ich mein KOP code mit ein bisschen AWL noch kombinieren muss. Aber das geht ja auch einwandfrei, nicht wie in SCL.
Wenn KOP/FUP ein klein bisschen erweitert wurde, z.b. mit die separate Lade/transfer befehle und Mathe-befehle das mit AKKU1/AKKU2 arbeite, denn konnte AWL gern verschwinden.
 
Zurück
Oben