Viele S7 Variablen in IPS integrieren.

Hallo,

von Hand bin ich so weit, dass ich für mein Projekt einzelne PEW’s in IPS einlesen kann, insgesamt sollen es aber mal 200 werden. wie könnte man dies automatisch anlegen?

Schöne Grüße
Thomas

Hallo Thomas,

versuch es mal damit:


$parentID = IPS_GetParent($IPS_SELF);
$adr = 10; //Start
$cnt = 4;  //Anzahl

for($i=0; $i<$cnt; $i++)
{
   $instanceID = IPS_CreateInstance("{932076B1-B18E-4AB6-AB6D-275ED30B62DB}");
   IPS_SetName($instanceID, "PEW/PAW ".$adr);
   IPS_SetParent($instanceID, $parentID);
   S7_SetType($instanceID,2); 	  //Type: Word
   S7_SetPoller($instanceID,1000);  //Poller: 1000ms
   S7_SetArea($instanceID,13);      //Area: PEW/PAW
   S7_SetAreaAddress($instanceID,$adr);
   //S7_SetAddress($instanceID,$adr);
   IPS_ApplyChanges($instanceID);
   $adr++;
}

Viele Grüße
Roland

Hallo,

sieht schon mal gut aus, wo hast du die S7_Set Befehle her oder wo finde ich die Beschreibungen dafür?

Schöne Grüße
Thomas

Immer wieder gern genommen im Script, STRG + Leertaste. :slight_smile:

Hallo,

hat funktioniert, ich mußte für meine Wago 750-455 aber noch ein paar änderungen vornehmen. Bei mir steht die PEW Adresse nicht bei S7_SetAreaAddress sondern bei S7_SetAddress.


$parentID = IPS_GetParent($IPS_SELF);
$adr = 10; //Start
$cnt = 4;  //Anzahl

for($i=0; $i<$cnt; $i++)
{
   $instanceID = IPS_CreateInstance("{932076B1-B18E-4AB6-AB6D-275ED30B62DB}");
   IPS_SetName($instanceID, "PEW/PAW ".$adr);
   IPS_SetParent($instanceID, $parentID);
   S7_SetType($instanceID,2); 	  //Type: Word
   S7_SetPoller($instanceID,1000);  //Poller: 1000ms
   S7_SetArea($instanceID,13);      //Area: PEW/PAW
   //S7_SetAreaAddress($instanceID,$adr);
   S7_SetAddress($instanceID,$adr);
   IPS_ApplyChanges($instanceID);
   $adr++;
   $adr++;
}

Schöne Grüße
Thomas

Hallo,

ich lege ebenfalls mittels Script neue Instanzen an.
Allerdings ist bei mir nun eine zweite S7 dazugekommen. Die neuen Instanzen werden aber bei der Neuanlage automatisch auf die erste S7 als übergeordnete Instanz verlinkt. Hat da jemand eine Idee?

Die Doku weiß bescheid :slight_smile:

IPS_ConnectInstance: IP-Symcon :: Automatisierungssoftware

paresy

Vielen Dank, ich jetzt auch :slight_smile:
Ich kann mit den Beschreibungen in der Doku noch nicht so viel anfangen, aber ich versuche es stetig zu verbessern

Hallo,
Wo genau findet man eine komplette Doku über die „S7_Set“ Befehle? Mit STRG+LEERTASTE bekomme ich nur

Unbenannt.png

Und hier https://www.symcon.de/service/dokumentation/befehlsreferenz/instanzenverwaltung/konfiguration/ips-setproperty/ findet man zwar etwas, aber welche Zuordnungen gibt es z.B. für „DataType“

Schau dir mal im IP-Symcon Forms Ordner die Datei „Siemens Address.json“ an. Dort findest du alles :slight_smile:

paresy

Ok, gefunden.
Ich würde es begrüßen wenn ihr die „S7_Set“ - Befehle in die GesamtDoku aufnehmt. Habe schon einmal ewig gesucht bis ich durch Foreneinträge dann zum Ergebnis gekommen bin :frowning:

Es gibt seit Version 4.0 keine S7_Set* Funktionen mehr. Es geht nur noch alles sauber und generisch über die IPS_SetProperty Funktion.

paresy

Ok gut …
Unter diesem Link finde ich auch die Doku dazu:
https://www.symcon.de/service/dokumentation/befehlsreferenz/instanzenverwaltung/konfiguration/ips-setproperty/
Dort werden aber nur die Standardwerte erläutert. :rolleyes: aber nicht, dass z.B. der DataType für REAL 7 ist.
Das findet man nur in der „Siemens Address.json“

		{ "name": "DataType", "type": "Select", "caption": "Unit",
			"options": [
				  { "label": "Bit", "value": 0 },
				  { "label": "Byte", "value": 1 },
				  { "label": "Word", "value": 2 },
				  { "label": "DWord", "value": 3 },
				  { "label": "ShortInt", "value": 4 },
				  { "label": "SmallInt", "value": 5 },
				  { "label": "Integer", "value": 6 },
				  { "label": "Real", "value": 7 }
			]
		},	

… oder übersehe ich da etwas?

Das ist korrekt. Aber wir könnten einen Hinweis in die Doku tun, das man die Informationen dort her bekommt :slight_smile:

paresy

Das würde natürlich ungemein helfen :slight_smile: