コントローラのプログミング例

 

 

概 要
ソフトウェア構造は、以下のように2階層にすることをお勧めします。
  1. ユーザインターフェイス系は、Visual Basic
  2. 装置制御系は、MOS言語
MOS言語で記述することにより、以下のようなマルチプロセスシステムを簡単に構築できます。
  • プロセス1 全体監視

  • プロセス2 ウェハーステージ制御
  • プロセス3 ピック&プレイス制御
  • プロセス4 INのポーリング
  • マルチプロセスコントローラとしての枠組みが提供されていますので、各プロセスで実行したいプログラムを記述するだけです。
    マルチプロセス設定方法

    MOS言語によるプログラミング例
    MOS言語は、装置制御に関わる軸、DIO、AD、DA、COMの操作を行えるCライクの言語です。基本の軸制御、IO制御のサンプルプログラムを紹介致します。

    MOS言語は、中間コードに変換し、RTX上で動作するリアルタイムインタープリタ(オプション)で実行することができます。この場合、軸、DIO、AD、DAのリアルタイム制御ができます。標準ではWIN32のアプリケーションであるインタープリタで実行されます。
    リアルタイム制御対応可能カード

    PTP移動
    次のプログラムは、2軸で構成された「ロボット1(XYステージ1)」を2次元平面上の座標(0、0)と(−100、−55)との間で無限回数移動する例です。移動単位は、ユーザ単位(mm、度、等)で指定できます。

    void main() {
      ・・・・
      // 目標位置を格納する配列の要素は必ずMaxRobAxesとしてください
      double pos[MaxRobAxes]; // 目標位置を格納する配列を宣言
      RobSetPtpAccelerations(1, 50, 50, 0, 0); //   「ロボット1」加減速時間設定
      RobSetPtpSpeed(1, 100); // 「ロボット1」移動速度設定
      RobSetManipServoPower(1, 1); // 「ロボット1」全軸サーボオン
      RobReturnHome(1); // 「ロボット1」原点復帰

      while(1) {
        pos[0] = -100; // 1軸目標位置を設定
        pos[1] = -55; // 2軸目標位置を設定
        RobPtpMove(1, pos, 1); // 絶対位置(-100,-55)へ移動
        Sleep(500); // 500ms処理遅延
        pos[0] = 0;
        pos[1] = 0;
        RobPtpMove(1, pos, 1); // 絶対位置(0,0)へ移動
        Sleep(500); // 500ms処理遅延
      }
    }

     

    OUT 1Hzの点灯
    OUTポート2113番を500ms毎、反転出力する例です。

    void main()
    {
        int b;
        b=0;
        while(1){
          // LEDを点滅 約500Hz
          if ( (b % 2) == 0 ) {
          WritePort( 2113, 1 );
          }
          else {
          WritePort( 2113, 0 );
          }
          b = b + 1;
          Sleep(500); // 500ms 休み
       }
    }

    DIOカードに対して、DeviceOpen、DeviceClose等は必要ありません。

    MOS言語によるプログラミング詳細

    以下のマニュアルをダウンロードして参照願います。

    1. マニュアル ファーストステップガイド
    (MOS言語とVBによる装置制御プログラム開発)
    ダウンロード(1.46MB)

     

    Visual Basic によるプログラミング例
    MOSプロセスを制御する基本のサンプルプログラムを紹介致します。

    Startメソッド
    指定したMOSプロセスを起動する例です。この例では、1番のプロセスを初期起動しています。

    Private WithEvents objMwcSystemCtrl As MwControllerLib.SystemCtrl
    Private Sub Form_Load()
          Dim rc As MwcEnumCmdResult
          Set objMwcSystemCtrl = New MwControllerLib.SystemCtrl
          ・・・・
          rc = objMwcSystemCtrl.Start(1, StartMode_Initial)
          ・・・・
    End Sub

    EnableNotifyEventsメソッド
    MOSプロセスが停止した時の通知イベント発生の許可/禁止を指定します。
    本イベント機能があるため、Visual Basicによるユーザインターフェイスプログラムは、MOSプロセスのポーリングエラー監視の必要がありません。

    Private WithEvents objMwcSystemCtrl As MwControllerLib.SystemCtrl
    Private Sub Form_Load()
          Set objMwcSystemCtrl = New MwControllerLib.SystemCtrl
          ・・・・
          Call objMwcSystemCtrl.EnableNotifyEvents(1)
          ・・・・
    End Sub
          ・・・・
    Private Function objMwcSystemCtrl_NotifyProcStatus _
    (ByVal ProcNo As Integer, ByVal status As MwcEnumProcStatus) As Integer
          Select Case status
          ・・・・
    End Function

    Visual Basicによるプログラミング詳細

    以下のマニュアルをダウンロードして参照願います。

    1. マニュアル ファーストステップガイド
    (MOS言語とVBによる装置制御プログラム開発)
    ダウンロード(1.46MB)

     

    パソコン制御コントローラ最新動向 資料ダウンロード
    • (資料) 「パソコンベースのコントローラはまだ導入するな!」 ダウンロード


    • 業界12年、全国の装置メーカを訪問したわかったパソコン制御コントーラ裏話

      内容

      事例1: Visual Basic、Visual C#を導入する..........1ページ
      事例2: Visual C++を導入する.......................2ページ
      事例3: リアルタイムOSを導入する.................3ページ
      事例4: リナックス(linux)を導入する..............4ページ
      事例5: 「MOSBench」を導入する.............5ページ
      事業が儲かるコントローラ3つのポイント..........6ページ
      Windowsリアルタイムコントローラ活用4つのヒント...7ページ
      Windows リアルタイムパソコン選定3つのヒント......8ページ

       

     

    MOS Bench(モスベンチ)資料ダウンロード
    MOS Bench(モスベンチ)価格表、ユーザーズガイド、等

     

     

    MOS Bench(モスベンチ)シミュレータ30日無償版ダウンロード
    MOS言語によるモーションシミュレータ、シーケンスシミュレータ(Win32版)
    シミュレータで開発したMOS言語プログラムをWindowsリアルタイム制御版へ移行可能

     

     

    お問い合わせ MOS Bench資料請求、デモ要請
    HOME  サイトマップ  個人情報保護方針  サイトご利用にあたって