Maison  >  Article  >  développement back-end  >  Comment implémenter la lecture et l'écriture de données Modbus TCP via PHP

Comment implémenter la lecture et l'écriture de données Modbus TCP via PHP

WBOY
WBOYoriginal
2023-07-17 14:48:141413parcourir

Comment implémenter la lecture et l'écriture de données Modbus TCP via PHP

Modbus est un protocole de communication couramment utilisé pour communiquer entre les appareils dans le domaine industriel. Modbus TCP est une variante du protocole Modbus qui utilise le protocole TCP/IP pour communiquer sur le réseau. Dans cet article, nous expliquerons comment lire et écrire des données Modbus TCP via PHP.

  1. Installer l'extension Modbus PHP
    Avant d'utiliser PHP pour implémenter la communication Modbus TCP, nous devons installer une extension Modbus PHP. Une extension couramment utilisée est phpmodbus, vous pouvez télécharger son code sur https://github.com/angeloc/phpmodbus et copier le code dans votre projet PHP.
  2. Établir une connexion Modbus TCP
    Établir une connexion Modbus TCP est très simple grâce à l'extension phpmodbus. Tout d'abord, nous devons créer un objet ModbusMaster et spécifier l'adresse IP et le numéro de port du serveur Modbus. Les exemples sont les suivants :
require_once('modbus/ModbusMaster.php');

$modbus = new ModbusMaster("192.168.1.1", "TCP");
  1. Lire les données Modbus
    Le protocole Modbus prend en charge plusieurs méthodes de lecture de données, telles que la lecture des registres de maintien (Holding Register), des registres d'entrée (Input Registers), des bobines (Coil), etc. Nous pouvons utiliser la méthode readMultipleRegisters() de l'objet ModbusMaster pour lire les données du registre de maintien. Un exemple est le suivant :
$startAddress = 0;
$length = 10;

$data = $modbus->readMultipleRegisters(1, $startAddress, $length);

for ($i = 0; $i < $length; $i++) {
    echo "寄存器 " . ($startAddress + $i) . " 的值: " . $data[$i] . "
";
}
  1. Write Modbus data
    Si nous voulons écrire des données sur le serveur Modbus, nous pouvons utiliser la méthode writeSingleRegister() ou writeMultipleRegisters() de l'objet ModbusMaster. Un exemple est le suivant :
$address = 1;
$value = 123;

$modbus->writeSingleRegister($address, $value);

echo "写入成功
";
  1. Gestion des erreurs
    Dans les applications pratiques, nous devons effectuer une gestion des erreurs sur la communication Modbus. Chaque méthode de l'objet ModbusMaster renvoie une valeur booléenne indiquant si la communication a réussi. Si la communication échoue, nous pouvons utiliser la méthode getError() pour obtenir des informations sur l'erreur. Un exemple est le suivant :
if (!$modbus->writeSingleRegister($address, $value)) {
    echo "写入失败:" . $modbus->getError() . "
";
}

En résumé, nous pouvons utiliser PHP pour lire et écrire des données Modbus TCP en utilisant l'extension phpmodbus. En établissant l'objet ModbusMaster et en choisissant la méthode appropriée, nous pouvons facilement effectuer une communication Modbus. Prêter attention à la gestion des erreurs peut améliorer la stabilité et la fiabilité du programme.

Bien que cet article ne fournisse que les bases de la mise en œuvre de Modbus TCP en PHP, il vous fournit un bon point de départ pour que vous puissiez apprendre davantage et développer des applications Modbus plus complexes. J'espère que vous pourrez continuer à explorer et à apprendre dans la pratique et à exploiter pleinement le potentiel de Modbus !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn