easy-forum

Deutsch - Hardware => easyE4 => Thema gestartet von: Nitro am Dezember 11, 2018, 14:01:06 Nachmittag

Titel: Programmbeispiele, Webserver
Beitrag von: Nitro am Dezember 11, 2018, 14:01:06 Nachmittag
Hallo zusammen

Ich hatte vor ein paar Jahren mit der Easy 800er einige Projekte.
Jetzt steht wieder ein Projekt an und ich versuche gleich mal die neue Generation.
Leider gibt es für die easyE4 noch keine Programmierbeispiele im Trainingscenter.

Ich suche nach drei Beispielen:
1.   Mittels dem Webserver (Also von einem PC aus) einen Wert von 1 – 100 % Einstellen können (Zahl oder Schieberegler, ich finde da keine Dokumentation) um damit einen Analogausgang ansteuern von 1 – 10 Volt.

2.   Mit 3 Digitale Eingänge einen Analogen Ausgang ansteuern:
I1 true = Am Analogausgang soll 3 Volt anstehen
I2 true=  Am Analogausgang soll 6 Volt anstehen
I3 true=  Am Analogausgang soll 9 Volt anstehen

3.   Einen Analogen Wert Invertieren, das Heisst:
Am Analogeingang stehen 1 Volt Spannung, am Analogausgang sollte dann 10 Volt stehen.
Am Analogeingang stehen 10 Volt Spannung, am Analogausgang sollte dann 1 Volt stehen.

Kennst sich eventuell schon jemand gut aus mit dem E4 und kann die drei Beispiele  mit der EDP Struktur Programmieren?
Es braucht dazu keine grosse Erklärung, die Struktur ist ja hoffentlich selbsterklärend.
Ich bin für jede Hilfe Dankbar.

Gruss Pascal
Titel: Antw:Programmbeispiele, Webserver
Beitrag von: Konni66 am Dezember 11, 2018, 19:49:13 Nachmittag
Hallo Nitro,

in dem .zip-File findest du 3 Beispiele.
zu 1.
Du musst natürlich ein Steuerrelais mit Analogerweiterung haben, die IP-Adress-Einstellungen gemacht und den Webserver aktiviert haben.
In einem Browser, der HTML5-fähig ist, die easyE4 über die IP-Adresse ansprechen und dich anmelden.
Setzt du das MB65 im Browser auf einen Wert zw. 1 (%) und 100 (%), gibt der Analogausgang 1 V bis 10 V aus.
Achtung: Die Analogausgänge müssen den Ausgangsoperanden zugeordnet sein.

zu 2.
Da du nicht geschrieben hast, was bei 2 oder 3 gleichzeitig gesetzten Eingängen am Ausgang passieren soll, darf nur ein Eingang gesetzt werden. Alle anderen Kombinationen sind verriegelt und geben 0 V aus.
Auch hier benötigst du eine Analogerweiterung und musst die entspr. Konfiguration und Parametrierung vornehmen.

zu 3.
Das gleiche Spiel: Analogerweiterung anschließen und konfigurieren.
Hier ist der Wertskalierer so parametriert, dass er einfach die Werte am Analogeingang IA01 umgekehrt proportional am QA05 wieder ausgibt. Wertskalierer LS01: X1 bis X2 wird ausgegeben als Y1 bis Y2

Ich hoffe, dass dir die kurze Anleitung hilft.
Wenn du noch Fragen hast, melde dich einfach.

Grüße,
Konni
Titel: Antw:Programmbeispiele, Webserver
Beitrag von: Nitro am Dezember 12, 2018, 07:11:20 Vormittag
Guten Morgen Konni

Herzlichen Dank für deine Antwort, deine 3 Beispiele sind genau das was ich gesucht habe.
Jetzt erst verstehe ich die Logik von der neuen Easy Soft 7, da werden alle relevanten Einstellungen der Bausteine erst sichtbar wenn man auch im Reiter Bausteinplan ist.
Das war bei der 6er Version anders, da konnte man unten auf Parameter drücken.
Jetzt Freue ich mich wenn die Hardware geliefert wird   :D

Besten Dank nochmals für die rasche und Professionelle Hilfe!
Titel: Antw:Programmbeispiele, Webserver
Beitrag von: Nitro am Dezember 12, 2018, 12:04:10 Nachmittag
Eine Frage hätte ich dennoch bei Beispiel 2:
Wie weiss der Datenmultiplexer am Eingang K (Kanalnummer) das Merker 1 beim Multiplexer K1 (I2), der Merker 2 K2 (I3) und der Merker 3 K4 (I5)?
Wieso ist K3 übersprungen?
Wo ist der Zusammenhang zwischen den Merker und K?
Titel: Antw:Programmbeispiele, Webserver
Beitrag von: Nitro am Dezember 12, 2018, 13:03:19 Nachmittag
Ok, ich habe es herausgefunden, mit dem Merker setze ich das Byte, das verdoppelt sich immer.
Jetzt Frage ich mich wie nutze ich alle 8 Kanäle eines Datenmultiplexer?
Wie in Beispiel 2, jedoch alle 8 Eingänge nutzen um 8 Werte auszugeben?
Titel: Antw:Programmbeispiele, Webserver
Beitrag von: Konni66 am Dezember 12, 2018, 15:36:42 Nachmittag
Hallo Nitro,

die Kanalnummer K (Wertebereich 0 bis 7) wählt einen der 8 Werte aus, die an den MUX-Eingängen (I1 bis I8) anstehen.
K=0  I1->Ausgang QV
K=1  I2->Ausgang QV
K=2  I3->Ausgang QV
.
K=7  I8->Ausgang QV

Du wolltest, dass 3 digitale Eingänge die Wertausgabe steuern. Deshalb habe ich die 3 Eingänge direkt mit M1 bis M3 verknüpft.
Wenn man weiß, das die Merker M1 bis M8 im gleichen Speicherbereich wie das MB1 (und Teile von MW1, MD1) liegen, kann man für die Erzeugung der Kanalnummer K, das MB1 nehmen.
                         MB1
I1 = M1 = 2^0 = 1
I2 = M2 = 2^1 = 2
I3 = M3 = 2^2 = 4

Deshalb stehen, entsprechend deiner Schalterstellungen, in MB1 die Werte 1, 2 oder 4. Und MB1 ist die Variable, die K steuert. Du musst jetzt nur noch darauf achten, dass du MW1 und MD1 nicht mehr verwenden kannst, weil du sonst MB1 (was ja K ist) überschreibst.

Schau' dir mal das Excel-File im Anhang an.


Grüße,
Konni


Titel: Antw:Programmbeispiele, Webserver
Beitrag von: Nitro am Dezember 12, 2018, 16:16:56 Nachmittag
Vielen Dank für deine Erklärung.
Das Excel File ist sehr Praktisch.
Wie würdest du es am einfachsten angehen wenn man alle  8 Eingänge des Datenmultiplexers nutzen möchte, um mit 8 Digitalen Eingänge 8 verschiedene Werte zu bekommen?

Gruss Pascal
Titel: Antw:Programmbeispiele, Webserver
Beitrag von: Konni66 am Januar 02, 2019, 12:19:26 Nachmittag
Hallo Pascal,

schau' dir mal das Programm im zip-File an.
Dort habe ich die Erzeugung der Steuervariable K des Multiplexers in einem "User defined functionblock" (UF) realisiert.
Durch einen Doppelklick auf den UF kannst du dir ansehen, was darin passiert.

Grüße,
Konni
Titel: Antw:Programmbeispiele, Webserver
Beitrag von: Nitro am Januar 15, 2019, 10:48:28 Vormittag
Vielen Dank für deine Antwort Konni

Leider ist dein Funktionsbaustein Passwortgeschützt?!

Siehe Bild:
Titel: Antw:Programmbeispiele, Webserver
Beitrag von: Konni66 am Januar 15, 2019, 10:53:34 Vormittag
Hallo Nitro,

ich habe ihn nicht durch ein Passwort geschützt! ???
Die folgende .zip-Datei enthält den UF zum Import. (Projekt anlegen, Rechtsklick auf Anwenderbausteine, Anwenderbaustein importieren)
Dann kannst du ihn verwenden.

Sollte das nicht funktionieren, ist hier der Code im UF:

//Die einzelnen Eingangsbits werden über die M1 bis M8 in das MB1 geschrieben
//Das Merkerbyte des UF ist nur innerhalb des Funktionsbausteins (lokale Variable) gültig.
//-> Es hat nichts mit dem MB01 im Hauptprogramm zu tun!
M1:=I1;
M2:=I2;
M3:=I3;
M4:=I4;
M5:=I5;
M6:=I6;
M7:=I7;
M8:=I8;


//Entsprechend des MB1 wird der UF-Ausgang auf die Werte 0 bis 7 gesetzt
CASE MB01 OF
    1:     QA1:=0;
    2:     QA1:=1;
    4:     QA1:=2;
    8:     QA1:=3;
    16:     QA1:=4;
    32:     QA1:=5;
    64:     QA1:=6;
    128: QA1:=7;
 ELSE
 //Wird durch mehrfach gleichzeitig gesetzte Eingänge ein Wert im MB1 erzeugt, der nicht eines einzeln gesetzten Bits entspricht,
 //wird der UF-Ausgang auf -1 gesetzt.
 //In vielen Programmiersprachen steht -1 für einen nicht erfolgreichen Funktionsaufruf.
 //Auch der Funktionsbaustein "Datenmultiplexer" quittiert einen falschen Parameterwert für K mit einer Fehlermeldung
 //am Error-Bausteinausgang E1.
    QA1:=-1;
 END_CASE;


Grüße,
Konni
Titel: Antw:Programmbeispiele, Webserver
Beitrag von: Nitro am Januar 15, 2019, 12:42:39 Nachmittag
Hallo Konni

Danke vielmals, ich werde dies Morgen testen können.
Ich habe selbst auch eine Lösung Programmiert, mit der 6er Version. (Wobei deine Lösung viel Eleganter ist)
Leider funktioniert meine Lösung nicht mit der 7er Version, egal ob Importiert oder in der 7er Version neu geschrieben, keine Ahnung wieso!
Hier als Info:
http://easy-forum.net/index.php?topic=7898.0



Gruss Pascal