Hilfe! Anfänger sucht "Hallo Welt" für Wago

Hallo,
ich versuche schon eine ganze Weile Infos zum Thema „Wago einrichten mit IPS“ zu bekommen.
Viele Anfragen betreffen „was brauche ich? usw.“ und die anderen haben zu schon laufende Projekte Anfragen. Einige hatte auch den Wunsch geäußert einen eigenen „Wago-Bereich“ zu eröffnen, das wäre auch mein Wunsch.
Da sich in diesem Forum einige Wago Fachleute befinden, möchte ich hier fragen ob ihr mir beim einrichten helfen könntet?
Vielleicht kann man damit gleich den neuen „Wago-Bereich“ eröffnen?

Ich habe zum testen folgendes aufgebaut:

[ul]
[li]1x 750-342
[/li][li]2x 750-403 4DI 24V
[/li][li]1x 750-504 4DO 24V
[/li][li]1x 750-513 2Kanal Relais mit 2 Schließer
[/li][/ul]

Ich möchte am 4DI Taster anschließen und damit (mit IPS) Ausgänge am DO schalten und mit 2 weiteren Taster das 2Kanal Relais steuern!

weiteres habe ich im IPS Configuration Panel getan:

Instances

Instances>(rechts Klick) I/O> Wago I/O Modbus ausgewählt

[ul]
[li]danach wurde ein violettes Symbol mit #46639 Wago I/O Modbus erstellt
[/li][/ul]

[ul]
[li]doppel Klick auf Symbol #46639>Connection IP Adresse vergeben
[/li][/ul]

Variables

Variables>(rechts Klick auf IP-Symcon)>Add Variable>Name:750-403,Type:Boolean>o.k
Variables>(rechts Klick auf IP-Symcon)>Add Variable>Name:750-504,Type:Boolean>o.k
Variables>(rechts Klick auf IP-Symcon)>Add Variable>Name:750-513,Type:Boolean>o.k

[ul]
[li]Nun sind im „Treeview“ unter IP-Symcon 3 rot unterlegte Zeilen vorhanden
[/li][/ul]

danach zurück auf Instances und dann (doppel Klick) auf Symbol „#46639“, es öffnet sich ein Fenster „Wago I/O Modbus-Configuration“

Data>Variables

Mit Button „New“ 3 Zeilen erstellt und durch Klick auf „Not assinged yet“ jeweils aus dem sich öffnenden „Variable Selector-Fenster“ 750-403, 750-504 & 750-513 ausgewählt

Variable 750-403

[ul]
[li]Address = 0
[/li][li]Size = Bit
[/li][li]Poll Interval = 50ms
[/li][/ul]

Variable 750-504

[ul]
[li]Address = 512
[/li][li]Size = Bit
[/li][li]Poll Interval = 50ms
[/li][/ul]

Variable 750-513

[ul]
[li]Address = 0
[/li][li]Size = Bit
[/li][li]Poll Interval = 50ms
[/li][/ul]

Da ich nicht weiß was ich getan, noch ob ich etwas richtig gemacht habe nun was muß ich machen damit IPS die LED’s an den Klemmen zum Leuchten bringt?

Danke

Ein commando senden ?
Guck mal mit [CTRL] + [SPACE] im php-editor was fur commando’s du nutzen kannst - oder hier zb: http://www.ipsymcon.de/wiki/index.php/WAGO_I/O

Happy hunting :slight_smile:

Commandos???
davon mal abgesehen habe ich mir schon gedacht das es ohne php nicht gehen wird.
Bevor ich mich damit befasse muß ich doch Wissen ob das was ich bis jetzt gemacht habe richtig ist.

Hallo Inspiron.

die Ausgänge der Wago Steuerung kannst Du mit den Befehl MBT_WriteCoil und mit true und false ansteuern.

$wago_id = 29373; //hier musst du die ID deiner Wago Steuerung eintragen.
MBT_WriteCoil($wago_id,0, true);
MBT_WriteCoil($wago_id,1, true);
MBT_WriteCoil($wago_id,2, true);
MBT_WriteCoil($wago_id,3, true);

Die Abfrage der Ein und Ausgänge, ob sie eine 1 oder eine 0 haben, Erfolgt über Variablen. Du kannst/musst jedem Ein- Ausgang den du hast, eine Variable zuweisen. In deinem Fall je vier für DI und Vier für DO. Die Adressierung der Variablen muss aber stimmen. Mit den Adressen 1 bis 511 kannst du die Eingänge abfragen, und mit 512 bis 1023? kannst du die Ausgänge abfragen. Wichtig ist auch noch eine Poll Zeit einzustellen, sonnst kommt nichts an. Hab noch ein Beispiel meiner Konfiguration angefügt.

Gruß Jochen

Hallo,
das ist doch schon ein Anfang nur wo genau schreibe ich diese Abfragen ein?
Muß ich bei EventScrpts ein neues Script erstellen?

Ja, du kannst die paar Zeilen von oben einfach in ein neues Script einfügen.

Gruß Jochen

Juchu sie leuchten!
Es ist doch erstaunlich, wie so eine kleine leuchtende LED, einem Freude entlocken kann!

Es funktioniert allerdings erst wenn ich auf „Execute“ im Script drücke. Wie wird denn das Script beim starten der ISP ausgeführt?

Hi!

z.B. durch Triggerevents
, oder IPS_Runscript von einem anderen Script aus.

mhh, wo trage ich das denn nun wieder ein. Im „Welcome.script“, was macht das eigendlich?

Wie kann ich denn jetzt sagen, wenn Taster an DI1 gedrückt, dann an

[ul]
[li]MBT_WriteCoil($wago_id,512, true); //4DO 1.1
[/li][/ul]

auch an?

Hi,
müßte denn die ID hier nicht 512, 513… heißen wenn es Ausgänge (DO) sind?

$wago_id = 29373; //hier musst du die ID deiner Wago Steuerung eintragen.
MBT_WriteCoil($wago_id,0, true);
MBT_WriteCoil($wago_id,1, true);
MBT_WriteCoil($wago_id,2, true);
MBT_WriteCoil($wago_id,3, true);

Das ist jetzt meine Version, ist diese richtig?

<?
/*
*******************************
 IP-SYMCON Event Scripting
*******************************
File     : DO_alle_an.ips.php
Trigger  : 
Interval : 
*/
$wago_id = 46639; //hier musst du die ID deiner Wago Steuerung eintragen.
MBT_WriteCoil($wago_id,512, true); //4DO 1.1
MBT_WriteCoil($wago_id,513, true); //4DO 1.2
MBT_WriteCoil($wago_id,514, true); //4DO 1.3
MBT_WriteCoil($wago_id,515, true); //4DO 1.4
MBT_WriteCoil($wago_id,516, true); //4DO 2.1
MBT_WriteCoil($wago_id,517, true); //4DO 2.2
MBT_WriteCoil($wago_id,518, true); //4DO 2.3
MBT_WriteCoil($wago_id,519, true); //4DO 2.4
MBT_WriteCoil($wago_id,520, true); //4DO 3.1
MBT_WriteCoil($wago_id,521, true); //4DO 3.2
MBT_WriteCoil($wago_id,522, true); //4DO 3.3
MBT_WriteCoil($wago_id,523, true); //4DO 3.4
MBT_WriteCoil($wago_id,524, true); //4DO 4.1
MBT_WriteCoil($wago_id,525, true); //4DO 4.2
MBT_WriteCoil($wago_id,526, true); //4DO 4.3
MBT_WriteCoil($wago_id,527, true); //4DO 4.4
MBT_WriteCoil($wago_id,528, true); //2Kanal Relais 5.1
MBT_WriteCoil($wago_id,529, true); //2Kanal Relais 5.2
?>

Hallo,

wollte mal fragen, ob du die Zuweisung der Eingänge mit den Ausgängen hinbekommen hast?

Ich habe genau das gleiche Problem und suche eine Lösung, wie ich die Eingänge mit den Ausgänge verbinden kann.

mfg,
basti

Nö, leider nicht.
Irgendwie antwortet auch keiner mehr auf meine zuvor gestellten Fragen. Schade ich komme leider nicht weiter.

Gruß

Normalerweise geht das mit dem Antworten hier sehr schnell, sind wohl viele im Urlaub, oder die wenigen die Arbeiten haben zur Zeit sehr viel Arbeit:).

Hier mal ein einfaches Skript:

<?
/*
*******************************
 IP-SYMCON Event Scripting
*******************************
File     : Wago_IO.ips.php
Trigger  : 
Interval : 
*/

$wago_id = 22701;

if (GetValueBoolean("Wago_QX_0") == true) {
    MBT_WriteCoil($wago_id,0,false);
    
} else {
    MBT_WriteCoil($wago_id,0,true);
   
}
?>

Die Variable „Wago_QX_0“ ist der erste Ausgang und ist in der Wago-Instanz der Adresse 512 zugeordnet. Je nach Zustand wird bei jedem Durchlauf des Skripts der Ausgang geändert (Stromstoßfunktion).
Wichtig, gelesen werden die Ausgänge ab Adresse 512, 513,… beschreiben muss man die Ausgänge ab Adresse 0, 1, …!

Das Skript mit dem Execute-Button ausführen und der Ausgang sollte toggeln.
Um das ganze mit einem Eingang zu beeinflussen im Skript unter Events bei OnChange die Variable für den ersten Eingang (in der Wago-Instanz unter Adresse 0) angeben.
Es wird dann bei jeder Änderung des Eingangs das Skript aufgerufen und der Ausgang wechselt seinen Status.

mfg
Martin

Hi Martin,

danke für die schnell Antwort.

Werde gleich mal schon in IPS einbauen und morgen Abend werde ich es mal testen.

Besten dank,
Basti

Auch ein danke für die schnelle Hilfe!
Habe ich das richtig verstanden, das ich für ein 4DI mit je 4Taster & 4DO je ein Script erstellen muß und nicht in einem zusammen fassen kann.

Hallo inspiron,

