我正在为Okuma车床开发一个应用程序。
我希望能够把车床从应用程序进入警报状态。我没有收到任何错误,应用程序运行在机器上,但它不会进入NC警报状态。
它之前的行确实更改了alarmLabel的文本。
我正在使用alarmLabel进行故障排除。
有人能提供SetUserAlarm在C#中的一个例子吗?
有人看到我的代码出了什么问题吗?
alarmLabel.Text = "Alarm ON";
objCMDMachine.SetUserAlarm(
Okuma.CLCMDAPI.Enumerations.UserAlarmEnum.C,
"Test Alarm",
Okuma.CLCMDAPI.Enumerations.UserAlarmSubSystemEnum.All
);发布于 2018-02-27 15:15:03
你的示例代码在我看来还行。
要成功地生成机器警报,API必须具有许可的特性UserAlarm。
(Okuma.Lathe.UserAlarm在okuma.api.lic许可文件中)。
可以通过使用童子军图书馆确认机器具有此选项。
UserAlarmLathe = Okuma.Scout.LicenseChecker.License\_UserAlarm\_L; if (UserAlarmLathe.Status == Enums.LicenseStatus.Valid) { // ... }
此外,API所在的机器还必须具有THiNC ALARM选项。
如果您的机器没有此选项,可以通过与您的Okuma分发服务器联系并要求选项代码 :911-0010 - THiNC 来订购。
此选项的存在可以通过检查车床规范代码NC-B No. 4, Bit 3来确认。您可以使用THINC或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) { // ... } } }
https://stackoverflow.com/questions/48952644
复制相似问题