我正在为 Okuma 车床开发一个应用程序。
我希望能够通过应用程序将车床置于警报状态。我没有收到任何错误,并且该应用程序在计算机上运行,但它不会进入 NC 警报状态。
它之前的行确实更改了alarmLabel的文本。
我正在使用 AlarmLabel 进行故障排除。
谁能提供一个 C# 中 SetUserAlarm 的示例吗?
有人看到我的代码有什么问题吗?
alarmLabel.Text = "Alarm ON";
objCMDMachine.SetUserAlarm(
Okuma.CLCMDAPI.Enumerations.UserAlarmEnum.C,
"Test Alarm",
Okuma.CLCMDAPI.Enumerations.UserAlarmSubSystemEnum.All
);
最佳答案
你的示例代码对我来说看起来不错。
要成功生成机器警报,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 - 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) { // ... }
使用 SCOUT:
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) { // ... } } }
关于c# - SetUserAlarm Okuma THINC API C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48952644/