das kommt immer darauf an, was du erreichen willst.
Du kannst aber auch alles in ein Script packen.

Du musst dann eben die Trigger dafür einrichten, wie ich weiter oben hingewiesen habe.
z.B. aus dem Script von m-f-a…
Onchange (Variable) Wago_QX_0

Dann wird das Script getriggert, wenn diese Variable sich ändert von true > false oder von false > true.

Wenn dann nur eine Bedingung, oder Variable abgefragt werden soll, dann ist es wiederum ratsam, eben nur diesen DI abzufragen und die entsprechenden DO zu setzen.

„Uff, is dat allet kompliziert!“
Aber es macht schon ein bisschen Spaß, wenn’s auch kleine Erfolge sind.

Ich habe jetzt für je ein DI ein Script erstellt. Wenn am DI_1 Taste gedrückt, dann am DO_1 LED Status Änderung.

Nun ist aber der Ausgang des DO nur solange aktiv wie die Taste gedrückt wird. Ist auch eine Status-Änderung pro Tastendruck möglich? (d.h. Taste klick = an, Taste wieder klick = aus)

<?
/*
*******************************
IP-SYMCON Event Scripting
*******************************
File     : Wago_IO.ips.php
Trigger  :
Interval :
*/

$wago_id = 46639;

if (GetValueBoolean("750_504_DO_2.512") == true) {
    MBT_WriteCoil($wago_id,0,false);

} else {
    MBT_WriteCoil($wago_id,0,true);

}

?>

.
.

<?
/*
*******************************
IP-SYMCON Event Scripting
*******************************
File     : Wago_IO_2.ips.php
Trigger  :
Interval :
*/

$wago_id = 46639;

if (GetValueBoolean("750_504_DO_2.514") == true) {
    MBT_WriteCoil($wago_id,2,false);

} else {
    MBT_WriteCoil($wago_id,2,true);

}

?>
<?
/*
*******************************
IP-SYMCON Event Scripting
*******************************
File     : Wago_IO_3.ips.php
Trigger  :
Interval :
*/

$wago_id = 46639;

if (GetValueBoolean("750_504_DO_2.515") == true) {
    MBT_WriteCoil($wago_id,3,false);

} else {
    MBT_WriteCoil($wago_id,3,true);

}

?>

Zu erst habe ich es in einem gehabt, dort wurden dann aber alle DO’s geschaltet!

<?
/*
*******************************
IP-SYMCON Event Scripting
*******************************
File     : Wago_IO.ips.php
Trigger  :
Interval :
*/

$wago_id = 46639;

if (GetValueBoolean("750_504_DO_2.512") == true) {
    MBT_WriteCoil($wago_id,0,false);

} else {
    MBT_WriteCoil($wago_id,0,true);

}
if (GetValueBoolean("750_504_DO_2.513") == true) {
    MBT_WriteCoil($wago_id,1,false);

} else {
    MBT_WriteCoil($wago_id,1,true);

}
if (GetValueBoolean("750_504_DO_2.514") == true) {
    MBT_WriteCoil($wago_id,2,false);

} else {
    MBT_WriteCoil($wago_id,2,true);

}
if (GetValueBoolean("750_504_DO_2.515") == true) {
    MBT_WriteCoil($wago_id,3,false);

} else {
    MBT_WriteCoil($wago_id,3,true);

}
?>

Das würde mich jetzt auch noch interessieren. Da ich nur Taster habe. Benutze hier die Gira SPS 6-fach Taster.

mfg,
Basti

Ich würde das mal so probieren…

<?
/*
******************************************************
Schaltet flankengesteuert (DI) und hält den Status
******************************************************
File     : Wago_IO.ips.php
Trigger  : OnChange "750_504_DO_2.515"
*/ 


$var1 = GetValueBoolean("DO_Status");	           // Statusvariable (anlegen "Boolean")
$di = GetValueBoolean("750_504_DO_2.515"); // Dateneingang
$wago_id = 46639;


if (var1 == false) $i=0;
if (var1 == true) $i =1;

  

switch ($i)
{

case 0:
// Schaltet DO ein und setzt Status auf true, wenn Status vorher false war
   if ($di  == true)
   { 
   MBT_WriteCoil($wago_id,3,true);
   SetValueBoolean("DO_Status", true);
   }
   break;

case 1:
// Schaltet DO aus und setzt Status auf false, wenn Status vorher true war
    if ($di  == true)
    { 
    MBT_WriteCoil($wago_id,3,false);
    SetValueBoolean("DO_Status", false);
    }
    break;

}
?>

Wenn ich das, hoffentlich richtig, durchdacht habe, dann hast du so ein fankengesteuertes Flipflop, was den Ausgang (DO) nur setzt, wenn sich der Eingang (DI) auf true ändert und ansonsten den Status bis zum nächsten Tastendruck (true am DI) beibehält.
Dazu ist aber eine weitere „Status“-Variable notwendig, pro DO.
Der Scriptrigger ist auf OnChange mit der Variable „750_504_DO_2.515“ zu stellen.

Vielleicht haben ja die PHP-Profis hier an board noch andere Ideen.