1

参照で使用していた API バージョンを更新するまで、私のアプリケーションは正常に動作していました。
具体的には、CLDATAPI.dll バージョン 2.3 .0.0から2.5 .0.0に変更しました

今、私は次のエラーが発生しています:
E01000261122 Failed to get program running state - Invalid sub system for this operation

これを含むいくつかの API 関数を使用するアプリケーションを作成しました。

    Private Function GetCycleComplete() As Boolean 
        Try
        m_blnCycleComplete = m_Program.CycleComplete(MachineSideEnum.LeftSide)
        Return m_blnCycleComplete
        Catch ex As Exception
            Throw 
        End Try
    End Function

テストに使用しているマシンは、OSP-P300L で動作する LT-2000-MY です。
私の問題は「MachineSideEnum.LeftSide」サブシステムにあるに違いないことを認識しています。

  • APIバージョンを変更するだけでこれが影響を受けるのはなぜですか?
  • LeftSide / RightSide とは何を指しますか?
    • この機械にはW軸がありますが、主軸側と関係ありますか?
    • デュアル サイド マシンについて言及している場合、以前は機能していたのに現在は機能していないのはなぜですか?
4

2 に答える 2

2

これは単なる推測ですが、SetSubSystem を使用して CProgram オブジェクトにサブシステムを明示的に設定していますか?

これは、少し前に、Data API オブジェクトのデフォルト サブシステムが SubSystemEnum.NC_RUN から SubSystemEnum.NC_AL に変更されたため、一部のコードを確認する必要があったためです。

同様のことが発生し、デフォルトがマシンでサポートされていないサブシステムに変更された場合、API のアップグレード後にサブシステムが壊れた理由が説明されます。

デフォルトがマシンでサポートされていないものに変更される理由はわかりませんが、リリース ノートまたは SubSystemEnum のドキュメントを確認できるはずです。

MachineSideEnum は、並列 2 スピンドル マシンを参照します。CycleComplete のドキュメントでは、マシンにこの仕様がない場合は MachineSideEnum.LeftSide を渡す必要があることが示唆されているため、これは問題ではないと思います。

于 2013-11-09T23:47:43.823 に答える
2

両面機と片面機の一貫性を保つため、R は両面機では機体の右側を表し、片面機のデフォルトの面でもあります。

Lは両面機の左側を表し、片面機にはありません。

そのためにAPIの仕様を変更しています。

デフォルトでは、すべてのオブジェクトは NC_AL で作成されます。NC_AL は、左上のスピンドルと A タレットに関連するデータを表し、すべての旋盤マシン モデルで常に使用できます。NC_RUN は、主軸またはタレットの現在の選択に関するデータを提供します。

該当する場合、主軸とタレットに関連する特定のデータ領域またはマシン データの側面にアクセスするには、正しいサブシステムを設定する必要があります。

于 2014-11-05T14:50:58.160 に答える