ホームページ >バックエンド開発 >PHPチュートリアル >PHP および RS232 プロトコルを介してシリアル通信を実装する方法

PHP および RS232 プロトコルを介してシリアル通信を実装する方法

王林
王林オリジナル
2023-07-29 17:59:062498ブラウズ

PHP および RS232 プロトコルを介してシリアル通信を実現する方法

概要:
現在、シリアル通信は産業オートメーション、通信機器などの多くの分野で広く使用されています。この記事では、PHP 言語を使用して RS232 プロトコル経由でシリアル ポートと通信する方法を紹介し、関連するコード例を示します。

RS232 プロトコルの概要:
RS232 プロトコルは、一般的に使用されるシリアル通信プロトコルであり、シリアル通信の物理層とデータリンク層の標準を定義します。 RS232 プロトコルを通じて、コンピューターとセンサー、PLC などの外部デバイスとの間でデータを送信できます。

PHP が RS232 と通信する方法:
PHP 言語を使用してシリアル ポートと通信するには、PHP 拡張ライブラリ php_serial を使用する必要があります。 php_serial は、シリアル通信関数を PHP クラス ライブラリにカプセル化するオープン ソースの拡張ライブラリです。

手順は次のとおりです。

  1. システムがシリアル ポート通信をサポートしていることを確認する
    php_serial を使用する前に、まずシステムのシリアル ポート デバイスが適切に動作していることを確認する必要があります。ターミナル コマンド ls /dev/tty* を使用すると、システムで使用可能なシリアル デバイスを表示できます。
  2. php_serial 拡張ライブラリをインストールする
    次のコマンドを使用して php_serial 拡張ライブラリをインストールできます。

    sudo apt-get install php-pear
    sudo pecl install channel://pecl.php.net/php_serial

    インストールが完了したら、次の設定を追加する必要があります。 php.ini:

    extension=php_serial.so
  3. php_serial クラスを導入し、シリアル ポート オブジェクトを作成します。
    PHP コードでは、require_once キーワードを通じて php_serial クラスを導入し、SerialPort オブジェクトを作成できます。 :

    require_once('php_serial.class.php');
    $serial = new phpSerial;
  4. シリアル ポート パラメータの設定
    シリアル ポートと通信する前に、ボー レート、データ ビット、パリティなどのシリアル ポートのパラメータを設定する必要があります。 。 setPort、setParity、setDataBits などのメソッドを使用して、シリアル ポート パラメータを設定できます。

    $serial->setPort("/dev/ttyUSB0");
    $serial->setBaudRate(9600); //设置波特率为9600
    $serial->setParity("none");
    $serial->setDataBits(8);
    $serial->setStopBits(1);
    $serial->setFlowControl("none");
  5. シリアル ポートを開く
    シリアル ポート パラメータを設定した後、シリアル ポートを開くことができます。 open メソッドによるポート:

    $serial->open();
  6. シリアル ポート データの読み取りと書き込み
    シリアル ポートで受信したデータは、readPort メソッドを通じて読み取ることができます:

    $read_data = $serial->readPort();

    データは writePort メソッドを通じてシリアル ポートに送信できます:

    $serial->writePort("Hello World!");
  7. シリアル ポートを閉じます
    通信が完了したら、必ずシリアル ポートを閉じてください:

    $serial->close();

    完全な PHP コード例は次のとおりです。

    require_once('php_serial.class.php');
    
    $serial = new phpSerial;
    $serial->setPort("/dev/ttyUSB0");
    $serial->setBaudRate(9600);
    $serial->setParity("none");
    $serial->setDataBits(8);
    $serial->setStopBits(1);
    $serial->setFlowControl("none");
    
    $serial->open();
    
    $serial->writePort("Hello World!");
    
    $read_data = $serial->readPort();
    
    $serial->close();

    シリアル ポート通信は Linux で行われることに注意してください。これは Windows システムでの実装とは若干異なるため、環境に応じて調整できます。システムタイプ。

結論:
PHP および RS232 プロトコルを介してシリアル通信を実装すると、プロジェクトにさらなる可能性がもたらされます。実際のアプリケーションでは、特定の要件に応じてシリアル ポート パラメータを柔軟に調整し、外部デバイスとのデータ通信を実現できます。この記事が読者にとって役に立ち、さらなる探求と実践のきっかけになれば幸いです。

以上がPHP および RS232 プロトコルを介してシリアル通信を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。