Modbus TCP est un protocole de communication industriel basé sur le protocole TCP / IP, qui est largement utilisé dans le domaine du contrôle industriel, en particulier dans la transmission des données entre les appareils. En utilisant le protocole MODBUS TCP, la lecture des données en temps réel et l'écriture entre les appareils peuvent être réalisées. Cet article introduira en détail comment utiliser le langage PHP pour implémenter les opérations de lecture et d'écriture par lots de Modbus TCP, et d'attacher des exemples de code pertinents pour aider les développeurs à implémenter rapidement les fonctions connexes.
Avant de commencer à écrire du code PHP, vous devez vous assurer que les extensions et l'environnement PHP pertinents sont installés. Assurez-vous que le serveur a installé PHP et prend en charge les extensions du protocole MODBUS TCP. Une fois l'installation terminée, vous pouvez vérifier si l'état d'exécution de PHP et si les extensions associées sont chargées en utilisant la fonction phpinfo ().
Dans PHP, la création d'une connexion Modbus TCP utilise généralement la fonction modbus_new_tcp (). Cette fonction nécessite deux paramètres: l'adresse IP et le numéro de port du serveur MODBUS TCP. Voici l'exemple de code pour créer une connexion:
$modbus = modbus_new_tcp("192.168.1.10", 502);
if (!$modbus) {
die('Failed to create Modbus TCP connection');
}
Après avoir réussi à créer la connexion, vous pouvez utiliser la fonction modbus_read_input_registers () pour la lecture des données. Cette fonction nécessite quatre paramètres: connexion Modbus TCP, adresse d'esclave, adresse de registre et nombre de lectures. Voici un exemple de lecture des registres d'entrée:
$data = modbus_read_input_registers($modbus, 1, 0, 10);
if ($data === false) {
die('Failed to read input registers');
}
print_r($data);
Grâce au code ci-dessus, les données de 10 registres à partir du registre 0 de l'appareil avec l'adresse de la machine 1 peuvent être lues et le résultat peut être sorti.
Dans les applications pratiques, il peut être nécessaire de lire ou d'écrire des données sur plusieurs appareils simultanément. À cette fin, PHP fournit la fonction modbus_read_input_registers_batch () et modbus_write_single_register_batch (), qui prend en charge les opérations de lot. Voici un exemple de code pour la lecture par lots des registres d'entrée:
$addresses = [0, 1, 2, 3, 4];
$data = modbus_read_input_registers_batch($modbus, 1, $addresses);
if (!$data) {
die('Failed to read input registers batch');
}
print_r($data);
En même temps, la fonction modbus_write_single_register_batch () peut être utilisée pour parcourir les registres d'écriture. Il accepte trois paramètres: connexion Modbus TCP, adresse de périphérique et tableau contenant des adresses et des données de registre. Voici un exemple d'écriture par lots:
$registersAndData = [
[0, 100],
[1, 200],
[2, 300],
[3, 400],
];
$success = modbus_write_single_register_batch($modbus, 1, $registersAndData);
if (!$success) {
die('Failed to write single register batch');
}
Grâce à ces codes, vous pouvez parcourir les opérations de lecture et d'écriture sur plusieurs appareils en même temps, améliorant considérablement l'efficacité des opérations de données.
Grâce à l'introduction et à un exemple de code ci-dessus, nous pouvons voir qu'il est très simple et efficace d'implémenter les opérations de lecture et d'écriture par lots de Modbus TCP via le langage PHP. Tant que vous préparez l'environnement de développement pertinent et utilisez les fonctions d'extension PHP appropriées, les opérations de communication et de données entre les appareils peuvent être réalisées avec succès. J'espère que cet article peut vous aider à mieux comprendre et utiliser le protocole Modbus TCP pour améliorer les capacités de traitement des données des systèmes de contrôle industriel.