厳選 Visual Studioの便利なショートカット
エラー箇所にジャンプ
- 「Ctrl + Shift + F12」
ブレークポイント
- 設定/解除 「F9」
- 有効化/無効化 「Ctrl + F9」
ViEmu特有
- 「:ls」:バッファナンバーのリストを表示。
- 「:b2」:バッファ2のファイルを開く。
- 「:n」:次のバッファのファイルを開く。
- 「:N」:前のバッファのファイルを開く。
- 「:bui[ld]」:現在のソリューションをビルド。
- 「:prb」:現在のプロジェクトをビルド。
- 「:deb」:デバッグ実行。
【SQLServer】カンマ区切で文字列を分割し、N番目の文字列を取り出す方法
以下のSQLで実現できます。
取得結果は、以下のとおりです。
【Sencha ExtJs】callSuper(), callParent()の振る舞いの違い
callSuper()とcallParent()メソッドの振る舞いの違いを整理してみました。
違いは、以下のとおりです。
callSuper()では、Overrideされた基底クラスのメソッドは呼ばれません。
・Override -> Base.
対してcallParent()では、Overrideされた基底クラスのメソッドが呼ばれます。
・Override -> Derived -> Base.
以下にデモ&ソースがあるので参考にしてみて下さい。
デモ&ソース【Sencha ExtJs Modern】Gridの列を通貨形式で表示する方法
「renderer」に表示形式をセットする処理を埋め込んで実装しています。
デモ&ソース
Sencha ExtJs Modernで通貨入力のカスタムフィールドを実装
デモ&ソース
MX Compornentで提供される主要なコントロール
このMX Compornentですが旧バージョンも含めてインストールされるので、何を使えば良いか迷うことがあるので、下表にまとめてみました。 是非、参考にして下さい。
| コントロール名 | バージョン | 説明 |
|---|---|---|
| ActUtlType | 4.00A | PLC通信用のActiveXコントロール。 通信設定ユーティリティを使用して、プログラムを作成する場合に使用する。 |
| ActProgType | 4.00A | PLC通信用のActiveXコントロール。 通信設定ユーティリティを使用しないで、プログラムを作成する場合に使用する。 |
| ActEasyIF | 3 | PLC通信用のActiveXコントロール。 4.00Aが最新なので特に理由がない限りは使用しなくてよい。 |
| ActSupportMsg | 4.00A | MX Componentの各コントロールが返すエラーコードの該当メッセージを取得するためのActiveXコントロール。 |
| ActSupport | 4.00A | MX Componentの各コントロールが返すエラーコードの該当メッセージを取得するためのActiveXコントロール。 4.00Aが最新なので特に理由がない限りは使用しなくてよい。 |
| DotUtlType | 4.00A | ActUtlTypeの.Net移植コントロール。.Net Framework2.0用なので要注意。 |
| DotSupportMsg | 4.00A | ActSupportMsgの.Net移植コントロール。.Net Framework2.0用なので要注意。 |
※通信設定ユーティリティとは、PLCの接続先をウィザード形式で設定できるツールです。 これを利用しない場合は、通信に必要ないくつかの情報をプログラム内にパラメタとして指定する必要があります。
ちなみに、私が開発する時は、「ActUtlType」、「ActSupportMsg」を利用しています。
MX Compornent(体験版)のダウンロードはこちらから
バッチファイルでProxyのON/OFFを切り替える方法
在宅ワーク時は、プロキシを通さずにインターネットに繋げて、
出社した時はProxyをONにしてインターネットに繋げる人も多いのではないでしょうか。
今回は、インターネットオプションのダイアログを表示せずに、ダブルクリックだけで
ProxyのON/OFFを切り替える方法をご紹介します。
次のコマンドをBATファイルにして実行して下さい。ProxyのON/OFFを切り替えることができます。
Rem レジストリを書き換えてProxyをON
reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v "ProxyEnable" /t REG_DWORD /d "1" /f
SQL Server:現在実行中のクエリを確認
現在実行中のクエリを確認する方法です。
以下のSQLを実行して見て下さい。
req.session_id,
req.status,
req.command,
req.cpu_time,
req.total_elapsed_time
FROM sys.dm_exec_requests req
Azure VM BシリーズのCPUクレジットの残高を確認する
「勤怠システム」など特定の時間帯だけ高負荷となり、それ以外の時間帯は殆ど使用されないシステムでは、Bシリーズが最適な選択になります。
Bシリーズでは、CPU使用量がベースラインを下回る場合は、CPUクレジットを蓄積し、高負荷となった場合は蓄積したCPUクレジットを消費して、通常より高いパフォーマンスを発揮してくれます。 (例えば、「Standard_B2s」サイズの場合だと最大CPUパフォーマンス200%まで引きあがります)
今回は、CPUクレジットの残高を確認する方法を紹介します。 Azure Portalで以下の操作を行ってください。
Azure Portalで対象のVMのページに移動。
「メトリック」を表示し、「CPU Credits Remaining」、「Percentage CPU」を追加。
以下のとおり、CPUクレジットの推移を確認できます。
なお、CPUクレジットを全て使い切った場合は、ベースラインパフォーマンスに戻ります。(「Standard_B2s」サイズの場合だとCPU使用率40%になる。)
また、VMを「再デプロイ」または「停止/起動」するとCPUクレジットが0にリセットされるのでご留意ください。
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);
}
POKUDA AI高画質化工房サポートページ
当製品に関する問い合わせはこのコメント欄へお願いします
-
イベント 説明 Resize コントロールのサイズが変更された時に発生。 SizeChanged Sizeプロパティが変更されたときに発生。 Layout コントロールが配置し直す時に発生。 上記の説明では、イマイチ違いが解らないので、実際に発生の順序の違いを調べました。 ●...
-
例えば、以下のような要望をよく耳にします。 「デバイス値を監視して稼働率を計測したい。」 「デバイス値を監視して予知保全に役立てたい。」 「複数の加工機を統括制御するような.Netプログラムを開発したい。」 このような背景から、C#でPLCと通信するためのプログラム環境構築に...
-
以下のSampleのとおり、ReadJEnc.JP.GetEncoding()メソッドで文字コードを自動判定することができます。 実装例 public void DetectingEncodeTest() { var path = @"C:\Te...