問題タブ [scada]
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.
winapi - PLC を mfc プログラムに接続する
現在のシナリオでは、間にマイクロコントローラーを使用して PC からハードウェアコンポーネントを操作するために RS-232 通信を使用しています。アプリケーション全体が MFC で作成されます。
ハードウェアコンポーネントの通信用PLCをPCに接続しようと考えています。では、これを行う方法を誰か教えてもらえますか?
c++ - デスクトップ SCADA アプリケーション - C++ による PLC の読み取りと書き込み
SCADA および PLC と通信するための独自の C++ デスクトップ アプリケーションの開発に関するすべてのトピックを検索するために最善を尽くしましたが、最近の、または私の意見では、私が必要とする関連トピックを見つけることができませんでした。それらを見逃した場合は、それらへのリンクをいただければ幸いです。たまたまこれを間違ったセクションに投稿してしまった場合、またはこれを投稿するためのより良いセクションを考えていただければ、そこに投稿します.
そうは言っても、時間を割いて私の質問を読んでくれてありがとう、そしてあなたが提供しなければならない意見に感謝します。
私がしていることについて少し
私は現在、電気機械工学の学校に通っており、最終学年のプロジェクトとして、ラボの 1 つにある PLC を監視するデスクトップ アプリケーションを C++ で開発しています。
このラボ内には、すべての PLC を単一ポイントに接続する既存のイーサネット ネットワークがあり、これを PC に接続して、そこからすべての作業を行います。
GUI を簡単に設計できるように Qt でアプリケーションを開発し、QNetworkInterface と QTcpSocket にアクセスできるようにします。
そうは言っても、私は経験豊富なプログラマーであるとまでは言えませんが、かなりの数年間、いくつかの言語 (例: python、c++、c、php) をいじっており、今でもそうです。学習は決して止まらないことを考慮して、学習します。
私の質問
情報を受け取るためにどのようなプロセスを経る必要があるかをより簡単に理解するために、私が読むことができる、提案できる参考資料はありますか (つまり、個々の I/O、ステータスビット、タグ、ログなど. ..) OPC サーバー経由ではなく、PLC から直接ですか?
OPC サーバーが必要な場合、ロックウェル オートメーションの RSLinx を使用してタグを取得し、それらの値を Excel 内に表示する以外に、OPC リンクを扱ったことはありません (最初にその正確な方法を使用してプロトタイプを作成しましたが、 Excel、および可能であれば OPC サーバー (RSLinx) も)。OPC サーバーの主題について何も知らない人、または私の知る限り、OPC 全般について何も知らない人に何を提案しますか?
私が達成しようとしているものと同じ性質のものではないにしても、似たようなことをするために独自のアプリケーションを以前に書いた人はいますか?
このタイプのプロジェクトを試みている人に、どのようなアドバイスや提案をしますか?
PS:このプロジェクトの開始点として、最初は I/O (タグまたはアドレス) の読み取り値を取得して、現在の値 (入力の場合は閉じているか開いているか、出力の場合は通電されているかどうか) を確認したいと思います。しかし、最終的には、PLC から受け取った値に基づいて、監視している PLC のタグに値を書き込めるようにしたいと考えています。
PSS:もう一度申し上げておきますが、私はまだ学生であり、このテーマについて全体的に学んでいます。初めてのことで完全に理解できないかもしれませんので、しばらくお待ちください!
回答を提供するのに適切だと思われる情報を見逃していた場合は、お知らせください。タイムリーな情報発信ができるよう頑張ります!
ありがとうございました!
編集#1:別の質問に追加し、最初の質問をわずかに変更しました
編集#2:質問2を修正
scada - SCADA プロトコル - iec-104
大学のプロジェクトで、IEC 60870-5 ファミリ プロトコル、特に IEC-101 と IEC-104 を研究しています。IEC-101 および IEC-104 規格を購入しましたが、Google を使用するための答えが見つからないように見える基本的な質問が依然として残っています。私は現在、すべての型識別を理解することに焦点を当てています。その目的、用途、使用方法、およびそれぞれの簡単な流れを描きます。標準は、コマンドに関する必要な情報を提供していません。これらのことが説明されている Web サイトや、これらの標準について質問できるフォーラムを紹介してもらえますか?
どんな助けでも大歓迎です。
automation - 自動化システムの圧力低下速度の計算
私は問題があります。圧力計からのみデータを取得する場合、圧力低下速度をどのように計算しますか? [bar/h] 単位の特定の落下速度が必要ですが、[bar] 単位の圧力しか読み取れません。あるサンプルレートで測定をサンプリングし、dp=p(i-1)-p(i) を使用する以外は、自分のソフトウェアでそれを行う方法が思いつきません。前もって感謝します。
c# - ポインタアドレスからオブジェクトを取得するにはどうすればよいですか
WinCC (Siemens) (SCADA) のユーザー コントロールを作成しました。ここで、コントロールへのポインタを渡したいと思います。これを行う唯一の方法は、プロパティへのポインターを書き込むことです。
WinCC には、プロパティを設定するためのメソッドしかありません
- SetPropBOOL
- SetPropChar
- SetPropDouble
- SetPropWord
コントロールのプロパティにはデータ型として UInt があり、SetPropDouble メソッドを使用してオブジェクトからアドレスを設定します。
WinCC グローバル スクリプト (ANSI-C)
コントロール (WinCC プロセスのフック) をデバッグしたところ、プロパティ セットにアドレス値 (例: 0x03041080) が割り当てられていることがわかりました。
ここで質問: アドレスで c# (.Net) のオブジェクトを取得するにはどうすればよいですか?
私の試みは例外をスローします: ExecutionEngineException
OK: 使用するコードを変更しましたSTRING
WinCC
そしてc#は今
その他の発見!
ADO オブジェクトからのアドレスは、私のコントロールを呼び出したプロセス メモリにありません (ollydbg でデバッグ)。WinCC には 2 つのプログラムがあります。可視化用の PDLRT.exe (これは私のコントロールを呼び出しています) と GLOBAL-SCRIPT (Ansi-C) を実行するための SCRIPT.exe です。
PDLRT から、ADO-Object のポインタ アドレスにアクセスしました。ADO-object-address の C# で GCHandle を呼び出すと、例外がスローされます。(実行エンジン例外)