如果我想要一个适用于车床和铣床的程序,那么初始化Okuma API的最佳方法是什么?

时间:2013-09-09 02:15:42

标签: api okuma

我正在编写一个可在车床和加工中心运行的程序。如何在不加载的情况下初始化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();
    }

2 个答案:

答案 0 :(得分: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的示例程序。

答案 1 :(得分:2)

查看c# intro to Interfaces和此视频using .Net interfaces for machine neutral applications。使用接口允许您针对接口进行编程,而不是直接针对API进行编程。