コラム

こっそり学ぶC++(前編)

こんにちは。キクスイのソフトウェア「Wavyシリーズ」の主任開発者、小林です。 今回は「Wavyシリーズ」からちょっと離れて、それを作る道具(プログラミング)のお話をしたいと思います。 当コラムの想定読者は、副題にある通 […]
投稿日-2017年7月

 

こんにちは。キクスイのソフトウェア「Wavyシリーズ」の主任開発者、小林です。
今回は「Wavyシリーズ」からちょっと離れて、それを作る道具(プログラミング)のお話をしたいと思います。

当コラムの想定読者は、副題にある通り「C言語からちょっと距離を取ってきた」人です。
時々Visual Basic程度は使うことがある、または昔BASICを使ってたけど、その後の言語進化になんとなく乗り遅れた、という感じの人です。
今は、便利な既存のアプリも多く、一から仕事道具をプログラムする必要はあまりないのかもしれませんが、簡単な反復作業なのだけど、それに見合ういいツールが見つからない時もあります。そういったときに、サクッと自分でプログラムが作れると、便利ですしカッコいいですよね。

ということで、タイトルは「こっそり学ぶC++」。しかしぶっちゃっけ、本気でC++を解説しようとすると結構大変です。なので当コラムの目的を「C言語の前で足踏みしている人の背中を押す」ことにしました。だからこれを読んでもC言語の理解には至らないでしょう(笑)。しかし、これから紹介する手順通りに試してみていただいて、「なんか俺でも出来そうな気がする・・・」と思っていただければミッション成功です。

ところでなぜC++?

本編に入る前に、「なぜC++か?」のお話をします。おそらく聞きなれない用語が出てきますが、後々(本腰入れて勉強すると)わかるようになるかと思いますので、まずは付いてきてくださいね。

キクスイのソフトウェア「Wavyシリーズ」は、マイクロソフト社の「Visual Studio」で開発をおこなっています。言語はC++(シープラプラ、またはシープラ)で、クラスライブラリとしてMFCを使用しています。

Cから派生した言語のトレンドとしては、「C#(シーシャープ)」が近年人気なのかと思いますが、ハイパフォーマンスと高信頼性という面においては、やはりプログラムが直接メモリ上に展開される「ネイティブコード」であるC++に軍配が上がるかと思っています。ちなみにC#は「マネージコード」と呼ばれ、プログラムはメモリ管理プログラム(ガベージコレクション)が作る仮想的メモリ空間に展開されるため、(原理的に)パフォーマンスはネイティブコードに劣るかと思います。

自動車に例えるなら、ネイティブはバリバリのマニュアル車、マネージは電子制御されたオートマ車です。マニュアル車は扱いに面倒な面がある一方、自分の意図通りにエンジンを極限まで操作できる可能性(楽しさ)があります。ただしそれには知識や腕が必要です。一方マネージは、ドライバーには操作が優しい反面、マニュアル車のような自由度はありません。ほとんどが「機械におまかせ」なのですね。それは「楽チン」とも言えますが、何かトラブルがあったとき、「おまかせ」している部分の中身がわからないので、手の出しようがありません。
ネイティブは「F1のレーシングカー」、マネージは「市販のオートマ車」くらいの違いがあるように思えます。

取っつきはC#の方がいいのでしょうが、C#から入ってしまうと、後々壁に当たった時にどうにもならない可能性があります。一方C++から入った場合は、後々つらくなったらC#に乗り換えるのはアリです。でもその逆はかなり厳しいんじゃないかなと。 ということで、これからC++の入り口へご案内したいと思います。

道具を揃える

今回使用した道具は下記です(写真1)。

  • 統合開発環境:マイクロソフトVisual Studio
  • 計測器用制御ライブリラリ:KI-VISA
  • 菊水電子製直流電源:PMX-Aシリーズ
  • Windows 10をインストールしたパソコン
  • USBケーブル

写真1

写真1

開発環境としては、ここは王道のVisual Studioを使います。また、今回は習作目的が計測器との通信なので、そのための制御ライブラリ(KI-VISA)もインストールします。
通信相手となる計測器はインターフェース(RS232C、USB、LAN等)が付いているものなら何でもいいのですが、ここはお手軽な直流電源を使います。PMX-Aシリーズは安価な製品ですがRS232C、USB、LANが標準で実装されていますので、お得感があります。ちなみに今回は触れませんがPMX-AはWEBサーバが組み込まれているので、LANで繋ぐとブラウザ経由で制御や監視もできるのでとても便利かと思います。

<Visual Studioをインストールする>

まずはVisual Studioをマイクロソフトのサイトから入手します。Visual Studioにはいくつかエディションがありますが、その中の「Professional」を選びます(写真2)。これはインストールから30日間無料で使うことができます。
なお、「Community(Express)」というのもありますが、これだと後述するクラスライブラリ(MFC)が使えないので、「Professional」にしましょう。

https://www.visualstudio.com/ja/downloads/

写真2

写真2

ダウンロードしたファイルをダブルクリックすると、(写真3)の画面が表示されます。ここで「全部入り」を選ぶと、10G越えというとんでもない大きさのダウンロードが始まるので、必要なものだけにしたいと思います。

写真3

写真3

必要なものは「C++によるデスクトップ開発」とその概要(右枠内のオプション)の「MFCとATLのサポート」です。また写真のように「C++/CLIのサポート」、「標準ライブラリモジュール」、「VC++2015.3v140ツールセット」にもチェックを入れておいてください。これでも7.1Gあります・・・。

