html シリアルデータ収集速度:ポーリング、バッファ、タイムアウト | FCTELE
                                   +8618758069661 [email protected]
製品検索 検索ガイド: スペース = AND(かつ)、 | = OR(または)、 ! = NOT(除外)

ご質問はありますか? 今すぐお電話ください!

+8618758069661

またはメッセージをお送りください

オンラインお問い合わせ

シリアルデータ収集の改善:ポーリング、バッファー、タイムアウトの設計

閲覧数: 94 +1FCTELEによるオリジナル記事著者:FCTELE技術チーム
概要

Ethernetポートを高速化しても、シリアルデータの収集周期が変わらないことが多いのはなぜですか?

収集周期には、シリアル伝送、計測器の処理、送受信の切り替え、パケット化、ネットワーク配送、再試行が含まれます。Ethernetの高速化では、計測器やシリアル回線で費やされる時間をなくせません。トランザクション全体と障害局の影響を測定し、文書化された設定を一度に1つずつ調整してください。メッセージのフレーミングと制御権を維持してください。キューの拡大やタイムアウトの短縮だけで、高速かつ正確な収集が保証されるわけではありません。

3つの仕組みと検証の適用範囲信号の流れを追い、実際のサービスを検証する

01回線上のビット数を数える

Count the line bitsCharacter framing consumes serial wire time in addition to payload bits.S01234567TIllustrative 8N1 characterS: start · 0–7: data · T: stopUse the actual device character settings

文字のフレーミングには、ペイロードのビットに加えてシリアル回線の伝送時間が必要です。

02障害局に費やす時間を見込む

Budget failed stationsTimeouts and retries for a silent instrument can delay healthy stations sharing the polling schedule.Node 1Poll 1Node 2Poll 2Node 3Poll 3One shared polling timelineTimeouts and retries also consume scan time

応答しない計測器のタイムアウトや再試行により、同じポーリングスケジュールを共有する正常な局が遅れることがあります。

03流入量と流出量を合わせる

Match arrivals to departuresA finite queue can absorb bursts but cannot sustain a producer that always outruns the serial consumer.ABCBufferArrival, storage and delivery differ

有限のキューはバーストを吸収できますが、常にシリアル側の処理速度を上回る速度でデータを生成する送信元には対応し続けられません。

スワイプして3つの図を比較 →

概念を説明するための図であり、実測波形、設置配線図、特定製品の内部構成を示すものではありません。
  • 回線上のビット数を数える

    要求と応答の時間を見積もる際は、実際のボーレートと文字形式を使用してください。

  • 障害局に費やす時間を見込む

    1局が使用不能で、再試行回数に上限を設けた条件で、周期全体を測定してください。

  • 流入量と流出量を合わせる

    バッファ満杯時の動作を確認し、必要に応じて継続的な負荷を減らしてください。

選定・検証チェックリスト確認項目と関連ガイドを展開する
対象サービスと実際の運用条件に関する確認事項
確認項目確認する内容検証方法
回線上のビット数を数える文字のフレーミングには、ペイロードのビットに加えてシリアル回線の伝送時間が必要です。要求と応答の時間を見積もる際は、実際のボーレートと文字形式を使用してください。
障害局に費やす時間を見込む応答しない計測器のタイムアウトや再試行により、同じポーリングスケジュールを共有する正常な局が遅れることがあります。1局が使用不能で、再試行回数に上限を設けた条件で、周期全体を測定してください。
流入量と流出量を合わせる有限のキューはバーストを吸収できますが、常にシリアル側の処理速度を上回る速度でデータを生成する送信元には対応し続けられません。バッファ満杯時の動作を確認し、必要に応じて継続的な負荷を減らしてください。

シリアル機器のネットワーク接続効率は、Ethernet速度だけでは決まりません。トランザクションには、シリアル伝送、機器の処理、ネットワークでの待機、アプリケーションによる解析が含まれます。ポーリングでは、低速な局や障害局、再試行の影響も加わります。すべての設定値を最大にするのではなく、必要な時間内にデータが正しく到着するよう最適化してください。透過型サーバーが自動的に圧縮、サンプルの同期、任意のプロトコルの修正を行うわけではありません。

1回の応答時間を分解する

要求はコンピューターからネットワーク経由でサーバーへ送られ、その後シリアル回線を1ビットずつ進みます。計測器は要求を完全に受信してから処理し、逆の経路で応答します。各段階で時間がかかります。ネットワークをギガビットに高速化しても、計測器の処理時間やシリアル伝送時間はなくせません。

計算例として、8N1にはスタートビット1ビット、データビット8ビット、ストップビット1ビットが含まれ、1バイトあたり回線上では10ビットになります。9600 bit/sでは、20バイトの伝送に約20.8 msかかります。これは片方向のシリアル伝送時間のみで、要求、処理、ネットワーク、スケジューリングの時間は含みません。トランザクションの応答時間を保証するものではありません。

9600 bit/s、8N1では、20バイトの伝送に約20.8ミリ秒かかり、これにその他のトランザクション遅延が加わります
図1。例示したパラメーターから片方向の伝送時間を計算したものであり、FCTELの実測性能ではありません。

ポーリング周期内で各局に必要な時間を確保する

各局の通常のトランザクション、無通信区間、スケジューリング、再試行に割り当てる時間を合計して、周期を見積もってください。局数が同じでも、応答や処理が異なるため周期が異なることがあります。更新の実現可能性を判断する前に、プロトコル、要求の長さ、標準的な応答と最大応答を整理してください。

切断された局が長いタイムアウトや再試行を繰り返すと、正常な局に使える時間が奪われます。再試行回数の制限、アラーム、管理された頻度低減、またはアプリケーションの規則に基づく一時的な切り離しを使用してください。タイムアウトを無制限に延長してエラーを隠したり、無差別に短い制限を設けて正当な遅い応答を破棄したりしないでください。

パケット化の待ち時間が応答性に与える影響

サーバーは、所定の文字数に達するか、所定の無通信時間が経過するまで送信を待つ場合があります。これにより小さなパケットは減りますが、最初のバイトの送信が遅れます。待ち時間が短いとオーバーヘッドが増えることがあり、長いとアプリケーションのタイムアウトを引き起こすことがあります。一律のミリ秒値ではなく、プロトコルと周期の要件に合わせて選択してください。設定可能な範囲とフレーミング動作はマニュアルで確認してください。

TCPは順序付きバイトストリームであり、1回の読み取りが1つのメッセージに対応するわけではありません。パケット化の最適化は、長さ、終端文字、妥当性確認に基づくプロトコルのフレーミングに代わるものではありません。パケット数が変わっても、必ずしもデータが失われたとは限りません。誤った指標を最適化しないよう、完全なバイト列とトランザクションを比較してください。

バッファは一時的な繁忙に対応する

ネットワークのバーストデータは、シリアル回線で1ビットずつ出力される前にキューに蓄積されることがあります。有限のバッファは待合場所に似ています。一時的な混雑は収容できますが、流入量が流出量を継続的に上回ると、やがて満杯になります。機器のバッファが満杯になったとき、データを破棄するのか、ブロックするのか、その他の動作をするのかを確認してください。大容量バッファでも、無制限のスループットを提供したり、任意の長さの停止中にデータが失われないことを保証したりはできません。

フロー制御には、互換性のあるインターフェース、配線、ソフトウェアが必要です。RTS/CTSとXON/XOFFは、任意の2線式RS485機器に使える万能な解決策ではありません。データ生成側、キュー、消費側の速度を整合させてください。安定して処理できる容量を超える場合は、再試行を増やすのではなく、要求を減らす、アプリケーションを最適化する、独立したチャネルを割り当てるといった対策を取ってください。

有限のキューはバーストを吸収できますが、シリアル出力容量を増やすことはできません。オーバーフロー方針は機種によって異なります
図2。キューは出力容量を増やさずにバーストを吸収します。バッファ容量とオーバーフロー方針は機種によって異なります。

クライアント間でトランザクションを調整する

