我正在为Okuma车床开发应用程序。
我希望能够从应用程序将车床置于警报状态。我没有收到任何错误,应用程序在机器上运行,但它没有进入NC报警状态。
之前的行确实改变了alarmLabel的文本 我正在使用alarmLabel进行故障排除 任何人都可以在C#中提供SetUserAlarm的示例吗? 有谁看到我的代码有什么问题?
alarmLabel.Text = "Alarm ON";
objCMDMachine.SetUserAlarm(
Okuma.CLCMDAPI.Enumerations.UserAlarmEnum.C,
"Test Alarm",
Okuma.CLCMDAPI.Enumerations.UserAlarmSubSystemEnum.All
);
答案 0 :(得分:2)
那里的示例代码对我来说没问题。
要成功生成机器警报,API必须具有许可功能UserAlarm
(okuma.api.lic许可证文件中的 Okuma.Lathe.UserAlarm )。
您可以使用SCOUT library:
确认机器是否具有此选项UserAlarmLathe = Okuma.Scout.LicenseChecker.License_UserAlarm_L; if (UserAlarmLathe.Status == Enums.LicenseStatus.Valid) { // ... }
此外,API所在的计算机还必须具有THiNC ALARM
选项。
如果您的机器没有该选项,可以通过联系您的Okuma经销商订购并询问选项代码“:911-0010 - THIINC ALARM”
通过检查车床规范代码NC-B No. 4, Bit 3
可以确认是否存在此选项。您可以使用THINC API或SCOUT在应用程序中检查此规范代码。
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) { // ... } } }