Hi
Question like on title. Is there any Variable With this value?
Krc 4 8.6.6 safe operaton
Hi
Question like on title. Is there any Variable With this value?
Krc 4 8.6.6 safe operaton
have not used 8.6 but i am confident that something like this should do the trick
DEFFCT REAL TimeToBrakeTest()
DECL INT _nIntArray[5]
DECL REAL _rRealArray[5]
DECL REAL _rTimeToBrakeTest
DECL INT nRet
nRet=MD_CMD(brakeTestDevName[], "GET_CYCLE_TIME", _nIntarray[], _rRealArray[])
rTimeToBrakeTest = (_rRealArray[1] - _rRealArray[2])
RETURN rTimeToBrakeTest
ENDFCT
i guess the _rRealArray, element1 is brake test interval and element 2 is the time since last brake test, so computing the difference gives time to next brake test...
I cannot find those variables in entire backup.
well of course you cannot... i just posted the function so obviously it cannot be part of some backup you collected earlier...
and it you take a closer look, you will see that variable "_rRealArray[]" is not a system variable, it is a locally declared runtime variable and the name could be just about any other name. it is needed (among other things) to call special function MC_CMD() to get copy of some values from the controller... values that otherwise would be inaccessible. and since it requires calling function to get the values, this has to be executed on the controller. and if you want the received values saved so they are retained in the backup you need to do some work - before collecting backup.
specifically, there need to:
1. modify this code, so it reads value YOU want,
2. put it on your robot controller,
3. declare variable in some DAT file, with scope that is accessible from code in step 1.
4. make sure this variable is initialized there (in the DAT file)
5. then you need to call the function to update value of your variable in the DAT file (so value is saved)
6. and after all this you would need to make a backup.
then you will be able to see the value.
There is no declaration md_cmd function as well. No braketestmdevname. There is only braketestmdbname in dat braketestreq.
md_cmd is a standard function inside the robot controller like ptp, lin, ... . So no declaration needed. For the missing variable fill in the name of the braketest driver of 8.6. Should be something like mdrBraketest.o. To find the correct name lookup MotionDrivers folders on the c/krc/roboter/config folder. Beware there is more than one folder and I am not sure in which of these the driver is located.
of course...
your backup also does not show any trace of declaration of many other internal functions like SIN(), COS(), SQRT(), geometric operator, PTP, LIN etc. clearly they work but you may only see places where they are USED, not where they are DECLARED.
there are different types of backup but none of them contain everything.
each type of backup is a very selective collection of files, mostly user files and the most essential configuration needed to restore or replicate previous behavior when KSS installation is valid.
it does not mean copying entire KSS and it does not mean copying everything that is on the robot (in the RDC) or everything that is on controller (such as Windows etc.).
in fact even if you make full HDD image of your controller, your HDD image still does not have all the info about the controller, only what is needed to make it run again.
for example hardware logs generated by KrcDiag are ONLY collected by KrcDiag and includes some of the info stored in the CCU, KPP, KSP, RDC, etc. example of such info is hardware and software stand of those components.
collecting HDD image does collect all software installed by KSS and.... that includes mentioned internal functions like SIN(), SQRT(), LIN etc. but i challenge you to find them. you will not find them because they are compiled into binary files so they are not in human readable form.
Could you check this config folders from backups? The first one is from krc4 8.3.3 i guess which works great, and the second one is from 8.6.
what exactly should be checked? brake test?
first one contains both:
Config\User\Common\MotionDrivers\mdrBrakeTest.ini
Config\System\Common\Mada\MotionDrivers\mdrBrakeTest.ini
while later one zip file does not...
there is bunch of other differences but this is expected since different KSS.
i have no backup of KSS8.6 to verify but i would expect that mentioned INI files are present (like in KSS8.3 and 8.5)
according to
Config\User\Common\Mada\KRCAxes.xml
brake test is not activated. so maybe on 8.6 these files (among other things) are not transferred to controller by WoV unless brake test is activated.
Maybe it will be easier to do something like dat:
if you just need to be able to check when the brake test was called, maybe just add message to brake test and make sure it is logged to DB. that way you will have an indicator with time stamp of every run, even if brake test is called manually.
Sorry. I do not understand what would help with the previous problem and what you are trying to achieve here. Can you explain?
I just want to get time since last brake test. I think that time will be sent to scada.
oh my, you sure keep running in circles and beating around the bush.
your SCADA is not going to evaluate some backup file, SCADA reads live data from the controller. so you just need to make the data available... on the controller.... by running the mentioned function (modified of course since you want different time).
DEFFCT REAL TimeSinceBrakeTest()
DECL INT _nIntArray[5]
DECL REAL _rRealArray[5]
DECL REAL _rTimeSinceBrakeTest
DECL INT nRet
nRet=MD_CMD(brakeTestDevName[], "GET_CYCLE_TIME", _nIntarray[], _rRealArray[])
_rTimeSinceBrakeTest= _rRealArray[2]
RETURN _rTimeSinceBrakeTest
ENDFCT
then call it from time to time and save result into variable that SCADA can read.
Ohh... looks great but what is brakeTestDevName[]? ;/
looks like an array, but i dont think it is declared in my kuka xD
I already answered this before, but maybe a bit more precise. It is a character array that needs to contain the name of the brake test driver found in a MotionDrivers folder on the controller. So declare the variable yourself and assign the name.
well... this was normally already declared in
KRC:\R1\TP\BrakeTest\BrakeTestReq.dat
at least that was the case in KSS 8.3
i see that on KSS 8.5 the declaration of brakeTestDevName[] is missing but brakeTestMdbName[] is still there....
quick check at Xpert confirms that this has changed.
on KSS8.5 and newer one gets the values using new function:
real1=GET_BRAKETEST_TIME(#BT_REMAINING_CYCLE_TIME)
real2=GET_BRAKETEST_TIME(#BT_REMAINING_MON_TIME)
real3=GET_BRAKETEST_TIME(#BT_CONFIG_CYCLE_TIME)
so to get time since last brake test you would compute real3-real2
Hod did you find GET_BRAKETEST_TIME funkction or #BT_REMAINING_CYCLE_TIME? I cannot find these functions in any docs that i have.
guess what... i have no idea what documents you have. maybe KRC1 manuals? (just saying)
btw i clearly stated that i found them using Xpert...
it is a KUKA Support portal and basic access is free as explained in READ FIRST...