PLCプログラミング(ラダープログラミング)の知識を深めたい方へ
ラダープログラミングについてもう少し知識を深めたいという方には、以下の書籍がお奨めです。
こちらもKindle Unlimtedなら無料で閲覧できますので、興味ある方は是非!!
C#でPLCと通信する方法
例えば、以下のような要望をよく耳にします。
- 「デバイス値を監視して稼働率を計測したい。」
- 「デバイス値を監視して予知保全に役立てたい。」
- 「複数の加工機を統括制御するような.Netプログラムを開発したい。」
このような背景から、C#でPLCと通信するためのプログラム環境構築について、まずは三菱電機さんのGX Works2をターゲットに調査し、書籍に纏めてみました。
現場では、図1のようなシステム構成ですが、本書では、図2のようにエミュレーター環境でプログラムの動作確認ができる方法を紹介しております。
勉強や調査の段階では、PLC実機での動作確認ができない方も多いと思いますので参考にしていただければ幸いです。
Kindle Unlimitedだと無料で閲覧できますので興味のある方は是非!!
図1.製造現場でのシステム構成例
図2.本書でのシミュレータを用いたシステム構成
Resize, SizeChanged, Layoutイベントの違い
| イベント | 説明 |
|---|---|
| Resize | コントロールのサイズが変更された時に発生。 |
| SizeChanged | Sizeプロパティが変更されたときに発生。 |
| Layout | コントロールが配置し直す時に発生。 |
上記の説明では、イマイチ違いが解らないので、実際に発生の順序の違いを調べました。
●ユーザのマウス操作でFormサイズを変更した場合
Layoutイベント
↓
Resizeイベント
↓
SizeChangedイベント
●プログラミングでSizeプロパティを変更した場合
this.Size = new Size(300, 100);
Layoutイベント
↓
Resizeイベント
↓
SizeChangedイベント
●プログラミングでHeightプロパティを変更した場合
Form.Height += 100;
Layoutイベント
↓
Resizeイベント
↓
SizeChangedイベント
結果は、どれも同じ順序で発生することが解りました。
なお、Microsoftのドキュメントでは、「Layoutイベントを使用してカスタムレイアウトを処理すること」をお勧めしています。
Vimのコマンドウィンドウを活用しよう
コマンド履歴のコマンドウィンドウを表示
q:
コマンドウィンドウが開くと通常のコマンドモード時の操作が可能になります。
カーソルを再実行したい行に移動してEnterを押下すると再実行されます。
検索履歴のコマンドウィンドウを表示
q/
または、
q?
カーソルを再検索したい行に移動してEnterを押下すると再検索されます。
コマンドウィンドウを閉じる
:q
便利なので、是非、試してみて下さい。
TikaOnDotnetでファイル内の文字列を抽出する方法
以下のSampleのとおり、TextExtractor.Extract()メソッドで、ファイル内の文字列を取得できます。
※Shift-Jisのテキストファイル(.txt)は、UTF-8に変換しないと抽出に失敗するので要注意。
public void TikaExtractorTest() {
var txtExtractor = new TextExtractor();
var path = @"C:\Temp\Test.xlsx";
var content = txtExtractor.Extract(path);
Debug.WriteLine(content.Text);
}
厳選 Visual Studioの便利なショートカット
エラー箇所にジャンプ 「Ctrl + Shift + F12」 ブレークポイント 設定/解除 「F9」 有効化/無効化 「Ctrl + F9」 ViEmu特有 「:ls」:バッファナンバーのリストを表示。 「:b2」:バッファ2のファイルを開く。 「:n」:次のバッファのファ...
-
イベント 説明 Resize コントロールのサイズが変更された時に発生。 SizeChanged Sizeプロパティが変更されたときに発生。 Layout コントロールが配置し直す時に発生。 上記の説明では、イマイチ違いが解らないので、実際に発生の順序の違いを調べました。 ●...
-
例えば、以下のような要望をよく耳にします。 「デバイス値を監視して稼働率を計測したい。」 「デバイス値を監視して予知保全に役立てたい。」 「複数の加工機を統括制御するような.Netプログラムを開発したい。」 このような背景から、C#でPLCと通信するためのプログラム環境構築に...
-
以下のSampleのとおり、ReadJEnc.JP.GetEncoding()メソッドで文字コードを自動判定することができます。 実装例 public void DetectingEncodeTest() { var path = @"C:\Te...