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>
<body>
<h1> OUVRAGE 5 POMPES </h1>
<p> requete lecture de mot dans l'automate :</p>
<?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) . "<br />";
else
echo "OK.<br />";
//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) . "<br />";
else
echo "OK.<br />";
//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"."<br />";
/*// 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"."<br /><br />";*/
// on lit la réponse que notre automate a généré
echo "Lecture de la réponse "."<br /><br />";
// "2048" est la longueur maximum de la réponse.
while ($RepLecture = socket_read($socket, 2048))
echo $RepLecture;
//Fermeture du serveur
socket_close($socket);
?>
</body>
</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
