Autor Thema: EasyE4 - gibt es einen "OPERATE"-Befehl? (Und kurze Vorstellung meiner Person)  (Gelesen 2944 mal)

Offline Eulhofer

  • Full Member
  • ***
  • Beiträge: 107
  • Man ist nie zu alt neue Dummheiten zu begehen...
Hallo zusammen,
ich bin recht neu hier und habe mich hier ein paar Tage eingelesen.
Ich habe (im letzten Jahrhundert  :D ) mal Elektriker gelernt und irgendwann dann auch an SPS-Anlagen gekommen.
Die Firma arbeitete ausschließlich mit den TSX-Steuerungen von Schneider-Telemecanique und mit der Micro-Serie habe ich meine SPS-Kentnisse erworben/vertieft. Ich habe zwar dann auch im Rahmen meiner Weiterbildung zum SPS-Techniker zwei Lehrgänge bei Siemens besuchen dürfen, aber echte Erfahrungen habe ich mit diesem Standard nicht.
Wie gesagt viel Erfahrung mit den Steuerungen TSX-Micro 3721/22 plus Erweiterungen - und jetzt erste Gehversuche mit der EasyE4.
.
Jetzt mein Anliegen:
In der TSX habe ich sehr oft kurze Berechnungen durchgeführt und dann das Ergebnis in einem Merkerwort o.ä. abgelegt.
Oder ich habe Werte in Merkerworten abgelegt, wenn vorher Bedingungen (digitale, Vergleiche etc) erfüllt waren (und nur dann - ansonsten blieb der Merkerwortwert unberührt).
In der TSX-Programmiersprache KOP gibt es dafür den sogenannten "Operate"-Befehl. Dieser steht - wie eine Ausgangszuweisung o.ä. am rechten Ende der Netzwerkzeile.
Zur Verdeutlichung habe ich mal eine Skizze beigefügt:

Ich könnte dort auch ggf. Formeln eingeben < z.B. %MW1234:=%MW1233*(15+%MW1232) >
Solch eine Funktion suche ich bei der EasyE4 vergeblich.
Wie kann ich das in der Kleinsteuerung nachbilden - oder denke ich total veraltet/verkrustet?

Als "Krüke" habe ich mir für eine einfache, verknüpfungsabhängige Zuweisung einen Anwenderbaustein mit einem digitalen Eingang, einem analogen Eingang und einem analogen Ausgang gebastelt:
IF I01 = TRUE THEN
        QA01 := IA01;
ENDIF;

oder für den skizzierten OPERATE-Vorgang:
IF I01 = TRUE THEN
         IF I02 = FALSE THEN
                  IF IA01>QA01 = TRUE THEN
                          QA01 := IA01;
                           ;
                  END_IF;
                  ;
          ELSE
                  QA01 := 0;
                  ;
         END_IF;
         ;
END_IF;
;


Mit dem digitalen Eingang I01 realisiere ich den aus den Herstellerbausteinen bekannten "EN" zum abarbeiten des Bausteins. I02 ist für den Reset auf Null, IA01 ist der aktuelle Wert, der ggf. in QA01 geschrieben wird.
Der Wert von QA01 muss ich dann außerhalb vom Baustein nur noch einem Merkerwort o.ä. übergeben.

Soweit funktioniert das ja - allerdings müsste ich so für jede Berechnung einen eigenen Baustein schreiben. Und die maximale Verwendung von eigenen Bausteinen ist ja begrenzt...

Ich freue mich auf Eure Antworten bzw. Demontage meines "Brettes vorm Kopf".
Viele Grüße - und bleibt gesund.
Der Eulhofer

« Letzte Änderung: April 27, 2020, 13:22:08 Nachmittag von Eulhofer »
Erste Gehversuche mit der EasyE4 - nachdem ich jahrelang auf der Schneider/Telemecanique TSX-Micro programmiert habe....

Offline weiss_nix

  • Sr. Member
  • ****
  • Beiträge: 609
  • it has to be easy, it's a easy!
Antw:EasyE4 - gibt es einen "OPERATE"-Befehl? (Und kurze Vorstellung meiner Person)
« Antwort #1 am: April 27, 2020, 07:17:58 Vormittag »
Hallo Eulhofer, willkommen im Forum!

Zu deinem Beispiel aus dem JPG für KOP/FUP:
Da würde ich die "MM" Funktion nutzen wobei du am Ausgang noch ein MD ansteuern könntest,
ist aber IMHO nicht nötig da die MM-Funktion die Werte speichert und diese auch abrufbar sind.

