IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Automation Discussion :

OPC Automation Problème


Sujet :

Automation

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 13
    Points : 11
    Points
    11
    Par défaut OPC Automation Problème
    Salut tout le monde. J'ai un problème. J'ai fait un script en php pour aller lire sur opcserver. Tout fonctionne très bien quand c'est sur le localhost, mais dès que je vien pour mettre un nom de pc ( Node optionnel a la fonction Connect) plus rien ne va. Je sais que l'ordinateur est accessible car je me connect dessus par un autre logiciel de test. Comme je vous ai déjà dit tout fonctionne en localhost. Voici mon code

    -----PHP-----

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    $Server;
     
    $Server = new COM("OPC.Automation");
    $Server->Connect("PhoenixContact.AX-Server.21" , "172.16.158.70");
     
    $Server->OPCGroups->Add( "MyGroup"); 
    $Server->OPCGroups(1)->OpcItems->AddItem( "TestResource.poids_60", 1);
    $Server->OPCGroups(1)->OpcItems->AddItem( "TestResource.poids_40", 1);
    $Server->OPCGroups(1)->OpcItems->AddItem( "TestResource.poids_total_silos", 1);
    $Server->OPCGroups(1)->OpcItems(1)->Read(2);
    $Server->OPCGroups(1)->OpcItems(2)->Read(2);
    $Server->OPCGroups(1)->OpcItems(3)->Read(2);
     
    echo "Silo 60 : " . round($Server->OPCGroups(1)->OpcItems(1)->value , 2);
    echo "<br>";
    echo "Silo 40 : " . round($Server->OPCGroups(1)->OpcItems(2)->value , 2);
    echo "<br>";
    echo "Total Silo : " . round($Server->OPCGroups(1)->OpcItems(3)->value , 2);
     
    -----PHP-----


    Comme je l'ai deja dit la fonction connect fonctionne très bien si je retire le "172.16.158.70"...

    Si vous avez des suggestion...

    Merci

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    B'soir..

    quand tu dis l'accès marche avec d'autre logiciel, tu parle d'un autre client OPC .?

  3. #3
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 13
    Points : 11
    Points
    11
    Par défaut
    Je refait exactement le meme code en vbs avec createobject et tout fonctionne.

    Je ne comprend pas pourquoi le code ne fonctionne pas sous Php avec la fonction COM.

    En fait la création de l'objet fonctionne, c'est lorsque je call la fonction qui me donne une erreur. J'ai esseiller de mettre 3 parametre ( la fonction en prend que 2 ) et il me donne pas la meme erreur ( il me dit que j'ai pas le bon nombre d'arguments ).

    Voici l'erreur


    Fatal error: Uncaught exception 'com_exception' with message '<b>Source:</b> Unknown<br/><b>Description:</b> Unknown' in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\test\test.php:6 Stack trace: #0 C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\test\test.php(6): com->Connect('PhoenixContact....', '172.16.158.70') #1 {main} thrown in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\test\test.php on line 6

  4. #4
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 13
    Points : 11
    Points
    11
    Par défaut
    Bon j'ai trouver mon problème. C'est en fait que apache partait en services et non avec l'utilisateur auquel j'étais connecter. Je suis à mon emplois et on est sur réseau Novel. En gros de la grosse sécuritée pour pas grand chose. Mais l'ordinateur auquel je me connectais ne devais pas accepter l'utilisateur auquel apache étais parti ( en fait je ne sais meme pas c'est quoi l'utilisateur qui démare les services ... ). J'avais meme quelque problème lorsque je me connectais sur le localhost ( dépassais le délais de 30 sec de php ... ). J'ai donc parti le service manuellement ( httpd.exe ) de apache mais à partir de l'utilisateur auquel j'étais connecter et boum, tout fonctionne à merveille. Vive les réseau de grosse corporation, ou les administrateur réseau sont dans un autre ville, province ou pays ( dans mon cas ).

    En conclusion : Toujours penser à l'utilisateur qui part le programme si vous etes dans un gros domaine avec utilisateur si votre programme est en service.

    Merci pareille de votre aide

  5. #5
    Membre à l'essai
    Inscrit en
    Mars 2010
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 43
    Points : 21
    Points
    21
    Par défaut
    Salut ,

    Je remonte le topic ....

    Ou trouver l'objet COM OPC ??

    J'ai juste trouvé une dll , qui n'a pas l'air compatible...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Fatal error: Uncaught exception 'com_exception' with message 'Failed to create COM object `OPCDAAuto': Syntaxe incorrecte ' in C:\Program Files (x86)\EasyPHP-5.3.1\www\testopc.php:4 Stack trace: #0 C:\Program Files (x86)\EasyPHP-5.3.1\www\testopc.php(4): com->com('OPCDAAuto') #1 {main} thrown in C:\Program Files (x86)\EasyPHP-5.3.1\www\testopc.php on line 4
    Merci

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    Je reprends ce sujet car les personnes qui interviennent ici pourront surement me débloquer.

    Un collègue à un API phoenix-Contact avec un serveur OPC du même nom. Il a un client VB pour excel et j'aimerai bien réaliser une IHM en HTML. Du coup il me faudrait accéder au serveur OPC avec du PHP.

    Le code de babbu me semble sympathique mais pour instancier l'objet OPC.Automation je dois surement faire appel à une dll .... et je n'ai que la dll pour vb qui ne fonctionne pas avec apache (dans php.ini il me rappelle justement que la dll n'est pas valide).

    Je ne connais pas bien ce domaine alors si quelqu'un pouvait me débloquer j'en serai ravi.

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/09/2013, 09h39
  2. Réponses: 9
    Dernier message: 12/02/2012, 19h31
  3. Piloter Outlook par Automation : Problème de sécurité.
    Par nancy54 dans le forum API, COM et SDKs
    Réponses: 9
    Dernier message: 19/06/2009, 14h31
  4. [OPC Serveur] problème de lecture
    Par andylau82 dans le forum Automation
    Réponses: 3
    Dernier message: 20/06/2007, 16h16
  5. [Automation]Problème avec la valeur envoyé vers un doc word
    Par ludovicparis dans le forum VBA Access
    Réponses: 5
    Dernier message: 12/04/2007, 14h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo