Einzelnen Beitrag anzeigen
  #4  
Alt 15.03.2013, 07:59:19
Datta90 Datta90 ist offline
Anfänger
 
Registriert seit: Mar 2013
Alter: 30
Beiträge: 11
AW: Schreiben auf Simatic.net OPC Server (SOAP XML) polymorphes Attribut

Zitat:
Zitat von meikel Beitrag anzeigen
Grundsätzlich unterscheiden sich Deine Versuche schon erheblich von dem, was php.net dazu schreibt:
http://www.php.net/manual/de/class.soapclient.php
Da hast du Recht, dürfte aber keine große Rolle spielen. Diverse Funktionen wie "soapCall(funktion,parameter)" lassen sich auch einfach durch "funktion(parameter)" ersetzen. Ich habe unten mal meinen Code zum Lesen gepostet, welcher funktioniert.
Zitat:
Zitat von meikel Beitrag anzeigen
Außerdem vermisse ich bei Deinen Versuchen die Authentifizierung. Ich habe keine Ahnung, um welche Maschinen es da geht, bezweifel aber, daß dort jeder Anonymous schreiben darf.
Es geht um den Simatic net OPC Server, welcher mir Prozessdaten eienr SPS zur Verfügung stellt. Mein Zugriff erfolgt nicht über Internet sondern über ein LAN bzw. sogar lokal. Der von Simatic net mitgelieferte OPC Client (OPC Scout) sagt mir auch das die ITEMAccessRights der jeweiligen Items auf 'RW' (Read and Write) gestellt sind. Von der Seite dürfte es also auch keine Probleme geben.

Wie geschrieben - ich vermute stark das ich den Value nur im richtigen Format übergeben muss, wie ich das mache weiß ich nur nicht. Der OPC Scout sagt übrigens das mein Item 'MINT12..' den Canonical Data Type 'short' besitzt.

Hier mal mein Read-Code:
PHP-Code:
<?php
error_reporting
(-1);
ini_set('display_errors'TRUE);

$wsdl       'http://192.168.38.1/OPC.Simatic.NET/SOPCWeb.asmx?WSDL';

$werte=array();
$werte["Options"]=array(
         
//"RequestDeadline"=>"",
         //"ReturnErrorText"=>"",
         // "ReturnDiagnosticInfo"=>"",
         //"ReturnItemTime"=>"",
         //"ReturnItemPath"=>,
         //"ReturnItemName"=>"",
         //"ClientRequestHandle"=>"teeeeeest",
         //"LocaleID"=>""
);
$werte["ItemList"]=array(
         
"Items"=>array(//"ItemPath"=>"",
                        //"ReqType"=>"",
                        
"ItemName"=>"S7:[OPC_1]MINT12",
                        
//"ClientItemHandle"=>"",
                       //"MaxAge"=>""
                        
),
        
// "ItemPath"=>"",
        // "ReqType"=>"",
        // "MaxAge"=>""
 
);


$client = new SoapClient($wsdl);
$result $client->read($werte);


print_r ($result);                             //Alles ausgeben

?>
Ich hoffe ihr habt noch Ideen. Danke.
Mit Zitat antworten