Autor Thema: Variablendeklaration in ST? (Easysoft 7.21 + EASY-E4)  (Gelesen 5112 mal)

Offline Joesel

  • Newbie
  • *
  • Beiträge: 10
Variablendeklaration in ST? (Easysoft 7.21 + EASY-E4)
« 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

Offline CiesleRa

  • Global Moderator
  • Full Member
  • *****
  • Beiträge: 339
  • easyE4 for President
Antw:Variablendeklaration in ST? (Easysoft 7.21 + EASY-E4)
« Antwort #1 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
Alle von mir bereitgestellten Programme sind reine Beispielprojekte. Die Verwendung erfolgt auf eigene Gefahr. Jegliche Haftung ist ausgeschlossen.

Offline Joesel

  • Newbie
  • *
  • Beiträge: 10
Antw:Variablendeklaration in ST? (Easysoft 7.21 + EASY-E4)
« Antwort #2 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

Offline mueller-m

  • Newbie
  • *
  • Beiträge: 18
Antw:Variablendeklaration in ST? (Easysoft 7.21 + EASY-E4)
« Antwort #3 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
....

Offline weiss_nix

  • Sr. Member
  • ****
  • Beiträge: 609
  • it has to be easy, it's a easy!
Antw:Variablendeklaration in ST? (Easysoft 7.21 + EASY-E4)
« Antwort #4 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ß
« Letzte Änderung: Januar 19, 2021, 13:49:01 Nachmittag von weiss_nix »
Sollte ich (gefährliches) Halbwissen verbreiten, beuge ich demütig mein Haupt mit der Gewissheit versagt zu haben!
WICHTIG: Sämtliche Programme dienen lediglich der Veranschaulichung von Funktionen und sind nicht für den Produktiveinsatz geeignet!

Offline mueller-m

  • Newbie
  • *
  • Beiträge: 18
Antw:Variablendeklaration in ST? (Easysoft 7.21 + EASY-E4)
« Antwort #5 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

Offline Frohnius

  • Jr. Member
  • **
  • Beiträge: 40
Antw:Variablendeklaration in ST? (Easysoft 7.21 + EASY-E4)
« Antwort #6 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)

Offline mueller-m

  • Newbie
  • *
  • Beiträge: 18
Antw:Variablendeklaration in ST? (Easysoft 7.21 + EASY-E4)
« Antwort #7 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.

Offline Frohnius

  • Jr. Member
  • **
  • Beiträge: 40
Antw:Variablendeklaration in ST? (Easysoft 7.21 + EASY-E4)
« Antwort #8 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 ...
« Letzte Änderung: Februar 11, 2021, 12:19:55 Nachmittag von Frohnius »

Offline mueller-m

  • Newbie
  • *
  • Beiträge: 18
Antw:Variablendeklaration in ST? (Easysoft 7.21 + EASY-E4)
« Antwort #9 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

Offline weiss_nix

  • Sr. Member
  • ****
  • Beiträge: 609
  • it has to be easy, it's a easy!
Antw:Variablendeklaration in ST? (Easysoft 7.21 + EASY-E4)
« Antwort #10 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 ....
« Letzte Änderung: Februar 11, 2021, 17:14:19 Nachmittag von weiss_nix »
Sollte ich (gefährliches) Halbwissen verbreiten, beuge ich demütig mein Haupt mit der Gewissheit versagt zu haben!
WICHTIG: Sämtliche Programme dienen lediglich der Veranschaulichung von Funktionen und sind nicht für den Produktiveinsatz geeignet!

Offline mueller-m

  • Newbie
  • *
  • Beiträge: 18
Antw:Variablendeklaration in ST? (Easysoft 7.21 + EASY-E4)
« Antwort #11 am: Februar 12, 2021, 08:57:39 Vormittag »
Gibts ja nicht. Vielen Dank für die Info. Wieder was dazu gelernt.