Jump to content
OMRON Forums

kmonroe023

Members
  • Posts

    110
  • Joined

  • Last visited

Everything posted by kmonroe023

  1. Hello, I recently attempted to upgrade the FW on a 465 PMAC processor and discovered that the ethernet ports will no longer start at boot after the update. I can connect via the serial port and start the ethernet ports using ifup, so I think the network config in interfaces is ok. Once I start the eth ports I can connect using the IDE. Once connected, the FW update appeared successful and I was able to download and run my project. If I reboot or power down the processor, I have to connect serially to get the eth port running again. Running IDE V 4.5.2.9 Interfaces file attached. I've tried to flash it back to 2.5.0.4 and 2.4.0.180 to see if the network issue would fix itself; it didn't. Eth ports started at boot with both versions of FW before the 2.5.20 update. Any idea how to fix this? I assume some startup script isn't working correctly, but I'm not familiar with Linux so I don't know how to proceed. Thanks, kmonroe interfaces
  2. We typically use the system setup utility within the IDE to initially setup motor data structure elements. We use 320VDC servo motors and 230VAC Geo Direct PWM amplifiers, with Gate3 UMAC axis cards. We recently noticed a discrepancy between the value calculated by the setup utility verses the formula listed in the documentation for the PWM Geo drives. We use dual-axis GPL102 drives at 230VAC power input, which according to the drive documents yields a nominal DC bus of 325V. Our motor specs list a rated motor voltage of 320VDC. When we use that data per the equations listed in the Geo Drive PWM manual, we get motor.PwmSf = 14518. However, the setup utility is setting PwmSf to 18611 given the same data. Why the difference? Is there a risk of motor or amplifier damage if PwmSf is set higher than recommended by the drive docs? We use the amplifier db that comes with the IDE for setup. We've also verified that the motor voltage is 320VDC in the motor db's we've created for the setup utility. Thanks, kmonroe
  3. We have some established programs running background C-PLCs that reference global P variables in the C code. We reference them using the notation "pshm->P[2]". These C-plc's have been running fine on other Power Pmacs for a couple of years. We recently upgraded to FW 2.4.0.180 on one of our 465 UMAC processors. The C code appears to build and download, but none of the expressions that contain global P variables seem to evaluate. No code changes in the project, the only change is new FW in the PMAC. We've verified that the PLCs are running by adding debug code that modifies a few variables in user shared memory, we then use the watch window and make sure the user shared memory locations update as expected when the C-plcs are running. Any ideas as to why just the global P-variable expressions will not evaluate? We've tried cleaning the project before build and download, reboot then build, etc. We're using IDE 3.1.2.2. Thanks, kmonroe
  4. I agree a better method of managing IDE and FW versions is needed. We have 30 to 40 PMAC systems in our production facilities right now, all running various versions of FW and IDE. While upgrading FW on some of our production equipment we've broken projects than ran fine for months or years on older FW, so our support folks are hesitant to upgrade FW on PMACs that are running fine. On the other hand, trying to support all those different FW versions can be a major pain.
  5. Hi Brad, I'm Jhendges co-worker. I've been using the "Run As Administrator" option when I run the setup program and I had the same problems with the setup program failing to start. While trying to install the IDE I noticed that there were multiple instances of "msiexec.exe" running in Task Manager. Every time I'd try to run the IDE setup, another instance of msiexec.exe would appear and sit at 0% CPU. Eventually, I started killing instances of msiexec.exe and the IDE install suddenly started again. It took a couple of tries but killing the MS install processes this way finally resulted in a good install. The IDE is now up and running fine. It just seems to me that the uninstall process for the V3 IDE (3.0.1.0 specifically) left some stuff on my system that caused grief for subsequent IDE setup programs. I just got lucky in that killing stuff in Task Manager got the install running again. I'm running Win7 64-bit Professional.
  6. The release notes for the latest version of FW (2.3.1.0) indicate that an Ethernet/IP stack was added. Any documentation on how to use it? Thanks, kmonroe
  7. I was able to re-create this problem; seems to be related to the firmware update process. After updating firmware to V2.xxx, background C plc's did not seem capable of reading or writing global P variables. Even after resetting ($$$) the motion system. It was not until I rebooted the Linux OS, followed by a build and download, that I was able to get the C plcs working properly. I had this problem while upgrading to V2.1.1.3, and to 2.3.1.0. PMAC's in question were dual core (465) UMAC processors. Have not tried this with a single core processor.
  8. I recently tried to update a Power PMAC 465 UMAC processor from FW 2.1.1.3 to the latest FW version 2.3.1.0. I used IDE V3.0.1.0 for the firmware upgrade and subsequent project download. I found that background C plcs that ran fine in 2.1.1.3 no longer appear to be running after upgrading the FW. I can start and stop the PLC's from the task manager and/or using the UserAlgo terminal command. Even though the task manager shows they are running there is no indication that they are actually doing anything. For example, one C plc (see code below) does nothing more than invoke the fsave() command when a global variable is set, then reset the global, I also had it increment a p-variable just so I could monitor whether it was running or not. The other two bgcplc's that do more complicated stuff also don't appear to be running, even though task manager insists they are. All this worked fine prior to the FW upgrade. Any idea what could've gotten broken??? No code changes, just build and download after the firmware update. **** update **** I just noticed that pp_proj.h is now completely empty!!! Normally it defines global variables and pointers pp_proj.h gets built when selecting "map PMAC variables" but gets cleared after the project download The bg plc's can't read/write P variables, but any expressions using pointers to share user mem work fine. For example: pshm->P[x]=pshm->P[x]+1; does not work *pntrShm = *pntrShm + 1; works as expected. *************** Code for test bgcplc #include #include #include #include "../../Include/pp_proj.h" #define _PPScriptMode_ // uncomment for Pmac Script type access //#define _EnumMode_ // uncomment for Pmac enum data type checking on Set & Get global functions /* fast save function * set bDoFastSave from script environment, cPlc runs Fastsave function * set variables to be saved in "pp_custom_save.tpl" * FastSave will save any parameters listed in the pp_custom_save to non-volatile memory */ #define P7 pshm->P[7] void user_plcc() { if(pshm->P[bDoFastSave] == 1){ FastSave(); pshm->P[bDoFastSave] = 0; } if (P7 > 100000){ P7 = 0; } P7 = P7+1; }
  9. Was there any resolution to this? I am having the same problem with a new V3 install. I did contact technical support on Friday, but I have not heard back from them yet. Hoping that pinging the problem here will help. For what it is worth, I was running V2 IDE with no issues. When I installed V3 I was not able compile c-code for the 465 processor. Other than the problems with not being able to compile, I liked the new shell. Overall it seemed snappier and and I really like that intellisense works offline now! I have a laptop running Win7 Enterprise 64bit, with 16G ram. Regards, kmonroe
  10. I wonder if Amar is trying to connect to the ETH0 port using a network adapter that is configured for 100Mb/sec. The ETH0 port on the 465 PMAC is Gigabit only. It will not auto-negotiate down to 100M. He'll either need to setup ETH1 using the Usb stick method, or connect to ETH0 using a NIC card with Gigabit capability. See this thread: http://forums.deltatau.com/showthread.php?tid=2093
  11. Thanks for the suggestion, I will trying lengthening the timeout. The project isn't large, but I do have a couple of background C plcs and a rather large realtime C usrcode routine. All of that can take up to 20-30 seconds to compile. I wonder if that is causing the timeout?? I am using a UMAC Power PMAC, with the dual core (465) processor.
  12. Occasionally config file creation will fail when trying to generate a configuration file in the the solution explorer. The text in the output window is: Could not generate the project configuration file. Generation of pp_diff.cfg failed: Error in section [bUFIO] I've tried fixing this by re-compiling and downloading the project, then saving. Sometimes this will allow config file generation, sometimes not. What causes this error? IDE Ver 2.2.0.39 Firmware is latest, 2.1.1.3 I believe. Thanks, kmonroe
  13. I have a question regarding how to update/change motor servo gains if the feedback device is changed. The application is a rotary servo motor driving a vertical slide via a ball-screw. There are two encoders in the system, a quadrature encoder that is built into the motor, and a BissC absolute encoder that is connected directly to the slide. The initial motor setup and tuning was performed using the quadrature encoder. The existing gains work well with the slide & load attached and the quadrature encoder closing the position and velocity loops. I'd like to use the existing servo gains, but close the position loop using the absolute encoder; it's connected directly to the slide and has a much higher resolution than the quadrature encoder. If I update pEnc and PosSf to use the absolute encoder, do I need to update the servo position gains to maintain the same bandwidth and performance I have with the quadrature encoder (See below for Motor.PosSf info)? If I do need to update the position gains to use the absolute encoder, is there an easy way to scale the existing gains if I know the difference in resolution of the encoders? // both encoder scaling factors setup to output millimeters // absolute encoder, 1 nano-meter resolution (1 million counts per mm) Motor[5].pEnc=EncTable[10].a Motor[5].PosSf=1/1000000 // incremental encoder on ballscrew w/ 2mm pitch, 8192 counts per rev Motor[5].pEnc=EncTable[5].a Motor[5].PosSf=2/8192
  14. We've had the same issue with our Power PMAC controllers. If we try to put them on our corporate network (that also has VOIP, btw...) the Ethernet port will eventually stop communicating. We've tried to troubleshoot the problem but our limited knowledge of Linux does not do us any favors. As Ibisjoe indicated, ifup/ifdown commands issued through the working eth or serial port get it connected for 10 or 20 minutes, but it will eventually disconnect.
  15. Another method to utilize position compare on a system using absolute position sensors, is to create a phantom Pulse-and-Direction motor that runs on a Acc-24E2 or E3 card (see the "Setting up Power PMAC for Pulse and Direction" section in the Basic motor setup chapter of the users manual). Once you get the motors setup it just works, you don't need to worry about background plc's and any latency associated with their scan times. Configure the phantom motor to follow the real motor and trigger the position compare with the phantom motor position. To make the conversion from motor units to counts easy to understand, I make sure that the phantom motor and actual motor positions match (I just write to the phantom motor .homepos at a convenient time to force it's position to whatever the real motor feedback is reporting). We use this method with Biss-C encoders and it seems to work well. You will need a spare Gate1 or Gate3 card to run the phantom motor though. I can post my phantom motor setup if you're interested.
  16. Set Motor[x].PhaseFindingStep = 1. This is the same as issuing the on-line $ command. The PMAC will set PhaseFindingStep to 0 at the end of the referencing process, this can be monitored in your program to determine when the phase referencing is done. Also note that Motor[x].PhaseFound will be set to 1 if the phase reference is successful. If it PhaseFound is set to 0, the phase reference was not successful.
  17. I would like to use a Gate3 Card to control a motor brake, the motor will be run from this same Gate3 card. The users manual section on brake control indicates that the brake output can be mapped to Gate3.Chan[j].OutFlagB. However, upon reviewing the Acc-24E3 manual its not immediately clear to me which signal on the terminal blocks is controlled by this flag. I would guess that it is one of the terminals on the 12-point Encoder Terminal block, but I'm not 100% sure. Can you please confirm which physical output terminal on the E3 card is controlled by OutFlagB? Thanks, kmonroe
  18. Update. After digging around in the help files, I found out that the output format can be changed to quadrature by setting Gate3.Chan[j].PfmFormat=1. So, I think I answered my own question.
  19. I have an application where I need to slave some peripheral equipment to a Power PMAC controlled motor, the peripheral equipment takes an incremental quadrature signal. Is there a way to output a quadrature signal from the PMAC? My first thought was to create a phantom stepper motor on a spare Acc24-E3 card, slave the phantom motor to the real motor, and use the Pulse outputs on the encoder connector to drive the peripheral equipment. So, I know we can do Pulse and direction with the E3 card, can we emulate a quadrature signal instead? If not, is there another accessory card that would provide a quadrature signal? Thanks kmonroe
  20. We recently received a couple of PMACs with the 465CPU. The version we have has two Ethernet ports. The first port (eth0) only seems to connect to other devices that are running at 1Gbs. It appears that auto-negotiate is not working on eth0. The other port, eth1, connects to both 1G and 100Mbs and auto-negotiates the network speed as required. If I run "mii-tool" from the OS prompt, eth0 just reports "bad address" (see below). We have two 465 Pmacs, and they both exhibit this behavior. Is this by design? mii-tool output: 192.6.94.200:/opt/ppmac# mii-tool -v SIOCGMIIPHY on 'eth0' failed: Bad address eth1: negotiated 100baseTx-FD flow-control, link ok product info: vendor 00:07:32, model 17 rev 4 basic mode: autonegotiation enabled basic status: autonegotiation complete, link ok capabilities: 1000baseT-HD 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD advertising: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control link partner: 1000baseT-HD 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control root@192.168.0.200 192.6.94.200:/opt/ppmac# Thanks, kmonroe
  21. I'm trying to use GetPmacStatus in usrcode.c to get the program running status of a coordinate system. However I can't get usrcode.c to compile if I call GetPmacStatus. If I comment out the line that GetPmacStatus is on, usrcode.c compiles and runs as expected. // code char strCoord[]="Coord[1].ProgRunning"; char *strPntr = strCoord; double CoordProgRun = 0; . . CoordProgRun = (double)GetPmacStatus(strPntr); // end of code Here is output from err.log (I snipped out some of the path text): /cygdrive/c/Users/..../usrcode.c: In function 'CfromScript': /cygdrive/c/Users/..../usrcode.c:96: error: implicit declaration of function 'GetPmacStatus' make[2]: *** [/cygdrive/c/Users/..../usrcode.o] Error 1 make[1]: *** [_module_/cygdrive/c/Users/....] Error 2 make: *** [all] Error 2 Any idea what I'm doing wrong? I'm still in the process of learning C so please let me know if I'm making a mistake in how I use the API call. Thanks, kmonroe
  22. Hi Charles, Thanks for confirming this. I'm pretty sure you guys told me this before, however I am revisiting this issue after a couple of years, and I couldn't seem to find my old posts pertaining to this topic (probably didn't look in the correct threads). Thanks again, kmonroe
  23. I've been working with the Gate3 card position compare function and I have a problem where the EQU output will not change state when the motor passes the first Comp register if the motor is running in the negative going direction. The position compare output functions as expected if the motor is running in the positive going direction. The motor is setup as internal pulse and direction (EncCtrl=8) and PFM pulse counting (TimerMode=3). I want to use this motor to actually trigger since the real motor uses a BissC encoder for feedback. I've setup the PFM motor to follow the real motor. I've plotted both moves (please see attached images); I plotted the Gate3 timerA register, Equ, and the CompA and CompB registers. To make the graphs easy to look at I've scaled the comp registers by 0.0626 (1/16) to account for the difference in fractional count between the TimerA register and the comp registers. With this setup we should see the equ state trigger when the TimerA plot crosses the appropriate Comp (A or B) register plot. As you can see in the attached plots, the positive going move works as expected. In the negative going direction the card misses the first Comp register, but changes state at the second comp register. Is this something peculiar to a motor setup as internal pulse and direction, or is there something else going on?
×
×
  • Create New...