Jump to content
OMRON Forums

vanandel

Members
  • Posts

    20
  • Joined

  • Last visited

Posts posted by vanandel

  1. (Answering my own question . . .)

    Summary - my project directory was missing the 'Log' subdirectory.

     

    I ran the SysInternals ProcessMonitor

    (http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx)

    and discovered the IDE was trying to open /Log/pp_error.log .

    Once I created the "Log" subdirectory, and "Configuration\pp_disable.txt"

    my builds started working again.

     

    With IDE 1.5.0.21, when I try to build a project, I get the dialog:

     

    Mapping power PMAC variables Failed. Do you wish to continue the build process.

     

    The output window shows:

    =================

    Please wait while mapping Power PMAC variables.

    Could not open the error file

    =================

     

    I'm running the IDE as a user 'lroot' with 'Administrator' privs. The 'lroot' user owns all the directories under 'Documents', and has 'Effective Permissions' to access C:\Program Files (x86)\Delta Tau Systems Inc\

     

    What is the full pathname for the error file that the IDE can not open?

     

    Any idea on how to fix this?

     

    (Please don't ask me to upgrade to a later IDE - later versions of the IDE seem to insist on later versions of the firmware, and later versions of the firmware don't support switching an axis between jog mode and 2 axis movements, which our current application uses.)

  2. With IDE 1.5.0.21, when I try to build a project, I get the dialog:

     

    Mapping power PMAC variables Failed. Do you wish to continue the build process.

     

    The output window shows:

    =================

    Please wait while mapping Power PMAC variables.

    Could not open the error file

    =================

     

    I'm running the IDE as a user 'lroot' with 'Administrator' privs. The 'lroot' user owns all the directories under 'Documents', and has 'Effective Permissions' to access C:\Program Files (x86)\Delta Tau Systems Inc\

     

    What is the full pathname for the error file that the IDE can not open?

     

    Any idea on how to fix this?

     

    (Please don't ask me to upgrade to a later IDE - later versions of the IDE seem to insist on later versions of the firmware, and later versions of the firmware don't support switching an axis between jog mode and 2 axis movements, which our current application uses.)

  3. Perhaps my question was not clear. I know how to run commands on a command line with a '|' (pipe). How do I configure the PowerPMAC to run

     

    /var/ftp/usrflash/Project/C\ Language/Background\ Programs/capp1.out | my_filter /var/log/capp1/capp1.log

     

    automatically, when the system boots?

  4. I am maintaining a motion control program for a weather radar. We have two motors - azimuth and elevation. One of our motion control programs (called PPI) scans the azimuth between two limits, and changes the elevation at the scan boundaries. Another of our motion control programs (SUR) moves the azimuth at a constant rate, and changes the elevation once per azimuth revolution.

     

    The high level control is a background C application - capp1. Low level control is done by a PMAC Script language program that reads global variables set by the "C" program.

     

    To run a SUR (constant azimuth velocity) scan, capp1 removes the azimuth motor from the coordinate system, sets a jog speed, and then starts the motor in jog mode. Most of the time this works, but occasionally, the jog command returns the error: "error #38: PROGRAM RUNNING"

     

    The sequence of operations is:

    &1 a # abort the motion control program

    &1#1->0 # remove the motor from the coordinate system

    &1a start4 # start the motion control program

    Motor[1].JogSpeed=1.820444 # set jog speed

    #1j+ # run the motor in jog mode.

     

    ==============

    Questions:

    1) Is there a better way of implementing the SUR (constant azimuth rate) scan rather than having capp1 (the background C task) remove the motor from the coordinate system and using jog mode?

     

    2) What are the minimum delays between the operations I've shown above to achieve reliable program operation?

     

    3) What else could I do to insure reliable operation?

     

    Thanks!

  5. I just upgraded to PowerPMAC 1.6.0.30 firmware with the 1.6.0.109 IDE (1/9/2014).

     

    When I enter the 'save' command in the terminal window, I get the message:

    Save to pp_diff.cfg failed: Error in section [bRICK]

     

    Does this indicate a real problem, or can I ignore the message?

  6. Does the project file contain absolute or project relative references to the files in the projects?

     

    That is, does the project file specify c:\Users\\Documents\\C Language\Background Programs\capp1\capp1.c

    or does it simply refer to \C Language\Background Programs\capp1\capp1.c (a reference within a project)

     

    What I want to know is whether I can <> an existing project file to a new directory when I restore my source files, or whether I need to <> my project file whenever I create a new directory.

     

    Thanks much.

  7. I'm putting my Power PMAC project under revision control and need to know which files I should check in. I want to check in any files that I need to recreate the project, but not check any files that are produced when I rebuilt the project.

     

    Obviously, I need to check in my source files, found under 'C Language' and 'PMAC Script Language'. I assume that I should checkin my .ppproj file. Do I need to backup any files under Bin, Configuration, Database, Log, Temp, or usrflash?

     

    Are there any other files I should checkin to source control?

  8. The documentation for GetMotorVel() included with the 8/19/2013, 1.5.021 IDE states that the returned velocity is 0.0625 * Motor[mtr].FltrVel units.

    (note that 0.0625 is 1/16)

     

    The Power PMAC Software Reference Manual, August 10, 2012 states that

    Motor[x].FltrVel returns 'Motor units per 16 servo interrupt periods'.

     

    Therefore, GetMotorVel() returns Motor Units/servo interrupt period.

     

    When I actually use GetMotorVel(), it appears to return

    Motor Units/ms, NOT Motor Units/servo interrupt period.

     

    Please correct the documentation.

     

    Is GetMotorVel() documented outside the IDE's online help?

  9. 1) Can anyone explain why I would get an earlier version of this file if I try to update it? (I exited the IDE, and updated the file from source control on another system, and when I restart the IDE, it over-writes pp_proj.h with older contents).

     

    2) Should I NOT put my own definitions in pp_proj.h?

     

    pp_proj.h is an integral part of the project and that is the reason you do not see any menu options that allow you to delete, remove or exclude it from the project. The reason that you get a message asking you to reload is because you have that file already opened in the editor.

     

     

    Using 8/9/2012, 1.5.0.21 IDE, after I build my project/solution, I repeatedly see a dialog box:

    =============================

    \C Language\Include\pp_proj.h

     

    This file has been modified outside of the source editor.

    Do you want to reload it?

     

    Yes |Yes to All | No |No to All

    ============================

    Even if I click "Yes", I see this dialog the next time I build my project.

     

    Does the IDE handle pp_proj.h in some special way?

     

    Are there restrictions on what I should put in this file?

     

    In some cases, if I click "Yes", I get an older version of this file.

     

    Also, in the IDE, when I right click on pp_proj.h, I see the menu:

    -----------

    Open

    Open With

    View Code

    Properties

    ------------

    For all other include files, the right click menu looks like:

    -----------

    Open

    Open With

    View Code

    Exclude from project

    Delete

    Rename

    Properties

    ------------

     

    Why is the menu different?

  10. Using 8/9/2012, 1.5.0.21 IDE, after I build my project/solution, I repeatedly see a dialog box:

    =============================

    \C Language\Include\pp_proj.h

     

    This file has been modified outside of the source editor.

    Do you want to reload it?

     

    Yes |Yes to All | No |No to All

    ============================

    Even if I click "Yes", I see this dialog the next time I build my project.

     

    Does the IDE handle pp_proj.h in some special way?

     

    Are there restrictions on what I should put in this file?

     

    In some cases, if I click "Yes", I get an older version of this file.

     

    Also, in the IDE, when I right click on pp_proj.h, I see the menu:

    -----------

    Open

    Open With

    View Code

    Properties

    ------------

    For all other include files, the right click menu looks like:

    -----------

    Open

    Open With

    View Code

    Exclude from project

    Delete

    Rename

    Properties

    ------------

     

    Why is the menu different?

  11. I removed all the old copies of my app, and renamed

    usr/local/ppmaclibs/rtpmac/RtGpShm.h

    , so it wouldn't be confused with the correct version:

     

    usr/local/dtlibs/rtpmac/RtGpShm.h

     

    After rebuilding my application, my application works as expected.

     

    Thanks for your assistance.

     

    It would be helpful if DeltaTau only shipped one copy of RtGpShm.h with the IDE. I was using a fresh install of the IDE, and somehow ended up with different versions:

    usr/local/ppmaclibs/rtpmac/RtGpShm.h [A bogus version]

    usr/local/dtlibs/rtpmac/RtGpShm.h [the correct version]

     

     

     

    Can you make sure you don't have multiple copies of your app on the system.

    Maybe you are running a copy of your app that was built for the last version of firmware. You can check with the command

     

    system find / -name NameofYourApp.out

     

    Also the .h files that you should be compiling with are on the powerpmac ftp site. ftp://192.168.0.200/libppmac

     

    These are automatically uploaded to

     

    C:\Program Files\Delta Tau Data Systems, Inc.\2.0\Power PMAC Suite\powerpc-460-linux-gnu\usr\local\dtlibs

     

    by the IDE. If for some reason they are different that could be your problem.

     

    The motor structures are only found in shared memory - as you are currently doing. I/O hardware is in piom memory. See "POWER PMAC I/O ADDRESS OFFSETS" starting on page 1006.

     

    OK - for this issue, I don't care about piom memory, I only care about shared memory.

     

    As I said in my initial forum post, my C program, the IDE terminal, and the IDE motor status window don't agree on what's in the motor structures in shared memory. The IDE motor status window shows motor '1' has "Amp Enabled", the IDE terminal interface to the PowerPMAC shows:

    Motor[1].AmpEna = 1

     

    however when my C program uses shared memory:

    if(pSHM->Motor[1].AmpEna)

     

    it DOES NOT show that the Amp Enabled bit is true.

     

    How do I determine why the C program doesn't correctly reference the correct bit? If I could determine the offset in shared memory the terminal interface uses for 'Motor[1].AmpEna , I could compare this to the offset my C program is using in shared memory.

     

    Again - this program used to work, and I've recompiled the program for the new libraries and IDE.

  12. The motor structures are only found in shared memory - as you are currently doing. I/O hardware is in piom memory. See "POWER PMAC I/O ADDRESS OFFSETS" starting on page 1006.

     

    OK - for this issue, I don't care about piom memory, I only care about shared memory.

     

    As I said in my initial forum post, my C program, the IDE terminal, and the IDE motor status window don't agree on what's in the motor structures in shared memory. The IDE motor status window shows motor '1' has "Amp Enabled", the IDE terminal interface to the PowerPMAC shows:

    Motor[1].AmpEna = 1

     

    however when my C program uses shared memory:

    if(pSHM->Motor[1].AmpEna)

     

    it DOES NOT show that the Amp Enabled bit is true.

     

    How do I determine why the C program doesn't correctly reference the correct bit? If I could determine the offset in shared memory the terminal interface uses for 'Motor[1].AmpEna , I could compare this to the offset my C program is using in shared memory.

     

    Again - this program used to work, and I've recompiled the program for the new libraries and IDE.

  13. Bit numbers are given in “Intel” (little-endian) style, where the value of Bit n in the word is 2n. All bit numbers are for a full 32-bit word, even if the hardware uses less than 32 bits. Why there are two versions I am not sure but I will look into this in more detail.

     

    The Power PMAC Software Reference Manual has a memory map listing that provides the offset from the start of I/O memory. Note The ASIC data structures are referenced to a different base address, piom instead of pshm.

    I'm reading the August 2012 version of the Power PMAC Software Reference Manual, and can't find a memory map that lists the offset of Motor[1].Control[0] in shared memory. (Motor[1].Control[] is in a union with the Motor[1].AmpEn bit field).

     

    Please give me a page number in this 1043 page document!

  14. I have a background C program, capp1.c, that needs to report motor status. This application worked under earlier versions of PowerPMAC firmware, but now I've upgraded to 1.5.8.0 and the 8/9/2012, 1.5.0.21 IDE.

     

    I get a pointer to the shared memory:

     

    pSHM= GetSharedMemPtr();

     

    and use this pointer to query the motor state:

     

    if(pSHM->Motor[motor_number].AmpEna) ms |= MS_AMP_ENA;

     

    The IDE status window shows motor '1' has "Amp Enabled". My C program reports that motor '1' does NOT have the AmpEna bit set.

     

    When I search for RtGpShm.h, I find two versions under the IDE:

    usr/local/dtlibs/rtpmac/RtGpShm.h

    AND

    usr/local/ppmaclibs/rtpmac/RtGpShm.h

     

    Questions:

    1) Why are there two different copies of this include file with different contents? (This was the first installation of the Power PMAC IDE on this PC .) One copy has "#ifdef bigendian" and has two different definitions of bit fields for big-endian vs little-endian -- which is the correct version?

     

    2) How can I verify that my C program (which uses the structure definitions in RtGPShm.h) is using an offset in shared memory that matches the offset of Motor[1].AmpEna, as seen from the IDE? That is, how can I determine the offset of the Motor[1].AmpEna byte from the start of shared memory?

     

    Thanks for your assistance.

     

    Hi,

    IDE always uploads the Lib from PowerPMAC on connection.

    Did you compile your project code after you updated the FW and IDE?

    Thanks,

    Atul

     

    Yes, I cleaned the project and compiled it after updating the FW and IDE. Does the IDE upload the include file, or just the library?

  15. I have a background C program, capp1.c, that needs to report motor status. This application worked under earlier versions of PowerPMAC firmware, but now I've upgraded to 1.5.8.0 and the 8/9/2012, 1.5.0.21 IDE.

     

    I get a pointer to the shared memory:

     

    pSHM= GetSharedMemPtr();

     

    and use this pointer to query the motor state:

     

    if(pSHM->Motor[motor_number].AmpEna) ms |= MS_AMP_ENA;

     

    The IDE status window shows motor '1' has "Amp Enabled". My C program reports that motor '1' does NOT have the AmpEna bit set.

     

    When I search for RtGpShm.h, I find two versions under the IDE:

    usr/local/dtlibs/rtpmac/RtGpShm.h

    AND

    usr/local/ppmaclibs/rtpmac/RtGpShm.h

     

    Questions:

    1) Why are there two different copies of this include file with different contents? (This was the first installation of the Power PMAC IDE on this PC .) One copy has "#ifdef bigendian" and has two different definitions of bit fields for big-endian vs little-endian -- which is the correct version?

     

    2) How can I verify that my C program (which uses the structure definitions in RtGPShm.h) is using an offset in shared memory that matches the offset of Motor[1].AmpEna, as seen from the IDE? That is, how can I determine the offset of the Motor[1].AmpEna byte from the start of shared memory?

     

    Thanks for your assistance.

  16. Is there anyway to configure the IDE so it knows a particular axis wraps? We're using the Power PMAC to drive an antenna. On the azimuth axis, we have a 16 bit synchro-to-digital converter that represents 0-360 degrees. As our motion control program continuously rotates the antenna clockwise, the IDE displays a constantly increasing azimuth. This is inconvenient, but if we try to move the antenna using an absolute 'jog' command, the Power PMAC "unwinds" the position. Rather than traveling the shortest distance to 0, the Power PMAC will move the antenna counter-clockwise, multiple rotations, until it reaches the desired position.
  17. We've written a CPLC as part of our motion control system that uses the GetMotorStatus() function call. However, that function call doesn't seem to exist anymore, as of the July 2010 IDE/firmware release. I was able to find rtpmaccapi.h which defines other motion and motor related functions, but I don't see any replacement for GetMotorStatus(). (I didn't see this change mentioned in any release notes, but perhaps I didn't look in the right place.) Also, is there any documentation for using the function calls in rtpmaccapi.h ?
×
×
  • Create New...