Je cherche quelqu'un de calé en PHP :)

cs_eastflo Messages postés 8 Date d'inscription mercredi 7 juillet 2010 Statut Membre Dernière intervention 20 juillet 2010 - 16 juil. 2010 à 16:23
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 - 20 juil. 2010 à 20:44
Bonjour,

Je m'explique, je découvre le code PHP et je dois réaliser, dans le cadre de mon stage, un Web Serveur capable d'aller demander à un automate des informations (trame modbus tcp...).
J'ai le code qui fonctionne en VB, et si besoin est je peux vous dire tout ce qui est nécessaire pour comprendre comment fonctionne des trames, et les communication en réseau local entre un PC et un automate.
j'aimerais donc trouver quelqu'un de plutôt calé en PHP (en tout cas plus que moi )pour m'aider à réaliser ce code, et ensuite le mettre à disposition sur le site dans la rubrique "code".

Cordialement
Florian

PS: ce que j'ai à faire est une demande de "dernière minute" imposé par mon tuteur en plus de mon sujet,et ce n'est pas exactement dans mes cordes(et il me reste 4 semaines de stage ).

9 réponses

kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
17 juil. 2010 à 16:16
Salut,

Ca pourrait m'intéresser, sauf qu'il y a 2 problèmes de taille :
- je ne connais que très (très très) peu VB
- et le plus important : je n'ai pas de quoi tester

Pour le premier point, si tu as le code VB ET la structure des trames modbus suffisamment documentée je pense pouvoir me débrouiller.

Pour le second je peux peut être avoir le matériel nécessaire pour tester, mais vu les délais pour y parvenir et ma charge de boulot je ne serai sans doute pas capable de sortir quelque chose sous 4 semaines (à voir tout de même)

Pour tout te dire j'ai déjà cherché une implémentation d'une com modbus (et autres) en PHP, sans jamais trouver quelque chose d'abouti.

Je reste ouvert à tes éventuelles trouvailles sur ce sujet et si je peux t'aider n'hésite pas à faire appel.

