F A Q [ back ]


INDEX


?入力バッファ処理数ってなに?
  Q: 入力バッファ処理数の意味を教えてください。
  A: 初めのうちは、この設定はありませんでした。NC装置もPCもこの20年の
    間に進化をし続け、10年前のものと現在のものとの能力の差は歴然となって
    います。そのために、NC装置によっての入力バッファ処理能力の差をカバー
    する目的で、この項目が追加されました。
    最近のNC装置は益々高速対応型になる傾向で、処理能力も高くなっています。
    新旧の装置双方に対応させるもので、設定方法は使用説明書をお読みください。
    プログラムの先読み量を、MELDAS と FANUC を比較した場合、FANUC の方が多少
    余裕があるようです。(最近の MELDAS のものは分かりませんが)
    当方での検証では、設定値 MELDAS :2(2以外では、通信エラーになる)
    FANUC:5 で使用しています。
    送信データから機械メモリー呼び出しをしている場合は、FANUCの場合も 5以下
    にした方が結果はよいようです。
    もちろん、コンピュータリンク(MELDAS)、リモートバッファ(FUNUC)等を付加さ
    れている装置では、この数値も変わります。通信エラーを起こさない範囲で数値
    が大きい程処理速度がく速なり、実際の加工時間も短くなります。
    

?RS-232C ケーブル の 結線を教えて
  Q: パソコンのインターフェース(RS232-C)が25ピン仕様になっています。
    やはり14ピンでなといだめですか?
  A: RS-232Cケーブルとひとことで言っても、その種類はいろいろあります。
    9ピンで同じだから、25ピンで同じだからといって中の結線が違うものは、
    正しく送受信できません。
    下に、この Win_Rs が推奨するケーブルの結線図を示してあります。
    お手元にあるものと比べてみて下さい。
                  上記のものを、推奨しています。
D-sub25 - D-sub25タイプのもので、 1-1、7-7 ストレート、2-3、4-5 クロス、6-8-20 短絡
のケーブル(協立社 D-U、D-X で使用しています)でも良いと思いますが、
D-sub25のポートを持つ Windows95/98 のPCが当社にないため検証していません。
  (ケーブルの長さですが一応規定があって15b以内ということになっています。)

?データ量が多いものを送信できるか? 
  Q: データ量が多い為DNC運転をしたいのですが問題ありませんか。
  A: send_file のあるドライブの空き容量があれば、OKです。
    ただし、soshin.exe は、送信するデータを送信用のデータに変換してから、
    データを送信しているので、送信したいデータの2倍強の空き容量が必要に
    なります。
   

再送モードを無効にする・しない の違い?
  Q: 再送モードを無効にする にチェックした時と、しない時の違いは?
  A: 当社で行っていることからいいますと、MELDAS(86M)は、無効。 FANUC(全種)
    は、有効。にしています。
    この違いは、再送モードを有効にして最初にデータを送信してサイクルエンドで終了
    した後、再び同じデータを送信した時の動作の違いによって判断しています。
    機械側でサイクルスタートONにしたとき
    送信データの先頭から正常にデータを受信できる装置は、再送モードを有効。
    送信データの途中からデータを受信してしまう装置は、再送モードを無効にし
    ます。再送モードを無効にして、再び同じデータを送信する場合は、先に機械
    側でサイクルスタート ONにしてから、soshin.exe の送信をする操作になり
    ます。
        

?複数のNC機をDNCさせたいのですが、何台接続できるか?
  Q: NC機をDNCでと考えております。 何台までの接続が可能でしょうか。  
  A: 有効な RS-232C ポートの数までは、接続可能です。通常の場合PCに付いてい
    るシリアルポートの数は2つがせいぜいです。2台はOKです。それ以上となる
    と実際に試したことはありませんので、パフォーマンスがどの程度落ちるかわか
    りませんが、とりあえずは動くと思います。1つの設定ファイルでは2台までの
    送信しか出来ませんので、必要数だけ設定ファイルを用意すれば、理論的には可
    能です。
  