Für ereignisabhängige Speicherung von Werten sieh dir die DB - Funktion an, wobei auch hier
das verbraten eines zusätzlichen Speicher nicht unbedingt notwendig wäre.

In "ST" sieht die Sache anders aus, da sind viele Funktionen obsolet da es in ST uU. einfacher geht.
Im übrigen kann man Anwenderfunktionen mehrmals verwenden (instanzieren)


« Letzte Änderung: April 27, 2020, 08:30:24 Vormittag 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 Eulhofer

  • Full Member
  • ***
  • Beiträge: 107
  • Man ist nie zu alt neue Dummheiten zu begehen...
Antw:EasyE4 - gibt es einen "OPERATE"-Befehl? (Und kurze Vorstellung meiner Person)
« Antwort #2 am: April 28, 2020, 19:15:43 Nachmittag »
Hallo weiss_nix,

vielen Dank für die prompte Antwort.
Mit dem "MM" komme ich im dargestellten Beispiel natürlich zurecht.
Ich wollte prinzipiell wissen, wie ich das mit verknüpfungsabhängigen Berechnungen/Zuweisungen hinbekommen kann.
Ich denke, da werde ich wohl meine rudimentären ST-Kenntnisse nutzen. Im Grunde steht im Operate-Befehl der Schneider ja auch eine ST-Anweisung.
Mich schreckt halt immer die begrenzte Anzahl an möglichen Hersteller-/Anwenderbausteinen.
Bei der Schneiderprogrammierung wurde mir immer eingebleut möglichst wenige Bausteine zu verwenden und "Kleinkram" direkt zu programmieren...
BTW - was bedeutet Dein "IMHO"?
Und noch am Rande: Wo ist hier im Forum der richtige Ort für Fragen in Sachen Funktionalität der Forumoberfläche?
Viele Grüße,
Der Eulhofer
Erste Gehversuche mit der EasyE4 - nachdem ich jahrelang auf der Schneider/Telemecanique TSX-Micro programmiert habe....

Offline weiss_nix

  • Sr. Member
  • ****
  • Beiträge: 609
  • it has to be easy, it's a easy!
Antw:EasyE4 - gibt es einen "OPERATE"-Befehl? (Und kurze Vorstellung meiner Person)
« Antwort #3 am: April 29, 2020, 06:17:04 Vormittag »
Hallo Eulhofer,

Zitat
BTW - was bedeutet Dein "IMHO"?
Abkürzung für in my humble opinion - meiner bescheidenen Meinung nach

Zitat
Wo ist hier im Forum der richtige Ort für Fragen in Sachen Funktionalität der Forumoberfläche?
ich würde es hier anbringen.

Zitat
Ich wollte prinzipiell wissen, wie ich das mit verknüpfungsabhängigen Berechnungen/Zuweisungen hinbekommen kann.
verknüpfungsabhängige Zuweisungen mit "DB", ansonsten "ST"

sollten die 32 "DB" nicht reichen kann man z.B. "TB" und "SR" zweckentfremden  ;)
bei Verzicht auf enable sind min. 4 Zuweisungen mit set/reset inkl. div. Berechnungen in einer UF realisierbar

Code: (möglichkeit in ST) [Auswählen]
// I01 - I04: SET, Trigger, Ereignis
// I05 - I08: RESET
// IA1 - IA4: Analogwert Eingang
// QA1 - QA4: Analogwert Ausgang

for MD01 := 1 to 4 do
if I[MD01+4] then
QA[MD01] := 0;
elsif I[MD01] then
QA[MD01] := IA[MD01];
end_if;
end_for;
« Letzte Änderung: April 29, 2020, 09:54:05 Vormittag 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 Eulhofer

  • Full Member
  • ***
  • Beiträge: 107
  • Man ist nie zu alt neue Dummheiten zu begehen...
Antw:EasyE4 - gibt es einen "OPERATE"-Befehl? (Und kurze Vorstellung meiner Person)
« Antwort #4 am: April 29, 2020, 15:18:14 Nachmittag »
Hallo weiss_nix,

Zitat
Abkürzung für in my humble opinion - meiner bescheidenen Meinung nach
;D
Und ich habe gerätselt....

Vielen Dank für Deine Unterstützung und Deine Mühen... ich werde bei der E4 wohl ST-Fan...

Viele Grüße
Eulhofer
Erste Gehversuche mit der EasyE4 - nachdem ich jahrelang auf der Schneider/Telemecanique TSX-Micro programmiert habe....