Jump to content
OMRON Forums

leandro.martins

Members
  • Posts

    91
  • Joined

  • Days Won

    6

Everything posted by leandro.martins

  1. I think you have to store the string in the user-buffer and use the address of the beginning of your string. From the manual e.g. L0 = strcpy(6,"test") system "touch /var/ftp/gather/%s",6 you can use the L0 for some sanity checks
  2. @Lucas Olvieira steve.milici has sent the document which I was mentioning in this topic
  3. I've already seen a quite old documentation (something like "Motion and Control Ring Optical") that probably it is what you are looking for. I'm able to find it online in some suspicious data-sheet websites, but I think the best thing to do would be send an email to ODT-Support@Omron.com requesting it.
  4. @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
  5. 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
  6. Thank you Steve Is it possible use gpascii -i to execute the pp_save.tpl (or a custom template) to create the backup file?
  7. 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.
  8. 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?
  9. 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.
  10. 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.
  11. 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?
  12. 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.
  13. 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
  14. 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?
  15. 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?
  16. 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
  17. 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
  18. 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.
  19. 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.
  20. 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.
  21. 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.
  22. 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.
  23. Thanks Eric, I noticed that I will need if-else anyway, but nice to know about this function for other purposes
  24. 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
  25. 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
×
×
  • Create New...