問題タブ [codesys]
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.
codesys - 残りのバイトを決定する
CoDeSys を使用して 2 つのハードウェア間で値を送信する必要があるプロジェクトに取り組んでいます。使用中の通信システムはCAN
バイト単位でしか送信できないため、最大値は 255 です。
255 より大きい値を送信する必要があります。これを 1 バイト以上に分割し、受信側のマシンで再構築して元の値を取得することができます。
REAL
値を 255 で割り、結果が 1 を超える場合は、値を分解して、残りを保持する 1 バイトと整数の 255 の量を保持する 1 バイトに分割できると考えています。
たとえば、355 は 100 の 1 バイトと 1 の別のバイトになります。
これを説明することはできますが、これを実際にロジックで記述する方法を理解するのに非常に苦労しています。
誰でもここで助けることができますか?
codesys - codesysでテキストリストを書く
実行時に動的に CODESYS にテキスト リストを書き込むにはどうすればよいですか?
コンボ ボックス (ドロップダウン リスト ボックス) に表示するソースとしてテキスト リストを使用しています。
前もって感謝します
plc - IEC61131-3 直接表現変数: データ幅とデータ型
IEC61131-3 言語の直接表現変数 (DRV) には、「アドレス」にデータ幅指定子 ( X
1 ビット、B
バイト、W
ワード、D
dword など) が含まれます。
さらに、DRV が宣言されると、任意の変数 (BYTE、WORD、INT、REAL...) として IEC データ型が指定されます。
これらがどのように関連しているかはわかりません。それらは直交していますか?W
(バイト) アドレスで REAL 変数を定義できますか? 期待される結果は何ですか?
ある本は次のように述べています。
データ型をフラグまたは I/O アドレスに割り当てると、プログラミング システムは、変数が正しくアクセスされているかどうかをチェックできます。たとえば、によって宣言された変数は、または
AT %QD3 : DINT;
で誤ってアクセスすることはできません。UINT
REAL
それは私にとって物事をより明確にしません。たとえば、このフラグメントを取り上げます ( W
Word、つまり 16 ビットを意味することを思い出してください。両方とも32 ビットDINT
に対応します)。REAL
最初の行は、32 ビットの IEC var を 16 ビットの場所にマップします。これは合法ですか?書き込み/読み取りは「キャスト」または何と同等ですか?
他の行では、同じアドレスを指す異なる型の 2 つの 32 ビット IEC 変数を宣言しています (これは正しいと思います)。読み取りまたは書き込み時に期待される結果は何ですか?
automation - 奇妙なエラーを返すシフト操作
codesys 環境で ABB の plc をプログラミングしていますが、このエラーが発生する理由がわかりません。
このエラーを返すコードは次のようなものです。
基本的に、符号なし整数に対する 2 つの割り当てと左シフト操作です。シフトがエラーの原因であり、行にコメントを付けるとエラーが解消されます。
私は構文を何度もチェックし、矛盾するドキュメントに従って引数を数回反転させました。
何が欠けているのか誰か教えてもらえますか?
design-patterns - CodeSys 2.3 ステート マシン
IEC61131-3 / CodeSyS v2.3 で効率的かつ柔軟なステート ステート マシン (SM) を作成する最良の方法は何ですか? CodeSys V2.3 での SM 実現の良い例はありますか?
私が理解している限りでは、SM には 3 つの異なるタイプがあります。
1. ケース ロジック SM - シンプルで、if ロジックに基づいて状態を変更するだけで、柔軟性がまったくなく、維持が困難です。
2. テーブル駆動型 SM - より優れていますが、関数ポインターがなければ、現在の状態に基づいていくつかのアクションを実行するための追加の条件付き命令が必要です。
3. ステート デザイン パターン SM - 最適なオプション、柔軟、膨大な CASE ステートメントなし、重複なし。
Adam Tornhill による C ステート デザイン パターンを採用しようとしています: http://www.adamtornhill.com/Patterns%20in%20C%202,%20STATE.pdf しかし、プレーン C から構造テキストに変換するのは非常に困難です。CodeSys は Function Block ポインターをサポートしていますが、ST で不完全なポインター型を宣言する方法がわかりません (それは可能ですか?):
arrays - Codesys での配列の定義
Codesys を使用して配列を作成しています。
以下の例は、5 つの値の配列を作成するために使用しているものです。
5 個の配列の場合は問題ありませんが、100 個の値の配列が必要な場合はどうでしょうか。
以下の例に示すように、各値を個別に入力する代わりに、100 個の値の配列をすばやく作成する方法はありますか。
communication - 一般PLCとCoDeSys PLCに対応したOPCサーバー
私は HMI プロジェクトの開始時です。目標は、Windows PC で実行される C# .NET HMI アプリケーションを開発することです。HMI は PLC 変数を読み書きできる必要があります
プロジェクトの最初のスタジアムでは、HMI が通信できる必要があります。
• Lenze CodeSys v3 PLC
• Allen Bradley コンパクトで制御可能な PLC
後のスタジアムでは、次のものとも通信できるといいのですが。
• Schneider Codesys v3 PLC
• シーメンス PLC
さまざまな PLC 用のドライバーを備えた OPC UA サーバーが解決策だと思います。しかし、Allen Bradley や CodeSys ベースの PLC などの一般的な PLC をサポートする OPC サーバーしか見つかりません。
ここに誰か経験がありますか?