アプリケーションの最適化
各種計算には一定の計算時間が必要です。これは、非常に大きなプロジェクトや大規模な操作を実行する場合に問題となることがあります。全体のサイクル時間は、右上のシステムモニターで切り替えることで表示できます。
データキャリアのキューを確認してください。キューは、データが同時に読み書きできなくなった場合にのみ使用されます。これは特に大規模なプロジェクトや不適切なハードウェアの場合に顕著です。キューは通常運用中に1%を超えることはありません。
アプリケーションの動作
パフォーマンステストが理解されるためには、まずアプリケーションの動作について説明する必要があります。サイクル時間に関する基本事項に加え、AntcasのPLCでのみ実装された拡張方法もあります:
- 要素内の変更が検出されない場合、その要素全体はパークされ、計算されなくなります。
- グローバル値を変更する際には、ダブルサイクルが実行されます。PLCはその後1ミリ秒だけ待機します。
- 時間的に重要な値の計算にはタイムアウトが設定されます。
- 送信通信(値の送信または保存)は非同期で行われ、計算完了後に実行されるわけではありません。
- 各変数はリマネントであり、パークする前か遅くとも2秒以内に保存されます。
プロジェクトの分析
アプリケーション内で非常に高い計算能力を必要とする要素を特定するには、パフォーマンステストを使用できます。
最適化のヒント
- タイマーTON、TOF、TPの出力ETは使用しないでください。代わりにUPTIMEを使用できます。
- VISUSETおよびVISUDTSETの入力SETは、複数の機能ブロックで同時にアクティブな状態にならないようにしてください。
- 可能であれば、より大きく複雑な計算を別の要素で実行します。
- CALCULATEを使用して数学的操作を行います。
- ロガーはできるだけ大きいインターバルで使用してください。温度の場合、10分間隔で十分です。インターバルは動的に設定することもできます。
- 機能ブロックCTRL_PID、SHUTTER、DIMMERなどでは、より高いPTインターバルを使用します。
- 動的な時間入力の変更時には、これらが常に変化しないように注意してください。これは、機能ブロックFADEを使用するRGBシーケンスで発生する可能性があります。
- 複雑なタスクを簡素化します。特に文字列内の検索は非常に計算コストがかかります。FINDおよびSUBSTRの代わりに機能ブロックEXPLODEまたはPREG_SPLITを使用してください。値は適切に一時的に保存されます。
- HTTPリクエストの処理には非常に多くのメモリが必要になることがあります。
- 受信するテレグラムを減らします。例えば、値をディミングする場合、バスシステムによってはフィードバックが遅れることがあります。
- PLCのサイクル時間を増やします。