Jump to content
OMRON Forums

wehg

Members
  • Posts

    37
  • Joined

  • Last visited

Posts posted by wehg

  1. Thanks, but my desire to use it was a bit different. I want to use the home complete status to conditionally allow or inhibit a cycle start (program run) in my code. If an encoder fault occurs, I want to force the user to perform a home cycle for the respective motor, before I allow a cycle start to be executed. The home process is a separate user operation, independent of the cycle start operation.
  2. Hello,

     

    I'd like to make use of the supplied status data structure element "Motor[x].HomeComplete". I need to clear the home complete status on an encoder fault. Is there a way I can clear this bit or do I need to establish my own flag?

     

    Thanks,

    Wehg

  3. Ah, ok, understood, thanks.

     

    Selected coordinate system or any other modal selection (addressed motor, coordinate system, echo setting, ...) unlike Turbo and Non-Turbo PMAC, is independent for each of the communication channels (GPASCII). Each of the IDE components have their own GPASCII session with Power PMAC and changing a modal setting on one will not affect the other sessions.

     

    Based upon this, what you're explaining makes sense. The terminal keeps the last called coordinate system even if the project download calls for another coordinate system, which will only affect the GPASCII session in which project is being downloaded. When you change the Ldata.Coord value in a PLC, it changes the coordinate system addressed by that PLC and nothing else.

     

     

  4. I'm trying to activate coordinate system #1 following a project download, after axis definitions have been made, using either cmd"&1" or Ldata.coord=1 from a script PLC. When I query the active coordinate system from the IDE terminal with either & or Ldata.coord, it always initially returns whatever the last selected CS was prior to downloading the project. I even tried forcing with Ldata.coord=1 from a continuously running plc, and it still never changes. If I issue a &1 or Ldata.coord=1 command manually from the IDE terminal, then it shows the active change when queried. Any suggestions?

     

    Thanks,

    Wehg

  5. Thanks Curt. That took care of it.

     

    It appears that the offset is from the 1/T extension being performed in the IC. It is computing a fractional count value in the direction of motion by dividing "time since last count" by "time between last two counts". When you stop, "time since last count" becomes greater than "time between last two counts", which would result in a "fractional" value greater than 1. Since this is not possible, the algorithm "saturates" the fractional value at 255/256.

     

    While the 1/T extension is wonderful for smoothness during motion, when used as a master in this way, it has this undesirable offset characteristic for you. You should disable this function by setting Gate3.Chan[j].TimerMode to 1. (Remember to set Sys.WpKey to $AAAAAAAA to enable changes if you are doing this manually.)

     

     

  6. Thanks Curt,

     

    I tried using the low pass filter in the ECT but was unable to get enough filtering at the higher speeds. I have since implemented the functionality by incrementing the target position using the "jog1=(Motor[1].ProgJogPos)" type command. This seems to work well and allows me to pace the jog moves to match the acceleration time and avoid saturating the input command buffer.

     

    I still have a problem with extra movement/position being added on a reversal though. In this case I am only reading the encoder at Gate3[2].Chan[1].ServoCapt. I have no motors pointing to this encoder at all.

    The setup is:

    EncTable[6].Type=1

    EncTable[6].pEnc=Gate3[2].Chan[1].ServoCapt.a

    .index1 & .index2 = 0

    .ScaleFactor = 1/1024

    .EncCtrl = x 4 quadrature decode

     

    The encoder/handwheel is 100 lines per rev x 4.

    One click on the handwheel produces 4 encoder counts. (100 clicks/rev)

     

    If I move in a continued direction each click causes Gate3[2].Chan[1].ServoCapt to move precisely 1024 as expected. When I reverse direction 255 gets added to the first move. A sequence going negative from zero, then positive back to zero and beyond, then back to zero looks like this:

     

    -3072 -2048 -1024 0

    -1793 -769 255 1279 2303

    0 1024

     

    If the handwheel had one count of backlash, it seems the offset would be 256 not 255. Since the units for .ServoCapt are 1 count = 256, where might the 255 be coming from? (I can try another handwheel, but just doesn't seem like that's the issue.)

     

    Thanks,

    Wehg

     

    It appears you have some non-zero backlash set, or possibly something funky in the servo deadband settings.

     

    Probably the best thing to do to smooth the following but still be able to discard the "excess" from overspeed is to implement low-pass filter in the encoder conversion table entry for the master encoder. If you set EncTable[n].index2 for the entry greater than 31, it will add a 1st-order on the input data. The time constant of this filter is [256 / (256 - index2)] - 1 servo cycles. If you set index2 to the maximum value of 255, you will have a time constant of 257 servo cycles. This may provide enough smoothing. MasterMaxAccel would be set to 0 to enable the following mode that discards excess on following overspeed.

     

     

  7. Hello,

     

    I'm currently using the Position-Following mode to implement a Jog/Increment Handwheel. I'm enabling following in normal mode (Motor[x].MasterCtrl = 1). I'm running into two issues with its behavior.

     

    1. Whenever I reverse direction of the handwheel, I get an offset that occurs for the first move only. As an example, if I scale the MasterPosSf such that one click of the handwheel = .1mm of slave movement, as I increment away from zero I get perfect .1mm steps. As soon as I reverse direction the first move overshoots by an offset value of .0249mm. The next moves in the continued direction are again exactly .1mm, but this offset value is retained. When I return to the original zero I've over-shot by the .0249mm. If I continue in the same direction and then reverse to the original direction back to zero, then I'm exactly at zero. Where might this offset be coming from?

     

    2. I need to use the MasterMaxAccel to get smooth behavior, and avoid amp/current faults at the higher increment settings. I also need to discard "excess" from speed limiting. Is there a way to do both?

     

    Thanks,

    Wehg

  8. Thanks Sina,

     

    Ok, sounds like a nice feature. Will the pp_save.cfg file be removed from the IDE project template in the next release? It's a bit puzzling having it generated in the IDE template, yet it doesn't appear to have any functionality from the IDE, or am I missing something?

     

    Best Regards,

    Wehg

     

    Hi Wehg,

     

    We have implemented something similar to what you're asking in our next version of the IDE which will be released within the next 2 months (April 2012) time frame. This new feature allows you to take a snapshot of all the modified setup registers in Power PMAC from an factory default state, up to the point when the snapshot was taken and add it to your project in IDE. This feature also supports multiple snapshots under the same IDE.

     

     

  9. Thanks Sina,

     

    I can do as you describe below, and see the files on PPMAC, and see the contents of the pp_save.cfg file change when I issue a 'save' command from the IDE. I have no current need to modify the .tpl file, so I don't have any issue with it only residing on PPMAC. The real problem I have is that the .cfg file is getting updated on PPMAC, but it never gets back to the IDE. Therefore I no longer have the convenient means to issue a save command, and have the saved parameters associated to the current project. (The .cfg file in the project is always empty.) If I load a new project, the parameter settings at the last 'save' are still what are active. Is this behavior now by design? (In a much earlier PPMAC that we have, it writes back to the file in the IDE) If so, is there another mechanism that I can use, or should be used, to tie parameter settings to the project? I know I can save to a configuration file (.ppm), but I didn't see how to make that load automatically with the project. My goal was to be able to build and download a project, and establish all the parameter settings, ethercat setup, etc. with the project download. Suggestions???

     

    Thank you,

    Wehg

     

    wehg,

     

    I did the same steps as you have mentioned, and although the file doesn't get uploaded to your project in IDE, the file does exist on the Power PMAC:

     

    Here is how to check it:

     

    
    login as: root
    root@192.168.0.200's password:
    Linux powerpmac 2.6.30.3 #16 Fri Jul 1 13:33:50 PDT 2011 ppc
    ---------------------------------
    -- PowerPMAC Motion Controller --
    ---------------------------------
    Last login: Wed Mar 21 14:07:28 2012 from 192.168.0.101
    root@192.168.0.200:/opt/ppmac# cd /var/ftp/usrflash/Project/Configuration/
    root@192.168.0.200:/var/ftp/usrflash/Project/Configuration# ls
    geomacro.tpl   macro8x.tpl     pp_disable.txt      pp_save.tpl
    macro16x1.tpl  macroio.tpl     pp_inc_disable.txt  pp_startup.txt
    macro16x2.tpl  pp_default.cfg  pp_inc_startup.txt  umacro3603928.tpl
    macro1x.tpl    pp_default.ini  pp_proj.ini
    macro2x.tpl    pp_diff.cfg     pp_save.cfg
    root@192.168.0.200:/var/ftp/usrflash/Project/Configuration# more pp_save.tpl
    >//-------------------------------------------
    >// save CID clock directions
    >//-------------------------------------------
    CID[2].DIR
    CID[3].DIR
    CID[10].DIR
    CID[11].DIR
    CID[18].DIR
    CID[19].DIR
    CID[26].DIR
    CID[27].DIR
    CID[34].DIR
    CID[35].DIR
    CID[42].DIR
    CID[43].DIR
    CID[50].DIR
    CID[51].DIR
    CID[58].DIR
    CID[59].DIR
    
    CID[4].DIR
    CID[5].DIR
    CID[6].DIR
    CID[7].DIR
    CID[20].DIR
    CID[21].DIR
    CID[22].DIR
    CID[23].DIR
    CID[36].DIR
    CID[37].DIR
    CID[38].DIR
    CID[39].DIR
    CID[52].DIR
    CID[53].DIR
    CID[54].DIR
    CID[55].DIR
    >//-------------------------------------------
    >// save system data
    >//-------------------------------------------
    backup sys.
    >//-------------------------------------------
    >// save motor data
    >//-------------------------------------------
    backup motor[0]..
    >//-------------------------------------------
    >// save Motor Definitions
    >//-------------------------------------------
    #*->
    >//-------------------------------------------
    >// save coordinate data
    >//-------------------------------------------
    backup coord[0]..
    >//-------------------------------------------
    >// save encoder data
    >//-------------------------------------------
    backup enctable[0]..
    >//-------------------------------------------
    >// save ecat data
    >//-------------------------------------------
    backup ecat[0]..
    >//-------------------------------------------
    >// save Modbus data
    >//-------------------------------------------
    backup modbus[0]..
    >//-------------------------------------------
    >// save gate array data
    >//-------------------------------------------
    backup gate1
    backup gate2
    backup gate3.
    backup iogates
    >//-------------------------------------------
    >// save comptables
    >//-------------------------------------------
    backup comptable[0]..
    >//-------------------------------------------
    >// save Macro System Vars
    >//-------------------------------------------
    backup macro.
    >//-------------------------------------------
    >// save M-variable Definitions
    >//-------------------------------------------
    backup mdefs
    >&*%100
    
    root@192.168.0.200:/var/ftp/usrflash/Project/Configuration#
    

     

    Now, I'm not sure if this file is supposed to be uploaded automatically from the Power PMAC to your project in IDE or not. I'll let our software team to make the decision on that one.

     

    If you have to, then upload this file from the Power PMAC, modify it as you like and then add it to your project. But you have to do this every time we change something in the save template lets say in future firmware releases, unless we add a feature so we can support custom save templates.

     

     

     

  10. Sina,

     

    Steps 1-5 in your previous reply functioned as described, and the value was retained. The contents of pp_save.cfg still never changes.

     

    I tried this:

     

    1. Created a new project with IDE using only default PowerPmacSuite project template. Didn't modify project whatsoever.

    2. Issued $$$*** command.

    3. Looked at Configuration directory, and pp_save.tpl file does not exist. Only pp_save.cfg and other .txt files and .ini file.

    4. Set Motor[1].ServoCtrl=1.

    5. Issue 'save' command.

    6. Look at pp_save.cfg, and file is empty.

    7. Issue $$$ command, and value of 1 is retained.

    8. Build & download default PPMAC project. Download Successful.

    9. pp_save.tpl still does not exist. pp_save.cfg is empty.

    10. Issue 'save' command. Same results as step 9.

     

    Thanks,

    wehg

     

    wehg,

     

    Can you do a simple test:

     

    1. Issue a $$$*** (this will reset the Power PMAC to factory default)

    2. Issue a change one of the parameters, lets say Motor[1].ServoCtrl=1.

    3. Issue a SAVE command.

    4. Issue a $$$ command.

    5. Check the value of the variable you modified on step 2. (Motor[1].ServoCtrl for example).

     

    If it has retained the value, then the save command is working fine and the problem is caused by moving files from older projects in to the new ones.

     

    When you want to start a project, you don't have to worry about the save template file unless you want to save something which is not saved by default. If there is no template file, it would be created upon $$$*** on Power PMAC and upon downloading the project, these files will be read from the Power PMAC CPU and will be added to your project on your PC. At this point if you want to modify the save template file, then you can do so.

     

    Regards,

     

     

  11. I have a problem on a PPMAC where the 'save' command does not function. The pp_save.tpl file exists in the configuration directory of the project, and the file content shows numerous 'backup' command calls. (I should mention that this file is one that I copied from an earlier project, which I'm assuming was created by the IDE as default, because I didn't create it. I copied the file because when I create a new project, there is no .tpl file in the configuration directory, only the pp_save.cfg file.) The pp_save.cfg is never being written to. The 'save' command issued from the terminal appears to go through a normal cycle and shows 'save complete', yet the file remains empty. File attributes for pp_save.cfg appear normal. (i.e. not read only etc.) What might I be missing?

     

    Thanks,

    wehg

×
×
  • Create New...