TaskConfiguration.json
それぞれCODESYS 4アプリケーションにはTaskConfiguration.jsonこのファイルは、デバイスプロジェクトが作成されると自動的に追加されます。このファイルには、ランタイムシステムが実行するタスクと、個々のタスクによって呼び出されるプログラムが記述されています。
重要
CODESYS 4シングルコアコントローラもサポートしています。TaskConfiguration.jsonマルチコアターゲットの場合と同じですが、2つの制限があります。
タスクグループは1つのみ許可されます。
のために
coreConfig、 のみFixedPinnedそして0許可されています。FreeFloating、SequentiallyPinned、およびすべてのコアインデックスは1コンパイル時に拒否されます。
JSON方言
形式:
UTF-8鍵名はキャメルケースで表記されています。
オブジェクトまたは配列の最後の要素の後には、末尾のカンマを付けることができます。
行コメント
//そしてコメントをブロックします/* ... */許可されています。
トップレベル
{ "taskGroups": [ … ], // required
"systemEvents": [ ], // required — must be empty
"v3Meta": { … } // optional
}鍵 | タイプ | 必須 | 説明 |
|---|---|---|---|
|
| はい | タスクグループ一覧 配列は空でも構いません |
|
| はい(空欄にする必要があります: | イベントタスクの将来的なサポートのために予約されています。現在は、すべての要素に対してエラーが返されます。 |
|
| いいえ | 移行メタデータは以下から派生CODESYS3プロジェクトが適用されました。自由形式。アプリケーションに通知を表示しますが、タスクの動作は変更しません。新規ファイルの場合は、このキーを省略してください。 |
タスクグループ: taskGroups
タスクグループは、一連のタスクをコア構成に割り当てます。
{
"groupName": "IEC-Tasks",
"coreConfig": "FixedPinned",
"tasks": {
"MainTask": { … },
"BackgroundTask": { … }
}
}鍵 | タイプ | 必須 | 説明 |
|---|---|---|---|
|
| はい | グループの表示名(自由に選択可能) |
|
| はい | コア構成 より詳細な説明については、下記の「コア構成の値」を参照してください。 |
|
| はい | キーはタスク名です。タスクはファイル内の順序に関係なく、名前のアルファベット順に処理されます。 |
"FreeFloating": グループ内のすべての IEC タスクは、ロードバランシングによってオペレーティングシステムによってプロセッサコアに動的に分散されます。状況によっては、タスクが頻繁にカーネルを切り替えることがあります。ユーザーは割り当てを制御できませんほとんどのアプリケーションでは、オペレーティングシステムが負荷分散を自動的に処理するため、この値が推奨されます。
"SequentiallyPinned": グループ内のすべての IEC タスクは異なるプロセッサコアに永続的にバインドされます。コア数がタスクの数よりも少ない場合、バインディングはコア 1 から始まり、コア 2、コア 3 などで続き、オーバーフローが発生した場合はコア 1、コア 2 などに戻ります。ユーザーはどのタスクをどのコアにバインドするかを制御できません"FixedPinned": グループ内のすべての IEC タスクが 1 つのプロセッサコアに永続的にバインドされます。ランタイムシステムがコア (通常はコア 1) を選択します。複数のタスクグループが使用する場合FixedPinnedそして、各タスクグループは異なるコアにバインドされます。通常、課題はコア 1 から始まります。"0"、"1"、"2",...: グループ内のすべての IEC タスクは、指定されたプロセッサコアに永続的にバインドされます。コントローラにこのコアがないと、コンパイルはエラーで失敗します詳細については、以下を参照してください。 CODESYS V3: タスクグループ
タスク
これは 1 つのタスクです。囲みの中にあるエントリのキー "tasks" オブジェクトはタスクの名前です。名前は有効な IEC 識別子で、設定内で一意である必要があります。タスク固有のシンボルはそこから生成されます
の例 "tasks" オブジェクト
{
"calls": ["PLC_PRG"],
"priority": 1,
"type": "Cyclic",
"interval": 200000,
"watchdogEnable": false,
"watchdogTime": 0,
"watchdogSensitivity": 0
}鍵 | タイプ | 必須 | デフォルト値 | 説明 |
|---|---|---|---|---|
|
| はい | - | タスクが実行されるたびに順番に呼び出されるプログラムの名前。空欄でも構いません。 |
|
| はい | - | タスクの優先度。数値が低いほど優先度が高いことを示します。 |
|
| はい | - |
より詳細な説明については、下記の「タスクの種類」を参照してください。 |
|
| いいえ |
| サイクルタイム(マイクロ秒) 関連するのは のために |
|
| いいえ |
| タスクの監視機能をアクティブ化する 注:ウォッチドッグタスクはまだ利用できません。 |
|
| いいえ |
| ウォッチドッグタイムアウト(マイクロ秒単位) 関係するのは以下の場合のみ |
|
| いいえ |
| ウォッチドッグがトリガーされるまでに許容される連続オーバーフローの数。以下の場合にのみ関係します。 |
有効な値type
"Cyclic": タスクはで定義されているマイクロ秒単位で実行されます。intervalキー。"Freewheeling": タスクは継続的に実行され、前のサイクルが完了するとすぐに再開されます。の値はinterval無視されます。
現在、以下のタスクタイプは受け付けておりません。
Event、External、 そしてParentSynchronタスクプロパティ一覧CODESYS 3 タスクこのヘルプページの「タスクの種類」セクションに記載されているものを除き、現在受け付けていません。
重要
キーや型を比較する際には、大文字と小文字の区別が重要です。
新規アプリケーションのデフォルト値
いつTaskConfiguration.json存在しない場合は、新しいアプリケーションを以下の同等の形式で開始します。
{
"taskGroups": [
{
"groupName": "IEC-Tasks",
"coreConfig": "FixedPinned",
"tasks": {
"DefaultTask": {
"calls": ["PLC_PRG"],
"priority": 1,
"type": "Cyclic",
"interval": 200000
}
}
}
],
"systemEvents": []
}例
以下は、TaskConfiguration.jsonタスクグループと複数のタスクを含むファイル:
{
"taskGroups": [
{
"groupName": "IEC-Tasks",
// "FreeFloating" | "FixedPinned" | "SequentiallyPinned"
// or a quoted core index, e.g. "0"
"coreConfig": "FixedPinned",
// Tasks run in alphabetical order of their key — not file order.
"tasks": {
"MainTask": {
"calls": ["PLC_PRG", "MyProgram"],
"priority": 1,
"type": "Cyclic",
"interval": 200000, // microseconds
"watchdogEnable": true,
"watchdogTime": 1000000, // microseconds
"watchdogSensitivity": 1
},
"BackgroundTask": {
"calls": ["Diagnostics"],
"priority": 15,
"type": "Freewheeling"
// interval is ignored for Freewheeling tasks
}
}
}
],
// Must be present, must be empty (events are not yet supported).
"systemEvents": []
}