3

我正在编写一个可以在车床和加工中心上运行的程序。在加载期间不做的情况下如何最好地初始化 API。我应该为每种机器类型调用一个类,还是可以在同一个类中调用每个(并关闭它们)?

为车床添加了当前方法的示例...

 using Okuma.CLDATAPI.DataAPI;
 using Okuma.CLDATAPI.Enumerations;
 using Okuma.CLDATAPI.Structures;
 using Okuma.CLDATAPI.DataAPI.MacMan;

 public class LatheDutyOnline
 {
 private CMachine Objl;
 private CVariables Objlv;
 private CIO IO;
 private CATC ObjAtc;
 private CAxis objaxis;
 private CBallScrew objBS;
 private CProgram objProgram;
 private CSpec objSpec;
 private CSpindle objSpindle;

 private void Form1_Load(System.Object sender, System.EventArgs e)
    {
        Objl = new CMachine();
        Objl.Init();
        Objlv = new CVariables();
        IO = new CIO();
        ObjAtc = new CATC();
        objaxis = new CAxis();
        objBS = new CBallScrew();
        objProgram = new CProgram();
        objSpec = new CSpec();
        objSpindle = new CSpindle();
    }
4

2 回答 2

3

您需要一个例程来检查当前的机器类型。像这样的东西:

Private Sub CheckMachineType()  
    If System.IO.File.Exists("C:\OSP-P\SHAREDDLL\LDATAPI.DLL") And   System.IO.File.Exists("C:\OSP-P\VOLANTE\CRAD\LCMDAPI.EXE") Then  
        MachineType = Lathe  
    ElseIf System.IO.File.Exists("C:\OSP-P\SHAREDDLL\MDATAPI.DLL") And System.IO.File.Exists("C:\OSP-P\VOLANTE\CRAD\MCMDAPI.EXE") Then    
        MachineType = MachiningCenter  
    Else  
        MachineType = NonOSP  
    End If
End Sub

然后可以根据 MachineType 的值初始化正确的 API 类型。


更新

我们现在有一个标准的机器无关库,非常适合这个。
请查看 SCOUT 的示例程序。

于 2013-09-10T20:37:20.183 回答
2

看看c# intro to Interfaces和这个使用 .Net 接口用于机器中立应用程序的视频。使用接口允许您针对接口而不是直接针对 API 进行编程。

于 2013-09-11T18:29:04.447 回答