2

我正在为 Okuma 车床开发一个应用程序。

我希望能够通过应用程序将车床置于警报状态。我没有收到任何错误,应用程序在机器上运行,但它没有进入 NC 警报状态。

它之前的行确实更改了 alarmLabel 的文本。
我正在使用 alarmLabel 进行故障排除。
任何人都可以在 C# 中提供 SetUserAlarm 的示例吗?
有人看到我的代码有什么问题吗?

alarmLabel.Text = "Alarm ON";
objCMDMachine.SetUserAlarm(  
    Okuma.CLCMDAPI.Enumerations.UserAlarmEnum.C,  
    "Test Alarm",  
    Okuma.CLCMDAPI.Enumerations.UserAlarmSubSystemEnum.All
    );
4

1 回答 1

2

您的示例代码对我来说看起来不错。

要成功生成机器警报,API 必须具有许可功能UserAlarm
okuma.api.lic许可证文件中的 Okuma.Lathe.UserAlarm )。

您可以使用SCOUT 库确认机器具有此选项:

      UserAlarmLathe = Okuma.Scout.LicenseChecker.License_UserAlarm_L;
        if (UserAlarmLathe.Status == Enums.LicenseStatus.Valid)
        {
            // ...
        }

此外,API 所在的机器也必须具有该THiNC ALARM选项。

如果您的机器没有该选项,可以通过联系您的 Okuma 经销商并询问选项代码“:911-0010 - THiNC ALARM”来订购

该选项的存在可以通过检查车床规格代码来确认NC-B No. 4, Bit 3。您可以使用 THINC API 或 SCOUT 在您的应用程序中检查此规范代码。

使用 THINC API:

   Okuma.CLDATAPI.DataAPI.CSpec SpecCodeClass = new Okuma.CLDATAPI.DataAPI.CSpec();  
    bool THiNK_ALARM = SpecCodeClass.GetBSpecCode(4, 3);  
    if (THiNK_ALARM)  
    {  
        // ...  
    }  

使用侦察兵:

    if (Okuma.Scout.SpecCode.NCB.MachineSpecCodeFileExists)
    {
        if (Okuma.Scout.SpecCode.NCB.SpecFileIsValid)
        {
            bool THiNK_ALARM = Okuma.Scout.SpecCode.NCB.Bit(  
                                   Okuma.Scout.Enums.NCBSpecGroup.NCB1MG, 4, 3);
            if (THiNK_ALARM)
            {
                // ...
            }
        }
    }
于 2018-02-27T15:15:03.440 回答