で、右下の「ダウンロード」をクリックするとダウンロードがはじまります(写真4)。ここは時間がかかるので終るまで別の仕事をするか、お茶でもしましょう。

写真4

写真4

ダウンロードが終わったら、落としたインストーラをダブルクリックします。すると(写真5)の画面が表示されますが、マイクロソフトのアカウントがない(必要がない)場合は、[後で行う。]でスキップして続行します。

写真5

写真5

次の画面で開発環境の選択がありますが、ここは[全般]でもいいのですが、せっかくなので[Visual C++]を選んでみます(写真6)。そして[Visual Studioの開始]をクリックすると初期状態になります(写真7)。

写真6

写真7

写真7

これでVisual Studioが使える状態になりました。
さて、ここで一旦Visual Studioを離れて、計測器の制御ライブラリ(KI-VISA)の準備へ行きたいと思います。
なのでVisual Studioの画面を隠して(最小化して)おきます。

<KI-VISAをインストールする>

菊水電子工業のサイトの「ダウンロード」の「共通ライブラリ」から「KI-VISA」をダウンロードしますが、ここでひとつ重要な注意点があります。もし既にお使いのマシンに(キクスイ以外の)VISAライブラリがある場合は、KI-VISAは使わず、既存のライブラリを使いましょう。もしKI-VISAを使うのであれば、既存のVISAライブラリをアンインストールしてから、KI-VISAをインストールするようにしてください。その理由は複数のVISAライブラリを併用することができないからです。
よって以下は既存のVISAライブラリがない前提の手順となります。

菊水電子工業のサイトのダウンロードの「共通ライブラリ」を見ます。

https://www.kikusui.co.jp/download/index_j.html#common

ここには二つのファイルがあります。ファイル名に「x64」とあるものと「x86」とあるものです。
なので、お使いのWindows OSのバージョン(32ビット(x86)または64ビット(x64))に応じたファイルを選びます。OSのバージョンがわからない場合は、歯車アイコンの [設定] メニューをクリックし、表示された画面の中の[システム]を選択。一番下にある[バージョン情報]を選択し[システムの種類]を見ると32ビットか64ビットかがわかります(写真8)。

zen-08_1-2
写真8_3

写真8

今回使ったパソコンは32ビットなので、KI-VISAも「x86」の方を選んでダウンロードします。KI-VISAのサイズは50MB程度なので、ブロードバンド環境ならダウンロードに数分もかからないでしょう。

ダウンロードしたファイルをダブルクリックしてインストールをおこないます。インストールが終わると、デスクトップに「KI-VISA Instrument Explorer」と「KI-VISA Spy」というショートカットアイコンができているはずです(写真9)。

写真9

写真9

<直流電源を繋いでパソコンから認識できるかを確認する>

ここで「KI-VISA Instrument Explorer」を使って、パソコンから直流電源を認識できるかどうかを確認してみましょう。

先に、直流電源PMX-Aシリーズのインターフェース設定を確認します。PMX-Aシリーズの電源を入れて、フロントパネルのCONFIGボタンを押すと、赤く点灯します。そのまま何回かCONFIGボタンを押すと、上段のLED表示が「CF20」になったとき下段に現在有効なインターフェース名が表示されます(写真10)。もしそこが「USB」でなかった場合は、電流つまみを回して「USB」にします。

前編-写真10

写真10

ここで注意点です。CONFIG設定ができたら、いったんCONFIG設定を脱けて(赤点灯を消灯)、PMX-Aシリーズの電源スイッチを再投入してください。そうしないと設定が反映されません。ここはみなさん地味にハマりますので要注意です。

さて、パソコンをUSBケーブルでつなぎ、「KI-VISA Instrument Explorer」を起動してみましょう。
下記のような表示になっていれば、正常に接続できています(写真11)。もしここでVISAのツリーにUSBがなかった場合、VISAが正しく機能していない(インストールが不完全)、またはPMX-Aシリーズのインターフェース設定が正しくできていない可能性があります。

前編-写真11

写真11

VISAライブラリも、結構つまずくポイントです。特に既存のVISAライブラリをアンインストールしての再インストールは要注意です。既存のVISAライブラリのアンインストールの場合、歯車アイコンの [設定] メニュー>[システム]>[アプリと機能]を見て、そこに下記のIVI関連ファイルも(写真12)、手動で消すようにしてみてください。

  • IVI Shared Components XX…
  • IVI.NET Shared Components XX…

(XX…はバージョン名)

前編-写真12

写真12

これでようやく準備ができました。もうすでに心が折れそうになってるかもしれませんが、頑張ってください。
前編は以上で、後編ではコードを書いて実行をしてみます。ぜひ続けてお読みいただければと思います。

1つ星2つ星 (+8 評価, 4 投票)
小林

執筆者: 小林

[主な製品開発実績] シーケンス作成・制御ソフトウェア Wavyシリーズ / 特注製品ソフトウェア (燃料電池評価システム、充放電システム / 耐電圧・絶縁抵抗試験器、特注電源システム、特注EMC試験システム) / 系統連系試験システム

お気軽にご質問・ご相談ください

製品カタログダウンロード一覧を見る
導入検討・見積り依頼メールで問い合わせる
close

検索

サイト内の記事と製品を検索

製品の検索はこちら  サポート記事から検索

preloader