私はこの記事が単に
「キャッチーな有望な」タイトルを持っていることを正直に認めなければなりません:)
しかし
、実際 、今週は自由時間がほとんどなかったため、今回はメモが
短く 、非常に
概念的なものになります。 したがって、本当のSCADAは当然来ません。
前回の記事では、MultiCAD.NET API(プログラムの有料版と無料版の両方)を使用して、国内のNanoCAD CADシステムでカスタムオブジェクトを作成する方法を考えました。今回は、以前に開発したオブジェクト(ドア)を使用して
、テキストの状態を
追跡する方法を教え
ますファイル 。
なぜこれが必要なのですか? 猫の下でお願いします。

内容:
パートI:はじめに。パートII:NanoCAD 8.5のコードの記述パートIII:無料のNanoCAD 5.1に適応しようとしています。パートIV:結論最初は、NanoCADを単純なSCADAシステムのベースとして使用するというアイデアの大部分は
DRZugrikが所有していることを
認めてい
ますが、ついに確認することができました。 誰の期待をも混乱させないために、もう一度繰り返します。この記事では、ベールを少しだけ開けて、NanoCADを使用するという少し標準的でない概念を検討します。
MultiCAD.NET APIの選択は私の新しい趣味なので、引き続き作業を続けます。 このAPIにまったく精通していない場合は、このトピックに関する
最初の記事をご覧ください。
さて、
2番目の記事の開発、特に擬似3次元ドアを使用します。
NanoCADでカスタムプリミティブを作成することを最後に学習した結果、壁とドアを作成した結果、ドアは擬似3次元オブジェクト(ソリッドプロパティのない線のみ)として作成され、プロパティで選択した値に応じて開閉できました。 時間を節約し、新しいものを発明しないために、それを使用します。
「テキストファイルからデータを読み取る必要があるのはなぜですか」という質問に戻りましょう。 私は答えます-ファイルからの読み取りは、何らかの形で機器の操作のシミュレーションになります。 理論的には、Webサーバーからデータを読み取ったり、何らかの方法で実際のハードウェアからの読み取りを調整したりすることは可能ですが、最も単純な概念に焦点を当てます。
以下、ネタバレの下で、
NanoCAD 8.5の更新されたクラスの完全なコード
が表示されます 。このコードは
GitHubでも利用できます。MSVisual StudioでNanoCAD APIのプロジェクトを作成する方法を突然忘れた場合は、
NC 8.5および
NC 5.1 Free念のため
、プログラマで
はなくあなたに警告し、NanoCAD APIを習得し始めたばかりなので、何かの
コードや実装曲線に
エラーがある
かもしれません 。
オブジェクトをコピーして監視機能を再割り当てしようとすると、重大なエラーの1つが発生することがあります(ただし、以前のバージョンではコピーエラーが発生しました)。 経験豊富な人が理由を教えてくれたら、感謝します。また、各ドアに固有のファイルがある場合にのみ、ドアが正常に機能することを警告します。そうしないと、障害が発生する可能性があります。
いくつかの新しいポイントを簡単に分析します(以前の記事と比較して)。
新しい名前空間。 これらは、ファイルの監視、ファイルからの読み取り、およびプログラムコンソールでのメッセージの表示に必要です。
ドアの状態を追跡できるプロパティの新しいタイプとクラスフィールド。
最初のプロパティは、ファイル追跡モードの有効化と無効化を担当します。
注意! このオプションをオンにしたとき、ファイルからのデータの読み取りは実装しませんでした。オブジェクトの実際の同期は、読み取りファイルの最初の変更後に始まります。
2番目のプロパティには、宛先ファイルへのアドレスが含まれています(1つのオブジェクトに対して1つのファイルを追跡しています。さらに、一意であるか、失敗します)。 ファイル監視が有効になっている場合、このプロパティを変更すると、監視は自動的に新しいファイルに切り替わります。
さらに行こう
最初の方法では、通常の.NETライブラリを使用して、ファイルの変更に関するシステム情報を購読できます。
2番目の方法-トラッキングの登録を解除します。
[PermissionSet(SecurityAction.Demand、Name =“ FullTrust”)]は、ほとんどのメソッドコードと同様に、Microsoftの
例から取られています。 触れないことにした。
更新されたコードの最後のビットは残ります。
イベントに応答するためのメソッド。 最初にファイルが存在するかどうかを確認し、ファイルから最初の行を抽出して、列挙値(0から2の範囲)と一致する場合、ドアの状態を制御するプロパティを変更し、標準の画面更新コマンドを実行します。変更は常に表示されるとは限りません。
Nanocad 5.1の無料版では、コードはほとんど同じです。
違いは主に、
McContext.ShowNotification()がMultiCAD.NET APIの古いバージョンにまだ実装されていないという事実にあるため、通常の.NET API(hostdbmg.dllおよびhostmgd.dllライブラリ)を接続します。 次に、このメソッドを束に置き換えます。
DocumentCollection dm = HostMgd.ApplicationServices.Application.DocumentManager; Editor ed = dm.MdiActiveDocument.Editor; ed.WriteMessage(" ...");
最初の2行では入力コンソールにアクセスでき、最後の1行でもテキストメッセージが表示されます。
その結果、写真にあるものを取得します。

バージョンNC 8.5の上の図、NC 5.1の下のオブジェクトは、疑似3次元と2次元の両方の形式で表示されます。
まとめると。ここで検討する例はひどく失敗しますが、一方でサーバーとの相互作用を考慮していませんが、この単純な例は単純にSCADAのプラットフォームとしてのNanoCADの可能性を概念的に示しています。
さらに多くのことができ、オブジェクトへの変更を確認するためのダイアログを追加したり、ハードウェアを操作したり、アクセスレベルを区切ったりすることができます。 ユーザー環境をカスタマイズする微妙な可能性があるため、理論的には、プラットフォームをSCADAシステムを表示するエディターとして、およびユーザー環境として使用できます。つまり、すべての描画ツールを削除し、監視および制御用のウィンドウのみを残します。
NanoCADに基づいてWonderware InTouchをライバルにすることを強くお勧めするわけではありませんが、5年前に
Bolidから簡単な
SCADA "アルゴリズム"があったことを覚えています(実際に
存在します。同様の類似物(5年前のバージョン)は、NanoCADプラットフォームに基づく機能性の観点から記述できます。
おそらく、NanoCADaに基づいたSCADAテーマに戻りますが、今のところは建設的なコメントを読んで喜んでいるでしょう
。