DC2,DC4コードを出力する・しないの違い
  Q: 送信開始終了時 DC2,DC4 コードを出力する・しないの違いを教えて下さい。
  A: 有効にする場合:受信側が、 DC2 コードの入力があるまで待機して、DC2 コー
    ドを受け取ってから受信を開始する装置の場合、有効にします。このタイプの
    装置は、DC4 コードを受け取るまで、受信状態を保持します。DC4 コードを受
    け取って受信を終了します。
    上記のタイプ以外の装置は、無効にします。
    ここで注意したいのは、DC2 コードの入力を待たないタイプの装置で有効にして
    送信すると、受信側の準備ができていなくても、送信を始めてしまうので、デー
    タが垂れ流し状態になってしまうということです。
  

?Win_Rs が立ち上がらない
  Q: 立ち上げたとき、COMポートの設定がない…というメッセージが出て立ち上
    がらない
  A: これは、私の手抜きが原因ですが、とりあえずの処置を記します。
    まずWindows ディレクトリ(NTの場合は Winnt ディレクトリ)の snd_com_dsn.ini
    ファイルを開いて内容を下記のようにして下さい。(コピー・ペーストして頂
    ければよいと思います)
    スタート->検索(F)->ファイルやフォルダ(F) で、snd_com_dsn.ini を検索すれば見つか
    ります。この処置は soshin.exe ver 9.037 , jushin.exe ver 9.019 以降から
    は不要になります。
 
    [snd_com_dsn.ini ] (基準ファイル) の内容
    [ポート状況 1:使用中 0:未使用]
    COM1=0                (この行を追加、または編集)
    COM2=0                (この行を追加、または編集)
    ファイル名を入力して下さい。=0  (この行がある場合はこの行を削除)
 
    soshin.exe ver 9.037 , jushin.exe ver 9.019 以降のバージョンでもWin_Rs
    が正常に終了しなかった場合、snd_com_dsn.ini
    [ポート状況 1:使用中 0:未使用]
    COM1=1  ← この部分が、COM1=1 になったままになっている場合や、
    COM2=1  ← この部分が、COM2=1 になったままになっていることがあります。
    これを、COM1=0、若しくは、COM2=0 に書き換えてください。
 
    [Win_RS設定]
    1st 起動ポート=1 (この行を追加、または編集) 1,2は使用可能なポート
    2nd 起動ポート=2 (この行を追加、または編集)  の番号を指定します。
    
    基準ファイル以外 の内容snd_com_dsn.inisnd_com_dsn2.in、・・・)
    [Win_RS設定]
    1st 起動ポート=1    (この行を追加、または編集)
    2nd 起動ポート=2   (この行を追加、または編集)
 
    上記の項目が必須になります。この項目以外はデフォルトのままでOKです。
    この作業は一度実行すればあとは正常に立ち上がるはずです。
  
 

?WindowsNT 4.0 で通信ができない
  Q: OS:Windows NT 4.0 に替えたところ、動作できなくなりました。
  A: soshin.exe ver 9.036 以降を使用してみて下さい。WindowsNT では、途中で
    ケーブルコネクタを付け替えたり、設定を変更したりした場合は、再立ち上げ
    しないと通信に失敗します。
   

