USB-シリアル変換ケーブルが動作しなくなったとしても、必ずしもケーブル自体に問題があるとは限りません。RS232、RS485、TTL、Modbus RTUなど、数多くのアプリケーションにおいて、USB-シリアル変換ケーブルのデバッグには、USB接続、ドライバ、COMポート、配線、シリアルパラメータ、プロトコル設定、現場の電気環境などを段階的にテストしていく必要があります。
USB-シリアルアダプタは、最新のコンピュータをPLC、CNC装置、バーコードリーダー、ゲージ、センサー、コントローラ、オンボードコンピュータ、その他さまざまなシリアル機器に接続するために使用できます。しかし、アダプタが認識されない、COMポートが表示されない、またはデバイスが反応しない場合、ユーザーはケーブルの故障だとすぐに考えてしまいがちです。実際には、これらの問題のほとんどは、ドライバの不一致、インターフェースの間違い、ピン配置の間違い、RS485の極性の間違い、Modbus RTUの設定の間違い、または産業干渉が原因で発生します。
このガイドでは、USB-シリアル変換ケーブルでよく発生する問題とその効果的な解決方法について解説します。
まず、コンピューターがUSB-シリアル変換アダプターを認識できるかどうかを確認する必要があります。Windowsの場合は、デバイスマネージャーを開き、「ポート(COMとLPT)」セクションに適切なCOMポートが表示されているかどうかを確認してください。アダプターが未確認のUSBデバイスとして表示されたり、黄色の警告マークが表示されたり、そもそも表示されない場合は、USBポート、ドライバー、チップセット、またはハードウェアに問題がある可能性があります。
USB-シリアルアダプタが認識されない場合は、別のUSBポートを使用するか、電源の入っていないUSBハブを使用せず、別のコンピュータでケーブルをテストし、USBコネクタが緩んでいないか、破損していないかを確認してください。複数のコンピュータで認識されない場合は、アダプタのブリッジIC、PCB、または内部接続に不具合がある可能性があります。
最もよくある問題の一つは、USBデバイスは認識されるものの、USBシリアルポートが利用可能なCOMポートとして表示されないことです。これは通常、オペレーティングシステムが仮想シリアルポートを正しく確立できないことを示しています。
市販されている各種USB-シリアル変換ケーブルには、FTDI、CP210x、CH340、PL2303など、さまざまなUSB-UARTブリッジICが搭載されている場合があります。各チップセットには適切なドライバが必要です。安定した動作を実現するには、無作為に入手したサードパーティのドライバサイトに頼るのではなく、アダプタのサプライヤーまたはチップセットメーカーが提供するドライバを使用してください。
ドライバをインストールしてもCOMポートが表示されない場合は、ドライバを削除し、ケーブルを再度接続してコンピュータを再起動し、再度テストしてください。同じコンピュータで別の正常に動作するUSB-シリアル変換ケーブルが動作する場合は、古いアダプタのチップセットまたはハードウェアに不具合がある可能性があります。
COMポートが表示されていても、シリアルソフトウェアが必ずしもそれを開くとは限りません。シリアルポートは通常、複数のアプリケーションから同時にアクセスすることはできません。PuTTY、Tera Term、Modbus Poll、PLCソフトウェア、またはその他のバックグラウンドプロセスが既にシリアルポートを使用している場合、目的のソフトウェアが接続できない可能性があります。
シリアル通信アプリケーションをすべて終了し、USB-シリアルケーブルを再接続してから、必要なアプリケーションのみを起動してください。また、ソフトウェアが正しいCOMポートを選択していることを確認してください。
一部の旧型PLC、CNC、POS、または計測機器ソフトウェアは、COM1~COM8しか認識できません。WindowsがCOM18、COM25、またはそれ以上のポート番号を指定している場合、ソフトウェアがポートを認識できない可能性があります。その場合は、デバイスマネージャーでCOMポート番号を、使用可能なより小さい番号に手動で変更してください。
USB-シリアルケーブルの問題を解決する上で重要なのは、正しいインターフェースタイプが特定されていることを確認することです。RS232、RS485、TTLは互換性がありません。
DB9コネクタは必ずしも標準のRS232ではありません。端子台は必ずしもRS485ではありません。ピンヘッダーは必ずしもTTL UARTではありません。ほとんどの産業用機器は独自のピン配置を採用しているため、接続を行う前に必ず機器のマニュアルを参照してください。
USB-RS232ケーブルに不具合が生じた場合は、TXD、RXD、GND、ピン配置、ボーレート、パリティ、ストップビット、およびRTS/CTSまたはDTR/DSRハンドシェイク信号の使用の必要性を確認してください。ハードウェアフロー制御を必要とする旧型デバイスの場合、基本的なTX/RX/GNDアダプタでは不十分な場合があります。
USB-RS485ケーブルが正常に動作しない場合は、A/Bの極性、ボーレート、スレーブID、バス構造、終端抵抗、接地状態などを確認する必要があります。RS485の通信問題のほとんどは、アダプタの故障ではなく、A/Bケーブルの接続ミスやModbus RTUの設定ミスが原因です。
USB-TTLケーブルが動作しない場合は、対象デバイスが3.3V TTLまたは5V TTLを使用しているかを確認してください。TXはRXに、RXはTXに、GNDはGNDに接続する必要があります。対象ボードがアダプタからの電源供給を必要とすることが確実な場合を除き、VCCは接続しないでください。USB-TTLケーブルはRS232デバイスに直接接続することはできません。
COMポートが開いているにもかかわらずデバイスが応答しない場合、USBドライバとCOMポート自体は正常に機能している可能性が高いです。問題の原因としては、配線、インターフェースの不一致、シリアルパラメータ、またはプロトコル設定などが考えられます。
RS232およびTTLを使用する場合は、TXとRXが正しく接続されていること、およびGNDが接続されていることを確認してください。TX/RXが逆接続されている場合、またはGNDが接続されていない場合、COMポートは通常どおり開くことがありますが、デバイスは通信できません。
RS485では、A/B極性を確認してください。RS485回線を識別するために、メーカーによってA/B、D+/D-、485+/485-など、さまざまなラベルが使用されていますが、これらのラベルは必ずしも一貫しているとは限りません。すべての設定が正しくても何も起こらない場合、AとBを入れ替えるのは、現場での一般的なトラブルシューティング手法です。
シリアルモニタに文字化けしたシリアルデータや判読不能な文字が表示される場合、接続が部分的にしか機能していない可能性があります。最も一般的な原因は、ボーレート、パリティ、データビット、ストップビット、フロー制御、またはTTL電圧レベルの誤りです。
両者が9600 8N1、19200 8E1、または115200 8N1など、同じシリアルパラメータを使用していることを確認してください。ボーレートが正しくないと、ランダムな文字が出力される可能性があります。パリティビットまたはストップビットが正しくない場合、デバイスはコマンドを無視するか、異常なデータを出力する可能性があります。
ほとんどのシンプルなシリアルアプリケーションでは、デバイスのマニュアルでRTS/CTSまたはXON/XOFFと指定されていない限り、フロー制御を「なし」に設定することをお勧めします。
Modbus RTUのタイムアウトは、マスターが要求を送信したものの、許容時間内に有効な応答を受信しなかったことを示します。これは必ずしもUSB-RS485ケーブルの故障によるものではありません。
Modbusスレーブ識別番号、伝送速度、パリティ、ファンクションコード、レジスタアドレス、タイムアウト、再試行設定の値を確認してください。スレーブIDが間違っている場合、デバイスは応答しません。ボーレートまたはパリティが一致しない場合、マスターはタイムアウトまたはCRCエラーを示す可能性があります。
レジスタのアドレス指定もよくある問題です。一部のプログラムは0ベースのアドレス指定を使用しますが、他のソフトウェアは1ベースのアドレス指定を使用します。マニュアルでレジスタが40001と記載されていても、Modbusツールによっては入力方法が異なる場合があります。
システムの最初のテストでは、短いケーブルを使用してRS485スレーブデバイスを1台だけ接続し、9600または19200といった低いビットレートから開始する必要があります。
Modbus RTU CRCエラーは通常、データは受信されたものの、送信中に破損したことを示します。また、RS485信号の品質、ケーブル配線、接地、シールド、終端処理、または電気ノイズが原因である可能性もあります。
RS485ネットワークは通常、デイジーチェーン型のバストポロジーで構成されます。ケーブル配線の品質不良、長いスター型配線、または過剰な分岐は、信号の反射や通信の不安定化につながる可能性があります。長距離または高速での安定した動作を実現するために、RS485ネットワークでは、バスの両端に120Ωの終端抵抗を設置する必要がある場合があります。
この問題の解決策は、おそらく信号品質または干渉に関連していると考えられます。ボーレートを下げるとCRCエラーが減少するためです。シールド付きツイストペアケーブルを使用し、RS485回線をモーターケーブルやVFDの出力から分離し、接地が適切に行われていることを確認してください。
USB-シリアル変換ケーブルは、机上では正常に動作するのに、産業用キャビネット内では動作しない場合があります。このような場合、原因としては、電磁干渉(EMI)、グランドループ、可変周波数駆動装置(VFD)、モーター、リレー、スイッチング電源、または接地不良などが考えられます。
短いケーブル、低速のボーレート、シールド付きツイストペア線、適切な接地、そして良好な配線経路を使用してください。ノイズの多い環境や接地電位差がある場合には、絶縁型USB-RS485アダプタを使用することでパフォーマンスを向上させることもできます。
新しいUSB-シリアル変換ケーブルを取り付ける前に、ループバックテストを実施してください。RS232またはTTLをテストするには、TXとRXを接続し、シリアルターミナルを開いて、送信した文字が返ってくるかどうかを確認します。ループバックテストが成功した場合、アダプタの基本的な送受信動作が正常に機能していることを意味します。
RS485でテストを行う場合は、USB-RS485変換アダプタを2個、または正常に動作することが確認されているRS485デバイスを1個使用してください。ケーブルは短く、デバイスは1つだけ接続し、適切なA/B配線を行い、基本的なModbus RTUコマンドに対応している必要があります。
信頼性の高いUSB-シリアルケーブルのトラブルシューティング方法は、常に通信チェーンの各層ごとに、USB検出、ドライバのインストール、COMポートの状態、インターフェースの種類、配線、シリアル設定、Modbus RTU構成、および産業現場環境の順に実行する必要があります。
RS232の場合は、TX/RX配線、GND、ピン配置、ハンドシェイク信号を確認してください。RS485の場合は、A/B極性、Modbus RTU設定、バス配線、終端、接地、ノイズをテストしてください。TTL UARTの場合は、接続前にロジックレベル(3.3Vまたは5V)を確認してください。
USB-シリアル変換ケーブルが動作しない場合、ほとんどの場合、通信設定のいずれかの段階に問題があります。各段階を注意深く検査することで、実際の原因をより迅速に特定し、故障した部品を交換する必要がなくなります。
フランク・ヤン
創業者 | Farsince Connectivity Solutions
フランク・ヤンはFarsinceの創設者であり、ケーブルおよび接続業界で13年以上の経験を持ち、データセンター、産業、ネットワーク接続ソリューションに関して世界中の顧客と緊密に連携してきました。