問題タブ [structured-text]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
arrays - Codesys での配列の定義
Codesys を使用して配列を作成しています。
以下の例は、5 つの値の配列を作成するために使用しているものです。
5 個の配列の場合は問題ありませんが、100 個の値の配列が必要な場合はどうでしょうか。
以下の例に示すように、各値を個別に入力する代わりに、100 個の値の配列をすばやく作成する方法はありますか。
types - Profinet での UINT と WORD の違いは何ですか
Siemens PLC でプロジェクトを開発していますが、Word と UINT のどちらを使用して 16 ビット値を格納する必要があるのか疑問に思っています。両者に違いはありますか?
arrays - 構造化テキストでの配列の使用
シミュレーション PLC で B&R Automation Studio を使用しています。いくつかのプログラムをいじっているだけで、問題が発生しました。
システムのアラームのリストがあります。これらのアラームのいずれかが作動した場合、アラーム フラグが必要です。アラームが 5 つしかないので、これは単純な OR ステートメントで行うのがさらに簡単になります。
しかし、アラームが 100 個あるとしたら、すべて手動で入力するには時間がかかります。私の最初の考えは、すべてのアラームを配列に入れて、任意の要素に簡単にアクセスできるようにすることですが、これを行うために、これらすべての変数をシステムに入力する必要はありませんか? だから私は多くの時間を節約しないでしょうか?配列に 100 個以上の変数を手動で入力するプロセスをスキップできるように、利用できる方法または関数ブロックはありますか?
oop - PLC オブジェクト指向プログラミング - メソッドの使用
構造化テキストを使用して Schneider PLC 用のプログラムを作成しており、オブジェクト指向プログラミングを使用してそれを実行しようとしています。
PLC プログラミングの初心者として、次のような簡単なテスト プログラムを作成しました。
aMethod
いくつかの操作を実行し、結果を待ち (デッドロックを回避するための「タイムアウト」チェックがあります)、TRUE または FALSE を返す必要があります。
これは、プログラムの実行中に私が期待したことです
1) に到達すると、結果が返されるまでokFlag:=myObject.aMethod();
内部のコードが実行されます。aMethod
「実行された」とは、次のスキャン サイクルで、aMethod
前に到達したポイントから の実行が継続されることを意味します。
2) メソッド呼び出しの結果をチェックし、プログラムのメインフローを実行する
これが起こることです:
1)aMethod
が実行されますが、プログラム フローは続行されます。つまり、値の最後に到達すると、待機する必要がaMethod
あるイベントがまだ実行中であっても返されます。aMethod
2) 次のサイクルでaMethod
再度呼び出され、最初からやり直す
これは私が見つけた最初の解決策です:
そしてメインプログラム:
これはうまくいくようですが、それが正しいアプローチかどうかはわかりません。
ブール値を返すメソッドを使用し、プログラムで期待どおりに動作するように見える Schneider のライブラリがいくつかあります。つまり、サイクルが最初にメソッドの呼び出しに到達すると、プログラムフローは何らかの形で「逸脱」し、次のサイクルでメソッドが終了するまで再びメソッドに入ります。この動作を行う方法はありますか?
plc - 構造化テキストの特定の 'n' スキャン サイクルで PLC 実行を指定することは可能ですか?
現在、特定のスキャン サイクルで実行したい特定のコマンドを実行する PLC のコーディングに取り組んでいます。
構造化テキストでプログラムをコーディングして、「n」スキャン サイクルでのみ実行するステートメントにフラグを立てる方法はありますか?
前もって感謝します。