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,351 topics in this forum
-
- 9 replies
- 2.3k views
Hello I define following CS1: undefine all &1 #1->x #2->y #3->i #4->i Then I declare necessary kinematic for motors #3 and #4 only: open forward (1) // Put Coordinate System number inside "(cs)" if (KinVelEna > 0) callsub 100; // Double pass for velocity or error calcs KinAxisUsed = KinEnaAxisZ; N100: KinPosAxisZ = (KinPosMotor3 + KinPosMotor4) / 2000 * 360; close open inverse (1) // Put Coordinate System number inside "(cs)" KinPosMotor3 = KinPosAxisZ * 2000; KinPosMotor4 = (KinPosAxisZ - 100) * 2000; if (KinVelEna > 0) { // True for unsegmented PVT only KinVelMotor3 = KinVelAxisZ * 2000; KinVelMotor4 = KinVelAx…
Last reply by teremock, -
- 2 followers
- 9 replies
- 9.3k views
Is it the intention that I cannot index structure elements by Global (P) variable in a pmc file? e.g. global MyEnc; Motor[14].pEnc = EncTable[MyEnc].a; It seems to allow global MyEnc; local enc = MyEnc; Motor[14].pEnc = EncTable[enc].a; I need this for flexible code for different machine configurations and using the local variable feels like a waste. I cannot find this mentioned in the user guide in the computational features area discussing element indexing.
Last reply by Alex Anikstein, -
- 3 followers
- 7 replies
- 5k views
Hi all I want to use Pmac Commands in a background C app. I can use the Command() function to send commands but I can't get any return with this function. I found that I can use GetResponse function for returns in the gplib.h and I can see the function declaration with some information about the parameters. However, it's not clear how to use it. and what is the echomode and what values are used for it? I couldn't find any details about this function in the manual, the software reference nor in the IDE help. Thanks
Last reply by Eric Hotchkiss, -
- 1 follower
- 12 replies
- 19.7k views
I have a new PPMAC EtherLite that I can connect to with the IDE no issues. For my application, I need to connect programmatically from a Python application over either Telnet or SSH. I have Telnet working, but have hit a snag with SSH. I can connect to the controller via either Telnet or SSH using PuTTY. I can log in, execute "ls" and other Linux commands, and I can finally start "gpascii" and talk to the controller. I can also perform all of these operations programmatically from a Python application using the Python telnetlib module. No problems there. When I try to connect from a Python application using the most common SSH library, paramiko, I am able to …
Last reply by Eric Hotchkiss, -
- 1 follower
- 4 replies
- 2.6k views
I want to use a polygon to detect if I’m too close to a wall. I’ve written the code in C on Windows and it works well (24 ns per check in debug mode). I have a few questions about porting it to PMAC C code: 1. I have some constant arrays in memory, around 5 MB in total. I assume this won’t pose any issue. 2. I could make an order of magnitude faster but I would need a 50 MB lookup table. 3. What size integer is fastest to work with (e.g. 32 bit int)? 4. When the plc detects the robot is too close to a wall I plan to servo off the motor. The motors have a brake function so servo off should stop the motor, which in turn should stop all the motors in the coordinate syst…
Last reply by curtwilson, -
- 3 replies
- 1.2k views
Hello I have a problem with cycles when using Kinematics. Servo Period = 15Khz Real-time Period = 15khz coord[x].SegMoveTime = 1/15 When executed after setting as above, the M-variable operates as 5khz in the CfromScript. The cycle was checked with the GetCPUClock() function and the IDE's Plot. Is there any way to make the Cfromscript cycle faster? Thanks. test.zip
Last reply by curtwilson, -
- 1 follower
- 2 replies
- 832 views
We are using Yaskawa Sigma V drives with a 85M Macro module connected to an ACC-5E card. The drives are in velocity mode and we are adding a thrust command to reduce following error. On the Turbo PMAC, we have an open servo routine that calculates the 32 bit thrust command and writes the upper 16 bits to the first 16-bit command register on the ACC-5E (Y:$78421) and the the lower 16 bits to the second 16-bit command register (Y:$78422). We are converting from Turbo PMAC to Power PMAC now. We have Motor[x].Ctrl Sys.PidCtrl and are a little confused about setting Motor[x].Servo.pAccOut. The manual says to set it to the address of a valid register and mentions Ga…
Last reply by ScottB, -
- 1 reply
- 727 views
Dear Colleagues, I'm trying to implement a solution for data exchange between a host and Power PMAC with a dual core ARM processor using udp protocol. I would like to reach stable <1 ms exchange times. But what I'm concerned is a big jitter of packet round-trip time. For comparison purpose I measured exchange times with my old box on Atom processor and I observed much better and stable statistics. I tried to ping my power pmac to gather some latency statistics on eth0 interface. I observe latencies from ~200 us up to 2-3 ms (up to 10x times difference). Such jitter in latencies is not desirable for my project. Ping statistics: min/avg/max/mdev = 0.088/0.454/1.…
Last reply by vitprofgmail.com, -
- 1 reply
- 800 views
Hi everyone, I am working on a CK3E board, I would like to use function coming from Xenomai API. First, the Xenomai version used is the 2.6.5 - Nucleus one. According to a ' cat /proc/xenomai/stat ' and ' cat /proc/xenomai/sched ' cmd I noticed that the CAPPs are in RT class. Therefore, these CAPPs tasks are used as real time tasks. They perform some mode switch (primary to secondary) and this is not an issue in our use case. Unfortunately, I would like to use some Xenomai functions which are included in the native API but I am facing the following issue: - "undefined reference to `rt_task_sleep' " native/task.h header file is included in my CAPP .c fi…
Last reply by vitprofgmail.com, -
- 1 follower
- 4 replies
- 1.6k views
I'm looking for a way to check if a motor has moved between shutdown and next power up. At the moment I'm checking visually that nothing has moved then restore saved position using these commands in the terminal Motor.PowerOnMode = 6 Motor.pAbsPos = Sys.Ddata.a Motor.HomeOffset = -Sys.Ddata Motor.HomePos = 0 Motor.AbsPosFormat = $01002000 #i hmz where Sys.Ddata contains Motor.ActPos and saved using the custom save function. I'm planning to implement this in a start up procedure in a plc. What would be the best way to check if the motor hasn't moved and restore the saved position?
Last reply by Eric Hotchkiss, -
- 1 follower
- 1 reply
- 634 views
We have been struggling with the June version of PPMAC IDE 4. Parameters we setup using #define in the .pmh (global definitions.phh) files do not appear in the Autocomplete when editing a .plc file. We have tried blank projects, using the May version, removing all traces from within registry/appdata/programdata and reinstalling, $$$*** To no avail.
Last reply by Eric Hotchkiss, -
- 1 follower
- 6 replies
- 1.5k views
In Ver 2.6.1 firmware , it have two parameters for static friction compensation, is there a notes about how to tune Motor[x].Servo.Ksff and Motor[x].Servo.SffCycles ?
Last reply by Eric Hotchkiss, -
- 1 follower
- 4 replies
- 1.4k views
Hello guys, Recently we ran into an issue that, each time try to reset the ethercat network by typing ecat reset and got following error: Unable to grant software licenses by: /opt/therlab/tec/sysconfig/.ethercat for MACID:55:4E:4B:4E:4F:57 And ethercat can never be activated. The network topology we are using is: Master: CK3M, Firmware 2.6.0.0 with Actonis Stack. Sys.EtherCAType is 1 Slave: ECC203 -> Pilz -> Omron Drive Any help would be much appreciated! Thanks! Changda
Last reply by warrenlee, -
- 3 replies
- 2.3k views
In the Turbo PMAC for a high resolution rotary position axis operated in continuous motion, there are travel limits when using special lookahead would cause discontinuities in the rotary velocity due to apparent changes in velocity due to loss of LSB resolution in the floating point calculations. This occurred long before the reaching rollover of the binary position register. Does the Power PMAC have any similar issues?
Last reply by curtwilson, -
- 2 replies
- 956 views
Hi I'm trying to use macro ring to read the position of a motor from one Power PMAC (slave) to another Power PMAC (master). I can establish comunication between the two controllers, but the data they are sharing it's looking weird. Inside the master's project I'm creating an virtual motor that is used only for reading from the slave's EncTable with the following code: EncTable[1].type=1 EncTable[1].pEnc=Gate3[0].MacroInA[0][0].a EncTable[1].pEnc1=Sys.pushm EncTable[1].index1=1 EncTable[1].index2=1 EncTable[1].index3=0 EncTable[1].index4=0 EncTable[1].ScaleFactor=1/65536 Motor[1].pEnc = EncTable[1].a Motor[1].pEnc2 = EncTable[1].a From the slave's projec…
Last reply by luis.segalla, -
- 1 follower
- 5 replies
- 1.3k views
Having an issue where I need to enable the motor twice for it to work correctly. If I send a command "#1j/" all the status indicators are green and everything seems fine but when I jog nothing moves. So have to disable and enable the motor again and it will work correctly. Any ideas what could cause this?
Last reply by Smakarem, -
- 1 follower
- 3 replies
- 979 views
I am having a communication problem with my PowerBrick. After building and downloading a new project and saving it something crashed. The IDE stopped being able to communicate with the PowerBrick. I tried the USB Factory reset and have found that the PowerBrick can be SSH to but will not respond to IDE.
Last reply by steve.milici, -
- 1 follower
- 1 reply
- 790 views
This is probably a super easy one but I have a hand wheel encoder wired into Encoder 4 on my Powerbrick for Manual positioning of the motors but cannot see where to set it up in the IDE for reading from EncTable[4].
Last reply by Eric Hotchkiss, -
- 2 replies
- 1.1k views
I have a Powerbrick LV that I am trying to get a rotator motor(6 poles) with hall sensors driving a lead screw stage (2 mm/ rev) with a linear quad encoder configured (0.1 mm resolution). When I go through the basic setup if I configure it as it should be it will not let me get past the hardware interface section. Basic issue is that there appears to be no lead screw length setting to match the linear encoder to help the phase track in between the hall sensors. It seems that I have to either pretend to have a linear stage with the real encoder or the real rotary stage with a fake rotary encoder. When pretending it is a linear stage I used a cycle length of 0.66666 mm …
Last reply by bprall, -
- 1 reply
- 689 views
In the PowerPMAC IDE 4.4.1.7 bgcplc environment, when assigning the master register address as follows: pshm->Motor[6].pMasterEnc = pshm->EncTable[12].pEnc; I get this warning during the build: ...warning : assignment from incompatible pointer type How can I typecast this address assignment so the warning is avoided, or should I put this assignment in a Command(TS) call? Thanks, Geoff.
Last reply by Alex Anikstein, -
- 0 replies
- 516 views
Hi, I found a problem that may bug other users as well and I wanted to share that issue. I have a project with 2 user-written phase routines and a CCISR. Out of no special reason I set up the usrcode.c-file like this: |phase routine 1 |CCISR |phase routine 2 When I wanted to declare a double-type variable I got the notice: "Double type is not allowed in this context" . I searched the manuals for explanations but could instead find examples which use double data-types. Turns out that all is fine when I change the order the routines to: |phase routine 1 |phase routine 2 |CCISR I know I am not allowed floating point math in the CCISR. But when I …
Last reply by hannsx, -
- 1 follower
- 4 replies
- 2.8k views
PowerBrickLV with 5/15A and 8 axes. Driving stage with brushless motors and using quadrature encoder signals for feedback. Hi, I wanted to reverse the jogging direction on my brushless motor. When I do that I am not able to establish the phase reference any more which worked fine before. I reversed the jogging direction according to the PowerBrickLV hardware reference manual, changing signs on Motor[x].PhaseOffset, Motor[x].PwmSf and changing PowerBrick[0].Chan[0].EncCtrl. Does anyone know a possible explanation or solution for this? Regards, hannsx
Last reply by hannsx, -
- 1 follower
- 1 reply
- 1.2k views
Looking for documentation for the Power Clipper Acc-24S3 and Acc-8AS. Did I overlook them on the filedepot, or are they covered in other manual(s). Thanks Edit: I found the section for the 24S3 in the Clipper User Manual. So question is just for the 8AS.
Last reply by Eric Hotchkiss, -
- 1 follower
- 2 replies
- 1.1k views
Hi, What would be the best way to read the contents of a txt file and use it on my system? I'm already saving in a .txt the last commanded position of a Motor, and at my controller startup (in case of a reboot) I would like to set Motor.HomePos as the value saved in the file.
Last reply by RafaelFalcaro, -
- 1 follower
- 7 replies
- 1.9k views
Hello I'm having some problems when calling a motion program inside Delta Tau. It shows a delay between turning on all the motors for the coordinate system (The AmpEna flag being set to 1) and calling the motion program (in our case this is represented by setting the kinFlag to 1) as shown in the attached file (motion-delay). This motion program calls the CfromScript function and inside it we implemented some calculations for the direct and inverse kinematics. We don't understand this delay because it is happening before the CfromScript function is called, could it be some kind of pre-processing when using C? There are some special flags that need to be set (besides …
Last reply by Eric Hotchkiss,