1つのシリアルポートに複数のネットワークセッションを接続できても、単一マスター方式の計測器へ複数のプログラムが同時に問い合わせてよいわけではありません。コマンドが混在すると、応答の帰属、タイムアウト、実行に混乱が生じます。単に接続数を増やすのではなく、制御用と読み取り専用の役割を定義する、データを一元的に配信する、検証済みのスケジューリングを使用するといった方法を取ってください。

持続的接続は接続確立のオーバーヘッドを回避できますが、切断、無効になったセッション、復旧への対応が必要です。ネットワークのキープアライブが確認するのは接続状態であり、アプリケーションの動作ではありません。許可されていない確認要求を送信せずに、業務上のハートビートの意味を定義してください。再接続時に、バッファ内のすべての書き込みを無条件に再送してはいけません。実行の成否が不明なものは、アプリケーションの規則に従って確認してください。

順序どおりの到着は同期サンプリングではない

TCPが保持するのは接続内の順序であり、計測器間での同時計測ではありません。コンピューターの受信時刻とセンサーのサンプリング時刻は異なります。時間を整合させるには、タイムスタンプの起点、クロック同期、誤差の測定を定義してください。すべてのサーバーがすべてのレコードに自動でタイムスタンプを付けると主張してはいけません。

透過伝送では、エンドポイント間の合意なしに任意の元メッセージを圧縮することはできません。CRCは特定のエラーを検出しますが、すべての障害を自動的に修正するわけではありません。解析を行うゲートウェイと透過型サーバーは役割が異なります。計測器、サーバー、アプリケーションのどこにボトルネックがあるかを特定するため、責任範囲を分けてください。

一度に1つの変数を最適化する

正常動作が確認された設定と生のメッセージを保存し、シリアル側とネットワーク側の時間を記録して、トランザクションの成功、応答時間の分布、タイムアウト、再接続を評価してください。平均が速くても分布の裾にある長い遅延が隠れることがあるため、高パーセンタイル値と最悪の異常値を確認してください。許可なく本番環境に負荷をかけたり、プロトコルを変更したりしないでください。

同一の負荷条件で、パケット化、ポーリング頻度、タイムアウト、再試行の設定を1つずつ評価してください。すべてのポート、1局の障害、ネットワークの中断、アプリケーションの再起動を対象に含めてください。実際の文書に基づいてFCTELのチャネルとモードを選び、CPU名、Ethernet速度、条件の明示されていない宣伝用の曲線ではなく、実測したシステムのサービス水準を基準に受け入れを判断してください。

参考資料:TCPバイトストリーム仕様;FCTELシリアルデバイスサーバーの詳細。図は一般的な仕組みを示しています。曲線は実測値でも性能保証でもありません。

中国語の技術記事から翻訳。原文の初回公開:2025-02-13。原文の最終改訂:2026-10-13T15:49:49+08:00。 中国語の原文を読む

実務上のよくある質問

9600 bit/sで、8N1形式の20バイトを送信するには、どのくらいの時間がかかりますか?

各文字は回線上で10ビットを使用するため、20バイトには片方向で約20.8 msの回線伝送時間が必要です。この例には要求、計測器の処理、ネットワークでの待機、スケジューリングは含まれません。トランザクション全体の時間でも、製品の実測値でもありません。

すべてのシリアルタイムアウトを短縮すれば、ポーリング周期を安全に改善できますか?

それだけでは改善できません。正当な応答に必要な時間より短いタイムアウトは、回避可能な失敗や再試行を生みます。通常時と例外時の応答時間の分布を測定し、プロトコルの制約を維持して、使用不能な局に対して上限のある再試行動作を選択してください。

サーバーのバッファを大きくしてもシリアル側の過負荷が解消されず、遅延が増えることがあるのはなぜですか?

キュー内のバイトは、対応するシリアル速度でしか出力されません。キューを大きくすると、オーバーフローを先延ばしにできても、古いデータの待ち時間が長くなる場合があります。要求頻度とトラフィックを処理能力に合わせるか、適切な独立チャネルを割り当ててください。

出典と適用範囲

これらの補足は一般的な仕組みを説明するものです。対応機能、接続の詳細、受入判定基準は、実際の機器、ソフトウェア、運用条件に合わせて検証する必要があります。図は測定結果や認証の証拠ではありません。

この記事を共有する