Fast Ethernet CNC主導メッセージ通知機能とは、ラダーやNCプログラム 注1)からの指令でCNCから自発的にパソコンへメッセージを通知し、その結果をアプリケーションで処理できるようにする機能です。メッセージにはPMCの任意のデータやマクロ変数 注1)を送信する事ができます。アプリケーションでは、本機能を使用する事によってCNCの状態を定期的に問い合わせるようなポーリング処理が不要になります。
CNC主導メッセージは、パソコンのアプリケーションに対してウインドウメッセージを発行してメッセージを通知しますので、アプリケーションの作成には、Visual C++ が必要です。
注1) NCプログラムとマクロ変数は30i/31i/32iのみで利用可能です。
CNC主導メッセージ通知機能を使用するためには、次が必要です。
- CNCコントロールソフトウェア : CNCの FROM上に登録します。
- 16i
- B0F4/12(M) 以降
- B0F4/07(T) 以降
- B0H1/17(M) 以降
- B1H1/17(T) 以降
- 18i
- BDF4/12(M) 以降
- BEF4/07(T) 以降
- BDH1/17(M) 以降
- BEH1/17(T) 以降
- 21i
- DDF4/12(M) 以降
- DEF4/07(T) 以降
- DDH1/17(M) 以降
- DEH1/17(T) 以降
- 0i
- D4A1/01(M) 以降
- D6A1/01(T) 以降
- PMi
- 88E0/21 以降
- 88F2/04 以降
- 88F1/12 以降
- 30i
- G002/19.9 以降
- G012/19.9 以降
- G022/19.9 以降
- G032/19.9 以降
- 31i
- G101/19.9 以降
- G111/19.9 以降
- G121/19.9 以降
- G131/19.9 以降
- 32i
- G201/19.9 以降
- CNC側 Fast Ethernet用ファームウェア : CNCの FROM上に登録します。
- 6567/06版以降(16i/18i/21i,Power Mate i)
- 6567/07版以降(0i)
- 6569/19版以降(30i/31i/32i)
- CNC側 通信管理アプリケーションソフトウェア : CNCの FROM上に登録します。
- 656F/11版以降(30i/31i/32i)
- パソコン側 Ethernetライブラリ : パソコン上の適当なフォルダにコピーします(System32など)。
- Fwlib32.dll :
- FANUC Open CNC FOCAS1/Ethernet Libraries(A02B-0207-K732) 1.7 版以降(16i/18i/21i,Power Mate i)
- FANUC Open CNC FOCAS1/Ethernet Libraries(A02B-0207-K732) 1.8 版以降(0i)
- FANUC Open CNC FOCAS1/2 Libraries(A02B-0207-K737) 2.5 版以降(30i/31i/32i)
- Fwlibe1.dll :
- FANUC Open CNC FOCAS1/Ethernet Libraries(A02B-0207-K732) 1.7 版以降(16i/18i/21i,Power Mate i)
- FANUC Open CNC FOCAS1/Ethernet Libraries(A02B-0207-K732) 1.8 版以降(0i)
- FANUC Open CNC FOCAS1/2 Libraries(A02B-0207-K737) 2.5 版以降(30i/31i/32i)
- パソコン側 CNC主導メッセージサーバ : パソコンにインストールします。
- UMsgServ.exe :
- FANUC Open CNC FOCAS1/Ethernet Libraries(A02B-0207-K732) 1.7 版以降
- FANUC Open CNC FOCAS1/2 Libraries(A02B-0207-K737) 2.5 版以降(30i/31i/32i)
CNC主導メッセージサーバのインストール方法
- UMsgServ.exe を適当なフォルダにコピーします。
- コマンドプロンプトより次のように入力します。
- > UMsgServ.exe -Install [Enter]
- 以上で、次回PC起動時には、自動的にCNC主導メッセージサーバが起動されます。
CNC主導メッセージサーバのアンインストール方法
- トレイアイコン上にあるCNC主導メッセージサーバ "UnsolicitedMessage Server" を右クリックしてメニューから "Exit" を選択し、CNC主導メッセージサーバを停止します。
- コマンドプロンプトより次のように入力します。
- > UMsgServ.exe -Remove [Enter]
- UMsgServ.exe をインストールしてあったフォルダから削除します。
CNC主導メッセージサーバの設定方法
- トレイアイコン上にあるCNC主導メッセージサーバ "Unsolicited Message Server" を右クリックしてメニューから "Setting" を選択すると次のような設定のためのダイアログ画面が表示されます。
- 各項目に必要な情報を設定して下さい。
- Port Number :
- CNC主導メッセージサーバのポート番号を指定します。(標準値:8196)
- Timeout(sec):
- CNCとの通信異常を検出するためのタイムアウト時間です。(標準値:30)
- Maximum CNC Number :
- CNC主導メッセージサーバで同時に監視可能なCNCの最大数です。(標準値:32)
- 各ボタンの意味は次の通りです。
- [Standard] :
- 設定値を標準の状態に戻します。
- [ OK ] :
- 設定値を保存して、この画面を終了します。
- 変更した設定値は、次回CNC主導メッセージサーバが起動された時に有効です。
- [ Cancel ] :
- 設定値を保存せずに、この画面を終了します。
CNC主導メッセージ通知機能を使用するためには、CNCに次の設定が必要です。
- - IPアドレス :
- 通知先パソコンアドレス
- - ポート番号 :
- 通知先パソコン内のTCP/UDPポート番号(CNC主導メッセージは、同じポート番号のTCPとUDPを使用します。)
- - 制御用パラメータ :
- ラダー、またはNCプログラムがデータ送信を要求するためのPMCアドレス、またはマクロ変数番号
- Series 160i/180i/210i, 0i, Power Mate i の場合、PMCアドレス(”R”、”E”)のみ設定可能です。
- - 送信用パラメータ :
- メッセージの内容となるPMCアドレスとサイズ、またはマクロ変数番号とマクロ変数個数
- Series 160i/180i/210i, 0i, Power Mate i の場合、PMCアドレスのみ設定可能です。
- - リトライ回数 :
- CNCがデータ送信時に監視する送信リトライ回数
- - タイムアウト時間 :
- CNCがデータ送信時に監視するタイムアウト時間
- - 生存信号間隔 :
- CNCが起動中かの判断を行うための信号送信間隔
- - その他 :
- 詳細は関数仕様書を参照下さい。
これらのデータは、cnc_wrunsolicprm()、cnc_wrunsolicprm2()関数によってPCアプリケーションから設定されます。
これらのデータは、1度CNCに設定を行うとCNCのS-RAM領域に保持されます。
PC側アプリケーションでは、CNCからメッセージを送受信するために、以下の関数を使用します。
- - cnc_wrunsolicprm CNC主導メッセージ用パラメータの設定
- - cnc_wrunsolicprm2 CNC主導メッセージ用パラメータの設定(2)
- - cnc_rdunsolicprm CNC主導メッセージ用パラメータの読み込み
- - cnc_rdunsolicprm2 CNC主導メッセージ用パラメータの読み込み(2)
- - cnc_unsolicstart CNC主導メッセージ開始
- - cnc_unsolicstop CNC主導メッセージ終了
- - cnc_rdunsolicmsg CNC主導メッセージデータの読み込み
- - cnc_rdunsolicmsg2 CNC主導メッセージデータの読み込み(2)
- CNC主導メッセージ用パラメータの設定を行う。
cnc_wrunsolicprm()関数によりCNC主導メッセージ通知機能用のパラメータ設定を行います。必要に応じ、設定したパラメータを cnc_rdunsolicprm()関数で読み込む事ができます。
- CNC主導メッセージ受信準備完了をCNCへ通知する。
cnc_unsolicstart()関数によりCNC主導メッセージ通知機能によるメッセージ受信準備完了をCNCへ通知します。
- アプリケーションにCNC主導メッセージを処理するための関数を追加します。
// ON_MESSAGE の例 #define WM_MYMESSAGE (WM_APP + 1) BEGIN_MESSAGE_MAP( CMyWnd, CMyParentWndClass ) //{{AFX_MSG_MAP( CMyWnd ON_MESSAGE( WM_MYMESSAGE, OnMyMessage ) //}}AFX_MSG_MAP END_MESSAGE_MAP( ) LRESULT CMyWnd::OnMyMessage(WPARAM wParam, LPARAM lParam) { LRESULT result; // メッセージデータ読み込み処理 など return result; }OnMyMessage()関数の引数は次の通りです。
- wParam
- = -3 : ソケット通信エラーが発生しました。
- = -2 : CNC主導メッセージサーバが終了(停止)しました。
- = -1 : CNCの電源がOFFされました。
- = 0 : CNCよりメッセージ送信通知がありました(正常処理)。
- = 1 : CNCの電源がONされました。
- lParam
- = "手形" 番号 : wParamが0の時
- = 0 : wParamが0以外の時
wParam = -3の場合、CNC側の "手形" 番号が無効になりますので、再度 cnc_unsolicstart()関数を呼出して下さい。問題が解決しない場合は、CNCの電 源、イーサネットケーブル、またはI/Fボードを確認してください。
wParam = -2の場合、アプリケーションではウィンドウメッセージを受け取れなく なります。アプリケーションとCNC主導メッセージサーバの再起動が必要になります。
wParam = -1の場合、アプリケーションでは wParam = 1になるのを待ってライブラ リハンドルの取得からやり直す必要があります。
また、OnMyMessage()関数は、wParam=0の場合、"result"に戻り値を設定する事に よってCNC主導メッセージ制御用PMCデータのRES_CODEを設定することができます。 アプリケーションで設定可能な "result" の値は以下の通りです。
- result = 0x00, 0x10〜0x1F, 0x30〜0x3F
- CNC主導メッセージデータを読み込みます。
cnc_rdunsolicmsg()関数を使用して送信されたメッセージデータを読み込みます。
- CNC主導メッセージ受信終了をCNCへ通知する。
cnc_unsolicstop()関数によりCNC主導メッセージ通知機能によるメッセージ受信終了をCNCへ通知します。