Power PMAC
Discussions about Power PMAC products (including UMAC Accessories, Power Brick products, Power Clipper, CK3x products, and more) along with their software, including Power PMAC IDE, NC16 HMI, and Power PMAC PDK.
Subforums
2,348 topics in this forum
-
- 0 replies
- 3.4k views
Motion programs, subprograms, and script PLC programs can loaded to PPmac and not saved. There are a variety of reasons why someone might want to know which programs and loaded and which are saved. This "C" App shows what commands are available to automate this process. [attachment=1350:name]
Last reply by bradp, -
- 1 reply
- 4.8k views
We are downloading our nc program as Prog1 all the time. After 2-3 days we get an "Out of Memory" error. In Taskmanager we can see that used memory is 253 MB but Prog1 does not show up. We can download a small Prog1 < 3 MB but if we try to download a bigger one we get the Out of Memory error. The only way to delete the used memory is to shut down and start again.
Last reply by bradp, -
- 1 follower
- 5 replies
- 10.5k views
Can I change the direction a motor considers positive?
Last reply by Sina.Sattari, -
- 0 replies
- 26k views
This is a sample C PLC which shows how use a few of the basic PPmac API functions. The API is already initialized in a CPLC so its functions can be used directly. For a more complete example look into the two sample projects installed with the PPmac IDE. #include #include #include #define CHAR_BUF_SIZE 0x10000 void user_plcc() { double dMtr1Kp, dSysDdata1, dPartNum, dGateIOData, PPmacData; char response[CHAR_BUF_SIZE]; volatile GateArray1* Gate1; volatile GateIOStruct* GateIO; int result; //------- Shared Memory Pointer Examples ------------------------------------------ dMtr1Kp = pshm->Motor[1].Servo.Kp; // read Moto…
Last reply by bradp, -
- 1 reply
- 4.4k views
Hello, I've looked but could not see how to access the Sys.Time Variable from shared memory. Can this be done? I like how this timer is done from the Script universe and was wondering how to use it for timing in C programs. Thanks, ~Ken
Last reply by bradp, -
- 3 replies
- 10.1k views
Hello, When using the IDE we would like to not use any manually assigned variables, but rather use the global variables in "symbolic" form via the "global definitions.pmh" file (and the automatically generated header file when using C programs). Are there any cases where we would *not* be able to use the symbolic names in the "global definitions.pmh" file? I.e. I would prefer to never have to type P100 ever again, even in a #define statment. (BTW, being able to query symbolic names in the watch windows and terminal is very nice...) Also, when using C there is no type checking on the function calls (since they accept any unsigned int), so it is easy to use the wr…
Last reply by bradp, -
- 2 replies
- 5.7k views
We have a need to include a common set of code for all projects when we are building our own Capp. Think of it like a library with a common set of API components that is shared among different projects on a networked fileserver. I would like to keep everything within the DT IDE but I don't know the capability to reference header files and source/object files that are outside of the project folder. I don't know if it is recommended to edit the make file in the Capp folder directly since it might be automatically generated, or need to change with different versions of the IDE. Any advice/help on this would be appreciated.
Last reply by KEJR, -
- 1 follower
- 1 reply
- 4.4k views
Hello, In some of the examples I have been reading there are references to setting and reading IO bits on the accessory IO cards, but the reads and writes are to entire bytes (IO 0-7, 8-15, etc). Since the C compiler needs to do a Read-Modify-Write to the shared memory there is risk of another thread corrupting the data midway in the write cycle. Does DT have any way of solving this, or should we write our own function calls that include the mutex lock/unlock calls to make it thread safe?
Last reply by bradp, -
- 5 replies
- 9.6k views
Hello, I wrote a CPLC that simply jogged a motor back and forth with the command interface. (See code below). When using the IDE I cannot seem to stop the CPLC until the while loop has exited (i.e when I set P10==0). If I use the task manager to stop the CPLC while it is looping it reports it as being stopped, but in fact the motor keeps turning. How do I kill this CPLC short of killing power, and what is the use of the task manager if it doesn't report correct status? (Firmware 1.1.0.40 IDE 1.1.0.50) ******* Code start here *************** #include #include #include void user_plcc() { if(pshm->P[10] == 1) { Command("#2 j/"); while(pshm->P[10]…
Last reply by bradp, -
- 0 replies
- 3.4k views
In some cases the Task Manager and Motor Setup IDE add-ins fail to load because the computers My Documents folder is located on a network drive. If this happens you will see a message similar to this. [attachment=1346:name] This is caused by a problem in Visual Studio. The following link describes another products problem with this issue and the steps needed to clear the problem. http://fogbugz.stackexchange.com/questions/455/fogbugz-for-visual-studio-produces-error-number-8013150a-when-loaded-from-network
Last reply by bradp, -
- 0 replies
- 3.2k views
[attachment=1345:name]
Last reply by bradp, -
- 1 reply
- 5.2k views
I was working in the file “usrcode.c” and discovered that when I remove one of the default functions, like the one below, none of my user written functions will work. Why is this? double user_pid_ctrl(struct MotorData *Mptr) { return 0; }
Last reply by bradp, -
- 1 follower
- 2 replies
- 6.4k views
What is the lower limit for the auto increment when using the position compare feature on the ACC24E? When using the position compare feature according to the manual all registers are in units of 1/4096 of a quadrature count. Applying the same logic as with the Turbo PMAC the smallest permissible auto increment should be 4 (or 1/1028 of a quadrature count). However when trying use the compare feature with auto increments values less than 4096 (or 1 full quadrature count) the position compare output does not fire reliably. What is the reason for this and how to do you determine the smallest permissible auto increment for a given application? This is the PLC code us…
Last reply by Felix, -
- 1 reply
- 6k views
When changing the ACC24E3 phase frequency or servo clock divider motor jog commands do not result in the expected speed. After changing the phase frequency from its default value of 9.035kHz to 36.138kHz (9.035kHz*4) the resulting jog speed for i122=500 is 2000cts/msec (500cts/msec*4). The same behavior occurs when changing the servo clock divider. The resulting jog speed appears to always be scaled linear with the change in effective servo clock frequency. In both cases the Sys.ServoPeriod was updated according to the instructions given in the ACC24E manual. Are there any other parameters that I need to change? Here is the PLC code used to change gate array pa…
Last reply by bradp, -
- 1 reply
- 5.9k views
The result of a home command for a motor that is connected to the ACC24E3 and uses a sinusoidal encoder for feedback with the arctan extension enabled appears to depend on the number and sequence of home commands given. This is what I have observed: After a home command has been given via the terminal (#1hm) the motor starts moving and reverses direction once it passes the index mark as expected. However, instead of coming to a stop once it reaches the index mark (no home offset is programmed Motor[1].HomeOffset = 0) the motor does not stop but keeps turning until it passes the index mark again after a full revolution of the axis and then comes to a stop about a 1/16re…
Last reply by bradp, -
- 1 follower
- 0 replies
- 4.7k views
Today I was trying to understand the following text in Power PMAC software reference manual which explained the conversion from Gate3[].PhaseFreq to upper 16 bits of Gate3[].PhaseServoClockCtrl. [quote]The partial-word element PhaseFreq is stored as a normalized 16-bit floating-point value with a 4-bit exponent (base 2) in bits 28 – 31 and a 12-bit fractional mantissa (implied “1”) in bits 16 – 27. The stored value is divided down by a factor of 35.76 (600,000,000/16,777,216) from the value entered into the element.[/quote] I had to do this calculation in C so I had to understand the conversion, so I made the following Excel spreadsheet. It should be self-explanator…
Last reply by Sina.Sattari, -
- 1 follower
- 2 replies
- 6.9k views
[b]Question:[/b] The IDE fails to communicate with the Power PMAC after a while, but the other windows (such as terminal and watch window) are still communicating with the Power PMAC. What is the cause and how can we fix it? [b]Answer:[/b] The problem is caused by a memory leak in the kernel which causes the Power PMAC to run out of memory, hence no more applications can be executed under Linux. You can check this by sending the following command in a terminal window: [code]more /proc/xenomai/heap[/code] and the problem can be seen if the used size is approaching the memory size available. This problem can be fixed and the following steps will explain how to fix thi…
Last reply by Sina.Sattari, -
how to boot from USB drive
by Guest DavisG- 0 replies
- 3.3k views
I just had a question from a customer - how to boot from USB drive, and what files are needed.
-
- 1 reply
- 4.7k views
Hi, I'm trying to install the latest IDE and I'm running into an error message that reads: Microsoft Visual Studio Shell Isolated Edition: Cannot find one or more components. Please reinstall the application. The software will finish the install but it will refuse to run displaying the same error message. Any suggestions to solve this issue will be appreciated. Thank you very much, Luis 512-984-5233
Last reply by bradp, -
- 1 follower
- 0 replies
- 3.9k views
The following Excel spreadsheet helps you calculate the I2T settings based upon the motor and amplifier data for different types of motors. [attachment=1340:name]
Last reply by Sina.Sattari, -
- 0 replies
- 3.4k views
In general you will need to be careful with this as you just have a pointer to the data. If you have 1D 2D or 3D tables the data will be organized differently. Also you should not expect to be able to build tables this way, only view the data, and perhaps change existing data. But you can not change the size of any table or add tables or remove tables. To do any of this it is best to go through the ASCII interface using GetResponse() #include #include #include #include "../../Include/pp_proj.h" void user_plcc() { double dVar1; float *pData; dVar1 = pshm->CompTable[0].Nx[0]; pshm->P[1] = dVar1; pshm->P[2]++; pData = pshm->CompTabl…
Last reply by bradp, -
CPLC vs Script PLCs
by Guest vanandel- 1 reply
- 4.7k views
We're going to use the Power PMAC to control the antenna of a weather radar. The antenna has azimuth and elevation drive motors. A typical motion control program would start the antenna at 0.5 degrees elevation, and scan between 40 and 120 degrees in azimuth at 5 degrees per second. When the antenna reaches one of the azimuth scan limits, it slows down, increases elevation by 1.0 degree, and scans at 5 degrees/sec in the opposite direction. This sequence repeats until some maximum elevation is reached. [img]http://www.eol.ucar.edu/homes/vanandel/PPI.png[/img] The path to the next elevation angle doesn't need to be a semi-circle, we simply want to change elevatio…
Last reply by bradp, -
- 0 replies
- 3.3k views
The Power PMAC has two major types of CPLCs and several priority levels for CPLCs. There are CPLCs (some are technically functions) that execute in the RTOS. In order of priority, these are as follows. 1. User Phase -> C function called by the PMAC Kernel during the Phase Interrupt. 2. User Servo -> C function called by the PMAC Kernel during the Servo Interrupt. 3. RTIPLCC -> C function called by the PMAC Kernel during the RTI. 4. User PLCC -> C function called by the PMAC Kernel in between each scan of a Script PLC. And there are the background CPLCs which run in the GPOS. There are essentially two operational modes for the background CPLCs. 1. Norma…
Last reply by bradp, -
- 4 replies
- 9.7k views
I've beebn looking around for a way to enable the IC to perform arctangent calculations on the ACC24E3 (with sine feedback). The IDEs Set Variables tab only shows other boards like the ACC24E2A(and associated Gate1 variables). Thank you very much, Luis A. Aguirre 512-984-5233
Last reply by bradp, -
- 3 replies
- 8.2k views
Why has the PowerPmac IDE corrupted my Visual Studio 2005 development enviornment and what can I do to correct these errors when I load a VB project: C:\Program Files\Microsoft Visual Studio 8\Script PLC Language\Snippets\class.snippet: Missing or unspecified Language attribute C:\Program Files\Microsoft Visual Studio 8\Script PLC Language\Snippets\class.snippet: Invalid xml document C:\Program Files\Microsoft Visual Studio 8\Motion Program Language\Snippets\class.snippet: Missing or unspecified Language attribute C:\Program Files\Microsoft Visual Studio 8\Motion Program Language\Snippets\class.snippet: Invalid xml document C:\Program Files\Microsoft Visual Studi…
Last reply by Omron Forums Support,