Maison > développement back-end > tutoriel php > Comment implémenter l'enregistrement et l'analyse des données Modbus TCP via PHP

Comment implémenter l'enregistrement et l'analyse des données Modbus TCP via PHP

王林
Libérer: 2023-07-17 21:32:02
original
1621 Les gens l'ont consulté

Comment mettre en œuvre l'enregistrement et l'analyse de données Modbus TCP via PHP

Modbus est un protocole de communication largement utilisé dans le domaine de l'automatisation industrielle. Modbus TCP est une variante du protocole Modbus qui transmet via Ethernet, offrant une vitesse et une fiabilité plus élevées. Cet article expliquera comment utiliser le langage PHP pour implémenter l'enregistrement et l'analyse des données Modbus TCP.

1. Installez l'extension PHP Modbus
Tout d'abord, nous devons installer l'extension PHP Modbus. Il peut être installé avec la commande suivante :

$ pecl install modbus

Après l'installation, ajoutez la ligne suivante dans le fichier php.ini :

extension=modbus.so

Enregistrez et redémarrez PHP.

2. Établir une connexion Modbus
En utilisant l'extension PHP Modbus, nous pouvons facilement établir une connexion avec des appareils Modbus. Tout d’abord, nous devons créer un maître Modbus à l’aide de la classe ModbusMaster.

require_once('ModbusMaster.php');

$ip = '192.168.1.100'; // L'adresse IP du périphérique Modbus
$port = 502; // Le numéro de port du Modbus périphérique

$ modbus = new ModbusMaster($ip, $port);
?>

3 Lire la valeur du registre Modbus
Ensuite, nous pouvons utiliser la méthode readMultipleRegisters dans la classe ModbusMaster pour lire la valeur du s'inscrire dans l'appareil Modbus.

$slaveId = 1; // Adresse de l'esclave
$startAddress = 0; // Adresse de départ
$numberOfRegisters = 10; // Nombre de registres à lire

$data = $modbus- > readMultipleRegisters($slaveId, $startAddress, $numberOfRegisters);

var_dump($data); //Imprimer la valeur du registre lu
?>

4. Écrivez la valeur du registre Modbus
Nous pouvons également utiliser ModbusMaster Le writeSingleRegister. La méthode de la classe est utilisée pour écrire la valeur du registre dans l'appareil Modbus.

$slaveId = 1; // Adresse de l'esclave
$registerAddress = 0; // Adresse du registre
$value = 123; // Valeur à écrire

$modbus->writeSingleRegister($ slaveId, $registerAddress, $value);
?>

5. Enregistrement et analyse des données
Grâce aux étapes ci-dessus, nous avons réussi à établir une connexion avec l'appareil Modbus et pouvons lire et écrire la valeur du registre. Ensuite, nous pouvons utiliser les fonctions d'exploitation de fichiers de PHP pour implémenter l'enregistrement et l'analyse des données.

$file = 'data.txt'; // Fichier d'enregistrement de données

// Lire les données historiques dans le fichier
$historyData = [];
if (file_exists($file)) {

$historyData = file($file, FILE_IGNORE_NEW_LINES);
Copier après la connexion

}

// Obtenez l'heure actuelle et enregistrez la valeur
$time = date('Y-m-d H:i:s');
$value = $data['response'];

// Combinez l'heure actuelle et La valeur du registre est ajoutée à la fin des données historiques
$historyData[] = $time ',' . $value;

// Écrivez de nouvelles données historiques dans le fichier
file_put_contents($file, implode(PHP_EOL. , $historyData)) ;

//Analyse des données
$total = 0;
$count = count($historyData);
foreach ($historyData as $line) {

$parts = explode(',', $line);
$total += $parts[1];
Copier après la connexion

}
$average = $total / $ count;

echo 'Enregistrement des données historiques terminé. '. PHP_EOL;
echo 'Nombre total de données historiques :' . $count . 'Bar' . PHP_EOL;
echo 'Moyenne des données historiques :' . En suivant les étapes ci-dessus, nous avons implémenté avec succès l'enregistrement et l'analyse des données Modbus TCP à l'aide du langage PHP. En établissant une connexion Modbus, en lisant et en écrivant des valeurs de registre et en utilisant des fonctions d'exploitation de fichiers pour l'enregistrement et l'analyse des données, nous pouvons facilement surveiller et contrôler les données des appareils Modbus. J'espère que cet article pourra vous être utile !

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal