easy-forum

Deutsch - Software => easySoft => Thema gestartet von: Joesel am Januar 11, 2021, 23:00:15 Nachmittag

Titel: Variablendeklaration in ST? (Easysoft 7.21 + EASY-E4)
Beitrag von: Joesel am Januar 11, 2021, 23:00:15 Nachmittag
Hallo Zusammen!

Ich mache meine ersten Schritte mit ST unter Verwendung der Easysoft 7.21 + EASY-E4  Kombination. Ich habe etwas Erfahrung mit ST in der Codesys 2.x + EC4P Kombination. Zudem habe ich KOP-Erfahrung mit  Easysoft6.91 + EASY800.

Ich habe ein paar Probleme mit dem Umstieg auf Easysoft 7.21. ST...

Ich würde gerne zunächst in einem Deklarationsteil die globalen Variablen definieren, so was in dieser Richtung:

VAR
init_done : BOOL := FALSE;
position: ARRAY[0 .. 4] OF INT := 0,0,0,0;
END_VAR

Ein entsprechendes Deklarationsfenster konnte ich nicht finden und wenn man die Deklaration wie in anderen Hochsprachen einfach an den Anfang schreibt, gibt es die Fehlermeldung "Das Gerät oder die Firmwareunterstützt den Operanden >>VAR<< nicht."
Ich scheitere also schon bevor ich einen initialen Funktionsblock init_proc() schreiben könnte (z.B. um Aktoren in eine definierte Ausgangpositon zu bringen).

Kann jemand den Umgang mit der ST-Oberfläche der EasySoft 7.21 skizzieren?
Wo finde ich eine Anleitung für den Umstieg?

Danke und beste Grüße!
Joesel
Titel: Antw:Variablendeklaration in ST? (Easysoft 7.21 + EASY-E4)
Beitrag von: CiesleRa am Januar 12, 2021, 07:00:34 Vormittag
Hallo Joesel,
Du musst dich ein stückweise von dem verabschieden, was Du von Codesys kennst.  ;)
In der easySoft müssen keine Variablen deklariert werden und es gibt auch keine symbolische Programmierung.
Programmiert wird mit den Operanden, also z.B. I1, M12, MB5, Q3 oder MW12. Dadurch ist bereits festgelegt, ob es sich um eine Bool, Byte, Wort oder Doppelwort Variable handelt.
Auch die Hardwareadresse ist durch die Verwendung von z.B I1 bereits festgelegt.

Man schreibt also gleich munter los.
M1:=I5;
MW20:=MB5 * 10;
u.s.w.

Gruß Ralf
Titel: Antw:Variablendeklaration in ST? (Easysoft 7.21 + EASY-E4)
Beitrag von: Joesel am Januar 12, 2021, 19:11:09 Nachmittag
Hallo Ralf,

vielen Dank, ich hatte das schon befürchtet. Ich finde die Idee der Variablenkapselung und der damit verbundenen Speicherverwaltung für ziemlich gut und werde die Möglichkeit vermissen.

Dennoch nochmals vielen Dank!
Beste Grüße
Jösel
Titel: Antw:Variablendeklaration in ST? (Easysoft 7.21 + EASY-E4)
Beitrag von: mueller-m am Januar 19, 2021, 13:04:10 Nachmittag
Hallo Ralf,

vielen Dank, ich hatte das schon befürchtet. Ich finde die Idee der Variablenkapselung und der damit verbundenen Speicherverwaltung für ziemlich gut und werde die Möglichkeit vermissen.

Dennoch nochmals vielen Dank!
Beste Grüße
Jösel

So ergeht es mir auch bei der Programmierung von den Easy-Steuerungen.
Teilweise frage ich mich dann auch, warum es überhaupt ST bei den Modulen gibt.

Was ich aber am meisten vermisse, ist die Möglichkeit gleich von der Funktion her direkt zu programmieren, anstatt immer einen Merker nutzen zu müssen.

Quasi:
T1.Q1 zum antriggern

Jetzt:
T01
QV =>M01

IF M01=TRUE THEN
....
Titel: Antw:Variablendeklaration in ST? (Easysoft 7.21 + EASY-E4)
Beitrag von: weiss_nix am Januar 19, 2021, 13:38:16 Nachmittag
Hallo mueller-m,

... lass den Punkt weg, dann funktioniert es ...

T01 (
  EN := not T01Q1,
  RE := ,
  ST := ,
  I1 := T#1s,
  I2 := ,
  Q1 => ,
  QV =>
 );
 
 if T01Q1 then
   Q01 := not Q01;
 end_if;

Gruß
Titel: Antw:Variablendeklaration in ST? (Easysoft 7.21 + EASY-E4)
Beitrag von: mueller-m am Januar 20, 2021, 09:03:30 Vormittag
Hallo mueller-m,

... lass den Punkt weg, dann funktioniert es ...

T01 (
  EN := not T01Q1,
  RE := ,
  ST := ,
  I1 := T#1s,
  I2 := ,
  Q1 => ,
  QV =>
 );
 
 if T01Q1 then
   Q01 := not Q01;
 end_if;

Gruß

Tatsache! Danke für den Tipp.
Warum macht man das zur bisherigen Programmieranalogie anders? Aber egal  :D
Titel: Antw:Variablendeklaration in ST? (Easysoft 7.21 + EASY-E4)
Beitrag von: Frohnius am Februar 10, 2021, 08:40:50 Vormittag
hi, schon etwas älter ..
aber vll noch ein tipp so wie ich das mache um mir den umstieg von codesys etwas zu erleichtern ...
ich vermisse ebenfalls die möglichkeit variablen zu benutzen ...
und ich mag es nicht merker zu verwenden .. schließlich ist der m5 auch das 5. bit vom mb1 ...

deshalb habe ich mir einfach einen userbaustein gemacht
sozusagen einen dummy für analogwerte und einen für bool mit dem code:

QA1:=IA1;

oder eben für bool

Q1:=I1;

das gibt mir die möglichkeit im gesamten code den baustein statt merker zu verwenden ...

angenommen ein über Display veränderbarer Sollwert liegt im Merker MW10 ....
UF15 ( NAME := "MW-DUMMY", VERSION := "V1.00", IA1:= MW10*11702/100, QA1 =>);

das ergebnis einer berechnung liegt dann nicht in irgendeinen Merker den ich im Code vll verwechsle ...

sondern eindeutig im UF15QA1

klingt erst mal umständlich, schafft aber die sicherheit, sich beim programmieren in ST nicht mit überschneidungen von merkern probleme zu basteln.

und ob ich jetzt hochscrolle und nachsehen muss in welchem merker jetzt wieder mein ergebnis liegt oder welcher baustein das war ist kein unterschied  8)
Titel: Antw:Variablendeklaration in ST? (Easysoft 7.21 + EASY-E4)
Beitrag von: mueller-m am Februar 11, 2021, 11:35:01 Vormittag
hi, schon etwas älter ..
aber vll noch ein tipp so wie ich das mache um mir den umstieg von codesys etwas zu erleichtern ...
ich vermisse ebenfalls die möglichkeit variablen zu benutzen ...
und ich mag es nicht merker zu verwenden .. schließlich ist der m5 auch das 5. bit vom mb1 ...

deshalb habe ich mir einfach einen userbaustein gemacht
sozusagen einen dummy für analogwerte und einen für bool mit dem code:

QA1:=IA1;

oder eben für bool

Q1:=I1;

das gibt mir die möglichkeit im gesamten code den baustein statt merker zu verwenden ...

angenommen ein über Display veränderbarer Sollwert liegt im Merker MW10 ....
UF15 ( NAME := "MW-DUMMY", VERSION := "V1.00", IA1:= MW10*11702/100, QA1 =>);

das ergebnis einer berechnung liegt dann nicht in irgendeinen Merker den ich im Code vll verwechsle ...

sondern eindeutig im UF15QA1

klingt erst mal umständlich, schafft aber die sicherheit, sich beim programmieren in ST nicht mit überschneidungen von merkern probleme zu basteln.

und ob ich jetzt hochscrolle und nachsehen muss in welchem merker jetzt wieder mein ergebnis liegt oder welcher baustein das war ist kein unterschied  8)

Der Nachteil dabei ist aber, dass du die einzelnen Merker wiederum in der Querverweisliste nicht benennen kannst. Was ich dabei mindestens genauso unübersichtlich finde und muss somit dennoch im Programm nachschauen, um was es sich handelt.

Deinen Ansatz kann ich aber durchaus nachvollziehen.
Titel: Antw:Variablendeklaration in ST? (Easysoft 7.21 + EASY-E4)
Beitrag von: Frohnius am Februar 11, 2021, 12:12:44 Nachmittag
ja das stimmt ...
was mir etwas hilft ist die Auto-Vervollständigung ....
dann geht es eigentlich ...



edit: ne stimmt nicht ganz, ... in der querverweisliste sind auch die UF alle mit Bemerkung drin ...
Titel: Antw:Variablendeklaration in ST? (Easysoft 7.21 + EASY-E4)
Beitrag von: mueller-m am Februar 11, 2021, 13:42:30 Nachmittag
ja das stimmt ...
was mir etwas hilft ist die Auto-Vervollständigung ....
dann geht es eigentlich ...



edit: ne stimmt nicht ganz, ... in der querverweisliste sind auch die UF alle mit Bemerkung drin ...

Die Auswahlvorschläge gehen in der Easy-Software doch gar nicht?  ;) Oder habe ich in den Einstellungen irgendwo einen Haken übersehen?  :D
Titel: Antw:Variablendeklaration in ST? (Easysoft 7.21 + EASY-E4)
Beitrag von: weiss_nix am Februar 11, 2021, 17:03:57 Nachmittag
@muelle-m,
siehe Anhang....
Gruß

PS: Allerdings werden bei der Autovervollständigung keine Kommentare von Merkern, Ausgängen, etc. angezeigt ....
Titel: Antw:Variablendeklaration in ST? (Easysoft 7.21 + EASY-E4)
Beitrag von: mueller-m am Februar 12, 2021, 08:57:39 Vormittag
Gibts ja nicht. Vielen Dank für die Info. Wieder was dazu gelernt.