Jump to content
OMRON Forums

leandro.martins

Members
  • Posts

    88
  • Joined

  • Days Won

    6

Everything posted by leandro.martins

  1. @Lucas Olvieira Usually there is an example in the IDE installation directory. The path should be something like this C:\DeltaTau\PowerPMAC\4\IDE\ProjectExamples\PowerPmacMacroExample\PowerPmacMacroExample
  2. I've already figure it out how to do it. I used the following command: gpascii -i"/var/ftp/usrflash/<Project-name>/Configuration/pp_save.tpl" >> /var/ftp/gather/backup.txt
  3. Thank you Steve Is it possible use gpascii -i to execute the pp_save.tpl (or a custom template) to create the backup file?
  4. Another question related with the backup command, is there a way to pipe the output to a file? I would like to create another file in the same format of the pp_save.cfg. Comparing this file with the .cfg, would make it possible to check if some change happened from the terminal.
  5. I'm trying to find a way to list the current value of a set of non-saved variables, e.g. Sys.P[i] I was reading about the backup command, but it only works with the saved variables. If I add those variable to the pp_custom_save.tpl, will the backup command return the variables added to the template? Or is there a different command, similar to the backup, that could list the current values of the variables present in pp_custom_save.tpl?
  6. I've observed the same behaviour. Actually, it's not necessary to run. The Coord[].Program.Number returns the program assigned. For example, if I simply command a &1b10 without running, it returns 10. It could be a good idea check program number only on the rising edge of the Coord[].ProgRunning.
  7. I was looking for something like the Coord[].Program.Number I think if you are interested just when the program in in the run status, then it's not necessary to check the Coord[].ProgActive. From my understanding, a program could be active but not running (in pause or step), but if it's running, it will always be active. I'll test this later today.
  8. We are also investigating some problems that could have relation with the gpascii. Is there any update about this issue? For the ARM PPMAC, I was considering to check if changing the Sys.CoreGpascii have some effect. Anyone had experience with that register?
  9. As far as I know, there isn't a measured voltage directly, since only the currents are necessary to close the current-loop. I think what could be done is using the IaVolts/IbVolt/IcVolts (depending on your system), that are the PWM carriers; or the IqVolts/IdVolts. Both of these approaches only provide you the commanded voltage.
  10. Is the “Power PMAC Servo Analyzer User Manual” available somewhere, or is just contained in the installation folder? I'd like to have a look at the features before of thinking in installing a trial version
  11. Just a guess, is the motor in a CS? Is there any different TA/TS configured in some motion program? Is the Motor[x].AbortTa/AbortTs also 0?
  12. Thanks Tony, I will try this approach. Reading about Motor[x].CurrentNullPeriod in the manual, it seems that is applied only to external amplifiers. I don't know if I'm misinterpreting. So, I guess that using Motor[x].CurrentNullPeriod we will be applying a correction that complements the corretion of the amplifiers, is that right?
  13. I made some tests and this is really happening, is there some way to disable the auto-calibration routine (by software or by hardware)? Thanks again
  14. I'm driving a voice-coil using the Power Brick LV 5A/15A and my goal is to control the force exerted. Measuring the current with a multimeter, when it's issued the command #nout0 a current of -0.15A is measured, but when I look to the Motor[x].IqMeas the value corresponds to approximately zero amps. I could adjust this by the Motor[x].IaBias, but in the Power Brick LV it says there is an autocalibration routine and the bias should be left in zero If I set some value in Motor[x].IaBias, in a manner to correct the observed bias, is it possible the autocalibration routine interfer in some way and the bias keep changing? Is there any other problem in setting the bias? Thanks in advance
  15. The main objective was to maintain modularity in custom servo routines, being possible to execute functions from others folders For other uses, I think the "Libraries" folder (and its subfolders) already answer that need.
  16. Indeed, it's not possible to include the functions created in the "Libraries" folder. The code is compiled, but the following errors appear in the Output during the download. I also tried to create the header in the "Include" folder, and include the function from there, but the same erros occur. I'm guessing that isn't possible to achieve what I was thinking in the beginning.
  17. Thanks Eric, I'm being able to use the functions created manually in the usrcode.c, without using the "Add a New Function" button. Unfortunately in the "Include" folder, it's not possible to create subfolders, which would be the best, thinking in the modularity of the applications. I'll try some more and update here.
  18. Hello, I'm implementing a Custom User Servo Algorithm, that's been sucessful until now. For modularity purposes, I'm trying to declare a function in a folder inside the "Libraries". I declared my function "test" in "test.c" file, and in the "test.h" I made all the includes contained in usrcode.h #ifdef __KERNEL__ #include <linux/module.h> #else #define EXPORT_SYMBOL(x) #define KERN_ALERT #define printk printf #include <gplib.h> #endif #include <RtGpShm.h> #include <rtpmacapi.h> double test(struct MotorData *Mptr); EXPORT_SYMBOL(test); I also included the path to "test.h" in the "usrcode.c" #include "../Libraries/test/test.h" The code is compiled sucessfully, but the function "test" doesn't appear in the User Servo Setup. Am I missing something, or is it impossible to do what I'm thinking? Thanks in advance.
  19. Hello moha_sa I think the problem could be in the assignment in which motor is being executed the trajectory, in your case it's executing on Motor[6] The trajectory should be executed in a virtual motor (e.g. Motor[0]), because it writes on the Motor[x].DesPos, being x the number of the motor declared in sinTraj_flag(). The Motor[6] needs to be maintained its own servo routine (Sys.ServoCtrl by default) to send properly the DAQ signal. You can click on "clear all" and set "Trajectories" for Motor[0] in the "User servo setup" window. I don't know if I was clear, but I hope it helps.
  20. Thanks Eric, I noticed that I will need if-else anyway, but nice to know about this function for other purposes
  21. I already tried with 2019b and 2016a (which I guess it is the last compatible version on older IDE versions). It generated different files and I have the same problem of tunable gains. Apparently, Simulink substitutes the parameters with the gains defined in the workspace. I would suggest identifying the desirable tunable parameter in the C code and manually changing with "phsm->P[1]", for example. I never tried that, so it's just a guess
  22. I am implementing a servo algorithm in C and it's necessary a sign function: sgn(x)=-1, if x<0 sgn(x)=0, if x=0 sgn(x)=1, if x>0 Since this logic is used in the ServoCtrl algorithm in the Kfff gain, is there any better manner than an if-else statement? Thanks in advance
  23. Just to give a feedback The application doesn't work because this system is closing the servo-loop on the phase interrupt, so it's not using the EncTables I will re-evaluate the solution and get the pros and cons of this approach Thanks again
  24. It makes sense We already did some implementations doing in this way, but for other reasons. I will make the modifications and test it as soon as I get the system available again. Thanks for the help Steve
  25. It´s not possible to move by hand, so the only way is to disconnect one of the encoders, but for this, I will need to reconfigure some registers Now is as it follows: Motor[1].pEnc=EncTable[31].a Motor[1].pEnc2=EncTable[25].a EncTable[31] is configured as the previous post, trying to make the average And EncTable[25] is using only Gate3[1].Chan[0] as source. Unfortunately, the system will be available for tests next Monday. Eric, is it possible to have some relation in use Gate3[0] and Gate3[1] in the average operation? Or maybe the or the number of EncTables? Thanks for the attention.
×
×
  • Create New...