?Windows の通信プログラムをつくるには
  Q: パソコンとNCの通信プログラムを書くにはどうしたら良いでしょう?
  A: 通信は結構手間のかかる作業なので、頑張って下さい。  
 
    「通信リソースの構成」参照 Win32 API プログラマーズリファレンス
    DCB dcb;         //DCB構造体へのポインタ
    HANDLE hCom;    // 通信ファイルのハンドル
    DWORD dwError;    
    BOOL fSuccess;    
 
    // シリアルポートのオープン
    hCom = CreateFile("COM1",GENERIC_READ | GENERIC_WRITE,0,NULL);
 
    if (hCom == INVALID_HANDLE_VALUE) {
    dwError = GetLastError();    //
ポートのオープンに失敗したときの処理
    }
 
    fSuccess = GetCommState(hCom, &dcb);    // 設定の取り込み

    if (!fSuccess) {
    /* handle error *    // 設定の取り込みに失敗したときの処理
    }
 
    dcb.BaudRate = 9600;    // 具体的な通信の設定をします
    dcb.ByteSize = 8;
    dcb.Parity = NOPARITY;
    dcb.StopBits = ONESTOPBIT;

    fSuccess = SetCommState(hCom, &dcb);    // 設定を反映させる

    if (!fSuccess) {
    /* handle error */    // 設定に失敗したときの処理
    }
 
    // ここから実際のデータの読み書きをします
    WriteFile(hCom, ・・・)    // データの書き込み
    ReadFile(hCom, ・・・)    // データの読み込み
 
    // 書き込み・読み込み時のエラー検出
    // WriteFile/ReadFile が失敗したときの処理
    // 書き込み・読み込みバイト数と実際に書き込み・読み込みされたバイト数を
    // 比較するのもエラー検出として有効な手段だと思います
    // 正常に読み書きの処理が終了したら、オープンしたポートを閉じます。
 
    CloseHandle(hCom);    // シリアルポートのクローズ
 
    これが基本的な流れになります。実際には、この一連の処理をスレッドで行う
    ように組まれたほうがより実用的です。
 
    下記を参照して書き込んでいます。著作権にふれそうなので
    詳細については、Win32 API プログラマーズリファレンス(ヘルプ)、
    アスキー出版局 「Windows95 通信プログラミング」
        Charles A.Mirho/Andre Terrisse 著   梅原 系 訳
    を、ご覧になって下さい。
   

?受信時のトラブル
「受信すると書込みエラー」
 エラー内容:『AccessViolationがモジュールJUSHIN.EXEのXXXXXXXで発生しました。』
 対処例  :PCの電源を切って、RS-232Cコネクタを差し込んで再起動して解決。
 
「FANUC15M」
 エラー内容:「SR 823 FRAMING ERROR RS232C_1」
       (受信された文字のストップビットが検出されません。)
 対処例  :PC側のポートの詳細設定で、[FIFOバッファを使用]のチェックをはずす
 
 エラー内容:ファイルの先頭の% とOラベルが受信ファイルから消えてしまう
 対処例  :パラメ−タの5110番の1を3にして解決。
  FANUC 15M パラメータ設定(参考)
  #5001->1 #5110->3 #5112->2 #5120->6 #5121->2 #5122->10
  #5130->1 #5131->2 #5132->10
 
「文字化けしてしまいプログラムになりません」
  EIAコードになっていた。
 

?送信時のトラブル
 @エラー内容:送信できない(FANUC 15M)
 対処例  :セッティングのRS232C=0を変更することで解決。
 
 Aエラー内容:エラーメッセージ 「0〜65535の間でなければなりません」が出る。
 対処例  :ネットワーク環境を新しく設定し直たらエラーが出なくなった。
 
  

?現在解決されていない問題点
    @PC: NEC PC98( windows95)  RS-232Cケーブル: D-sub25 - Dsub-25
     この仕様で送信すると、小さなデータはOKですが、少し大きくなるとエラー
     になります。
 
    A I 氏のご指摘により
     Windows95、OSR2より前の初期バージョンおよびSP1パッチ対応
     バージョンで使用した場合、上記@の場合と同様、小さなデータはOKですが
     少し大きくなるとアプリケーションエラーとなります。
     上記@の場合、OSはWindows95で、バージョンまでは分かっていません。
     もしかしたら、@Aは同じ現象なのかもしれません。
     (私の方に、この環境がないため、対応できていません。)
  

?円弧関係のエラーが出る
    「円弧の半径が 0 です。」 「円弧の IJ 入力が不正です。」
    「円弧の 半径 入力が不正です。」
    等のアラームメッセージが出て送信できない。
 
    これは作者(誰?)の怠慢が原因です。NCチェックが円弧はG17平面にしか
    対応していないために起こります。
    解決法は、設定で「2バイトコードも出力する」にチェックして送信してください。
    チェックをしないで、データをそのままの形で送信します。
  


[ もどる ]  [ WebMaster ]