ich würde gerne aus einer exportieren Symboltabelle (ASCII-Format) Instanzen anlegen.
Ich verwende das Script hier aus dem Forum, um Namen,Adressen etc. anzulegen.
//S7Bit_Instanzen_Anlegen
$name="Pumpe HK4";
$Area=6;
$AreaAdress=0;
$Adress=2;
$bit=7;
{
// Instanz erzeugen (Parameter: ModulID)
$intInst=IPS_CreateInstance("{932076B1-B18E-4AB6-AB6D-275ED30B62DB}");
// Erzeugte Instanz öffnen und weitere Werte setzen
$objInst=IPS_GetInstance($intInst);
// Allgemeine Parameter
// Name der Instanz (aus den Übergabeparametern der Funktionn)
IPS_SetName($intInst,($name));
// Übergeordnete Instanz (aus den Übergabeparametern der Funktionn)
IPS_SetParent($intInst,22728 /*[Komponenten\Halle 8A\Heizung]*/);
IPS_ConnectInstance($intInst,20596 /*[Siemens S7]*/);
// Änderungen speichern
S7_SetType($intInst, 0);
S7_SetArea($intInst, $Area);
S7_SetAreaAddress($intInst, $AreaAdress);
S7_SetAddress($intInst, $Adress);
S7_SetBit($intInst/*[Container Heizung1]*/, $bit);
S7_SetPoller($intInst/*[Container Heizung1]*/, 1000);
IPS_ApplyChanges($intInst);
Händisch geht dies auch. Nun wollte ich versuchen aus der vorhandenen Textdatei ein Array zu machen, die Namen und Adressen in die Platzhalter zu schreiben und dann mit einer Schleife das für alle Zeilen durchlaufen zu lassen.
das Exportfile sieht wie folgt aus :
126,AM Lampe 14.20KücheDeckeM 15.1 BOOL Merker für Deckenlampe Küche
126,AM Lampe 14.21.1KüchentkM 15.0 BOOL Merker für Decken/Hängelampe Küchentheke
126,AM Lampe 14.22Runddusch M 17.7 BOOL Merker für Runddusche Küche
126,AM Lampe 14.5HängeschranM 16.6 BOOL Merker für Einbaulampen Hängeschrank Küche
Später sollte das z.B. für die erste Zeile so aussehen :
nun bin ich schon mal ein kleines Stück weiter. Ich hab es geschafft, aus einer Datei die Daten einzulesen und weiter zu verarbeiten. Nun fehlt mir die Schleife, mit der ich Zeile für Zeile abarbeiten kann
jetzt muss ich es irgendwie hinbekommen die Variable $zeilennummer immer mit einem Wert +1 je Durchlauf zu füllen.
Hat hier vielleicht jemand einen Tip für mich ?
$filestring = file_get_contents("$datei"); // gesamte Datei in einen String einlesen
$lines = explode("\r", $filestring); // String in Zeilen zerlegen und in ein Array schreiben
ist eigentlich nicht noetig.
Mit
$zeilen = file ($datei);
wird schon die Datei zeilenweise in ein Array gelesen.