int CiSeries::getLoads() { #ifdef LOADS short ret; if(Globals.nAxesLoadFlag) { ODBSVLOAD sv[MAX_AXIS]; short num = _adapter->_nAxes; GLogger.LogMessage("iSeries::get Loads Enter\n", HEAVYDEBUG); try { ret = cnc_rdsvmeter(_adapter->mFlibhndl, &num, sv); // 15,16,18,21,0,powermate if(ret) { LOGONCE GLogger.Fatal(StdStringFormat("CiSeries::cnc_rdsvmeter Failed\n")); return EW_OK; } if(num>0) _adapter->SetMTCTagValue("Xload",StdStringFormat("%8.4f", ComputeValue(sv[0].svload.data, sv[0].svload.dec))); if(num>1) _adapter->SetMTCTagValue("Yload",StdStringFormat("%8.4f", ComputeValue(sv[1].svload.data, sv[1].svload.dec))); if(num>2) _adapter->SetMTCTagValue("Zload",StdStringFormat("%8.4f", ComputeValue(sv[2].svload.data, sv[2].svload.dec))); for(int i=3; i< _adapter->_nAxes; i++) { if(::toupper(sv[i].svload.name) == 'A') _adapter->SetMTCTagValue("Aload",StdStringFormat("%8.4f", ComputeValue(sv[i].svload.data, sv[i].svload.dec))); if(::toupper(sv[i].svload.name) == 'B') _adapter->SetMTCTagValue("Bload",StdStringFormat("%8.4f", ComputeValue(sv[i].svload.data, sv[i].svload.dec))); if(::toupper(sv[i].svload.name) == 'C') _adapter->SetMTCTagValue("Cload",StdStringFormat("%8.4f", ComputeValue(sv[i].svload.data, sv[i].svload.dec))); } } } catch(...) { } #endif GLogger.Info("CiSeries::get Loads leave\n"); return EW_OK; }
void FanucAdapter::getAxisLoad() { if (!mConnected) return; ODBSVLOAD load[MAX_AXIS]; short num = MAX_AXIS; short ret = cnc_rdsvmeter(mFlibhndl, &num, load); if (ret == EW_OK) { if (num > mAxisCount) { printf("Error: Axis load has more axes than names: %d > %d\n", num, mSpindleCount); return; } for (int i = 0; i < mAxisCount; i++) mAxisLoad[i]->setValue(load[i].svload.data /pow((long double) 10.0, (long double) load[0].svload.dec)); } }