Peux tu apporter des précisions sur ton projet (type d'API, référence du server web, etc ...) ?

Cordialement,


Kohntark -
0
gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 2
18 juil. 2010 à 14:12
Bonjour,

1
il y a moyen d'utilise du code vb sur un serveur avec PHP ....=> vb-CGI


2
php + modbus =google code

3
zut il n'y a pas de 3

a+
0
gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 2
18 juil. 2010 à 14:14
Bonjour,

oh j'oubliais de préciser que le code vb en cgi ne fonctionne surement pas sur un serveur linux

a+
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
18 juil. 2010 à 14:36
Salut Gillardg,

oh j'oubliais de préciser que le code vb en cgi ne fonctionne surement pas sur un serveur linux

... c'est là toute la puissance de VB, mais bon, chut, faut pas l'dire

Merci pour le lien, je n'étais pas tombé dessus lors de mes rapides recherches (qui datent)
Ca n'a pas l'air mal de prime abord, je vais voir si j'ai la possibilité de tester.

Je n'ai eu que le temps de survoler, cela étant il me semble qu'il ne s'agit que de trames UDP, ce qui ne correspond pas à la demande de Eastflo.


Cordialement,

Kohntark -
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 2
18 juil. 2010 à 16:29
0
cs_eastflo Messages postés 8 Date d'inscription mercredi 7 juillet 2010 Statut Membre Dernière intervention 20 juillet 2010
19 juil. 2010 à 08:44
Tout d'abord merci de vos réponses, les 2 premier liens que tu as donné gillardg, je les ai déjà visité, mais sans vraiment aboutir, par contre grâce au dernier, j'ai trouver ca: http://www.phpclasses.org/browse/file/5871.html

Le seul problème est que j'ai beaucoup de mal à comprendre ce code, mais si kohntark répond favorablement à mon MP, je pense qu'on aboutira très vite (en tout cas je l'espère ), à quelque chose de super.

Merci à tous les deux
0
cs_eastflo Messages postés 8 Date d'inscription mercredi 7 juillet 2010 Statut Membre Dernière intervention 20 juillet 2010
19 juil. 2010 à 16:58
Je vous fait part de ce que j'ai pu développer aujourd'hui...comme je vous l'ai déjà dit je débute, donc ça ne fonctionne pas vraiment bien:

<html>
<head>
<title>Trame de Lecture </title>
</head>

OUVRAGE 5 POMPES

requete lecture de mot dans l'automate :



<?php
error_reporting(E_ALL); // Cette fonction dit à PHP d'afficher presque toutes les erreurs.
//Temps maximum d'exécution de la page en sec
set_time_limit(1);
//Création de ma "passerelle de com" -> socket TCP/IP
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket < 0)
// La fonction "socket_strerror()" permet d'afficher les différentes erreurs possibles liées à la socket
echo "socket_create() a échoué : raison : " . socket_strerror ($socket) . "
";
else
echo "OK.
";

//définition adresse IP automate pour s'y connecter, et du port de com
$addresse '192.168.1.82'; $port 502;

//Connexion de la socket
socket_connect ( $socket , $addresse , $port );

echo "Essai de connexion à $adresse sur le port '$port'...";
$ResultConnex = socket_connect($socket, $adresse, $port);
if ($ResultConnex < 0)
echo "socket_connect() a échoué : raison : ($ResultConnex) " . socket_strerror($ResultConnex) . "
";
else
echo "OK.
";

//definition du type des variables du tableau
$trame[0] = chr(0);
$trame[1] = chr(0);
$trame[2] = chr(0);
$trame[3] = chr(0);
$trame[4] = chr(0);
$trame[5] = chr(6); // longueur donnée ModBus; nombre d'octets qui suivent
$trame[6] = chr(255); // numéro de l'esclave
$trame[7] = chr(3); // code fonction : 3 = demande de lecture
$trame[8] = chr(0); // numéro/adresse du premier mot à lire (PF)
$trame[9] = chr(100); // numéro/adresse du premier mot à lire (Pf)
$trame[10] = chr(0); // nombre de mots à lire (PF)
$trame[11] = chr(3); // nombre de mots à lire (Pf)
//création de mon tableau de trame de lecture
$lecture = array($trame[0], $trame[1], $trame[2], $trame[3], $trame[4], $trame[5], $trame[6], $trame[7], $trame[8], $trame[9], $trame[10], $trame[11]);
$RepLecture = '';

// Envoie de la trame de la lecture
// La fonction "socket_write()" permet d'écrire le message qu'on veut envoyer dans la socket
echo "Envoi de la requête ...";
socket_write($socket, $lecture, strlen($lecture));
echo "OK"."
";
/*// on met en écoute la socket en attendant le traitement de la trame par l'automate
$ecoute = socket_listen($socket);
if(($ecoute socket_listen($socket)) true)
echo "L'écoute de la socket OK"."

";*/
// on lit la réponse que notre automate a généré
echo "Lecture de la réponse "."

";
// "2048" est la longueur maximum de la réponse.
while ($RepLecture = socket_read($socket, 2048))
echo $RepLecture;

//Fermeture du serveur
socket_close($socket);


?>

</html>


, si vous arrivez à me trouver une erreure, et/ou surtout à me dire ce qui est bon et ce qui n'est pas bon pour aboutir à ce que je souhaite; je suis tout ouïe
0
cs_eastflo Messages postés 8 Date d'inscription mercredi 7 juillet 2010 Statut Membre Dernière intervention 20 juillet 2010
20 juil. 2010 à 15:15
Bonjour à tous,
je n'ai pas eu de réponse au MP que je t'ai envoyé kohntark, donc je souhaite savoir si tu es toujours intéréssé pour travailler avec moi ...
Je continue à "développer le code" mais je commence à vraiment avoi besoin de ton aide car le code que je vous ai montré n'est pas ce à quoi ressemblera exactement le code final, car je dois encore mettre en forme et surtout faire des bouton pour effectuer l'envoie d'une trame....
Cdlt
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
20 juil. 2010 à 20:44
Re,

je n'ai pas eu de réponse au MP que je t'ai envoyé kohntark

J'y ai répondu avant de voir ton dernier message , et je n'ai pu le faire hier.

et surtout faire des bouton pour effectuer l'envoie d'une trame...

Je ne pense pas que ce soit là un gros problème.

Pour ce qui est du code le plus simple et efficace reste le test en grandeur réelle et de nous faire part des résultats.
Il y aura cependant plusieurs choses à modifier (je n'ai que survolé).

... mais pourquoi n'essaies tu pas plutôt la classe de cette adresse ?
=> http://www.phpclasses.org/browse/file/5871.html


Profite en pour vérifier que le potentiel bug n'apparait pas (cf http://phpclasses.megamobile.be/discuss/package/377/)



Cordialement,

Kohntark -
0
Rejoignez-nous