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

问题描述 投票:3回答:2

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


UPDATE

我们现在有一个标准的机器不可知库,非常适合这种情况。 请查看SCOUT的示例程序。


2
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.