ユーザプログラム、ファンクション、ファンクションブロックの各要素のことです
これのことです
| 種類 | 特徴 | 用途 |
|---|---|---|
| Program | タスクに割付けて実行 | 設備全体の制御を行う |
| Function | 状態保持なし | 計算処理向け |
| Function Block | 状態保持あり | 状態保持が必要な処理向け |
一連の処理をするプログラムを実行する単位のことです。
そのタスクにPOUを割付けます。タスクは一定の周期で実行するタイプがあり、タスクごとに実行周期と優先順位が設定できます
上記の設定だと1ms周期でProgram0を実行して、10ms周期でprogram1→program2の順番で実行します
(50msの定周期タスク17は空です)
NJ/NXシリーズで最も重要なタスクです。
EtherCAT通信周期と連動するため、通常は制御処理をここに配置します。
プライマリ定周期タスクにプログラムを全部入れて実行してみます
プログラムの起動条件などもONにしたりしてプログラムに負荷をかけてみてください
タスク実行時間モニタを見て実行時間の最大が80%以内であれば問題ないでしょう

プライマリ定周期タスクの周期を伸ばしてみます
[ EtherCATスレーブへの影響 ]
プライマリ定周期タスクの周期を伸ばすとEtherCATの通信周期も連動して伸びるので接続されているスレーブの入出力が伸びてしまいます
サーボやアナログの場合はキメ細かな制御ができなくなったり、精度が悪くなったり、マシンサイクルも伸びる方向になることが懸念されます
表示器の入出力はそれほど高速性はいらなくて、ボタンなら50msぐらいの反応速度で、表示データの更新速度も50msで更新すれば十分なので、20~50msの定周期タスクを作って、表示器の処理はそちらに入れるようにします
シリアル通信やEthernetで外部機器と接続するときはデータ処理部分が多くなると思うので、そこで時間が伸びるようであれば別のタスクに入れてみます
複雑な計算を大量にするときに毎周期する必要がなければ別のタスクに入れてみます
| 用途 | 周期 |
|---|---|
| サーボ制御 | 1ms |
| I/O制御 | 1〜10ms |
| 通信処理 | 10〜50ms |
| 表示器処理 | 0〜100ms |
| ファイル処理 | 100ms以上 |
文字列をつなげる命令ですが、どの言語でもこの命令は遅いです
プログラムは長くなりますが大量に文字操作が必要な時はバイト配列で処理するほうが早いです
LREAL型を文字列に変換する命令です
整数型に変換してから文字列に変換するほうが早いです
IEC61131-3で定義されたプログラム部品です。Program、Function、Function Blockがあります。
Functionは状態保持しません。Function Blockは状態保持します。
まずはプライマリ定周期タスク1つで開始し、機能や負荷に応じて分割するのがおすすめです。