Jump to content
OMRON Forums

jtaseff

Members
  • Posts

    31
  • Joined

  • Last visited

Everything posted by jtaseff

  1. Thanks for the update. Can you also update the main deltatau.com support page? Not all of us are in constant contact
  2. Hello, A few people from our company have tried to email the support@deltatau.com address and a few individual addresses we have contacted before. All of them bounce back after a few days as "delivery is delayed by server". Is it just us, and can you check your IT department? GF / Microlution
  3. We have a similar issue where closing the Tune window will cause our ECAT network to drop out momentarily. Happens almost every time on firmware 2.4.1.2 and IDE v3. Downgrading to firmware 2.1.1.3 and IDE version 2 seems to solve it. Edit: On Power UMAC 465.
  4. Will chime in that we are experiencing the same. Our own HMI software uses a number of gpascii threads. If we have the IDE open while running our software, everything slows to a crawl. Our response time for queries and commands gets noticeably delayed, sometimes timing out or getting an empty response. Trying to open the IDE tuning tool and system setup tool can take minutes. This all started with IDE version 3.x, and happens with both 2.1.1.3 and 2.3.2.5 firmware.
  5. Another issue we've seen in the same realm - if we update either the firmware or IDE, we usually end up having to recreate the whole pmac project and re-import all of the script files. The new IDE generally seems to be okay talking to older firmware if I build a new project. But then if I switch computers, an old IDE has trouble loading that new project.
  6. For anyone else trying this, I did find a way around the csglobal problem: In the .tpl file, I can have it run this to output the currently addressed CS: &1 Ldata.coord csvar1 csvar2 &2 Ldata.coord csvar1 csvar2 This produces the following in the .cfg file on fsave, which seems to load things in properly on fload. Ldata.coord=1 Q1024=10 Q1025=20 Ldata.coord=2 Q1024=30 Q1025=40
  7. Is there a way to do it by name when accessing Coord[x].Q, or a way to programatically find the Q-number of a named variable? Would much rather be able to save by name if the project changes around, instead of tracking Q numbers around by hand
  8. Hi there, We're testing out using fsave/fload instead of our implementation of something similar. Couple of questions. Is there a way to deal with csglobal variables? I tried putting this in the .tpl file: &1 csvar1 &2 csvar1 And in the .cfg file, I only get this, which won't work to reload to the correct coordinate systems: Q1024 = 10 Q1024 = 20 Additionally, is there any way to have it work with variable names? For example, if I always have it fsave a global by name, myvar1 gets stored as P1111. But if I update the project to add a new global before that, myvar1 is now in P1112, and the next fload will put the saved value into the wrong place in P1111.
  9. Say I have a bunch of programs which all get loaded through gpascii. They all have numbers #defined, such as #define progMeasurePart 100 or #define progDrillPart 101. Is there a way to check if these are loaded/exist in PMAC by number? The only way I can figure out is checking if (prog[n].Number==progMeasurePart). However, then I have to loop through from prog[0] up to an unknown number of programs that might exist until I find or don't find the one that matches the number I want. This structure is also not documented.
  10. Just curious, why are the firmware and IDE manual up to date on the File Depot, but the IDE is 2 versions behind?
  11. Ran into the same. We ended up having to update the IDE to the "January Patch 2.2.1.25", create a brand new project, and re-add all of the files to it.
  12. Screenshot is attached, and a listing of backup Motor[2], backup EncTable[2], and gate3[0].chan[1]. I can't see anything different between motors 2 and 3. Did #2home, then stopped it with #2jog/ after I saw HomeComplete to keep it from running into the hard stop when it tries to post-trigger-move to 0. The position shown is where I expect 0 to be. Then did #3home, and it stopped happily at 0 at the home flag as expected. No kinematics, just have #2->100000y backup.txt
  13. The motor position shown in the position watch window jumps to that count. I can j=-5,000,000 and it will jog to that spot where it finds the home flag. After powering on today, the position that it picks up at the home flag is now -12,000,000ish instead of -5,000,000ish, at the same physical location. Nothing running at all except me typing #2home in the terminal.
  14. Trying to get a homing search move to work for an incremental encoder. I have Motor[2].HomeOffset=0. I run #2home, it does the homing search. It's set to capture on the Home flag, which works, and the Motor[2].HomeInProgress changes to HomeComplete. However, when this happens, the motor position gets set to -5,000,000ish counts and it tries to post-trigger-move to position 0, which is outside of travel. What am I doing wrong that when it sees the home flag, the position gets set to a non-zero value? I have a 2nd identical motor configured exactly the same which works as expected - the position at the home flag gets set as the 0 point and it stops moving.
  15. Tangential question -- Richard, why do you recommend not having the 2nd gantry motor assigned to the coordinate system? What I've seen is that doing "&1 enable" will not actually enable the 2nd motor, and with Motor[1].FaultMode=1, a fault on the first will not kill the 2nd motor, unless it is assigned with "&1#2->0"
  16. On the website, I was going to PowerPmac -> Software -> PowerPMAC IDE -> Download, which only shows the IDE 2.2.0.39 version. Had to hunt around and finally found the page below which has some of what I'm looking for. At least IDE "January patch" is there. I see some firmware version announcements but not 2.3.1.0. http://www.deltatau.com/DT_SoftwareDownload/SoftwareUpdates.aspx
  17. Is there a single place where all of the versions and patches and everything are listed? Seems like the website and file depot aren't consistently updated. Is there any announcement I'm missing for releases like this patch?
  18. The ampersand makes the argument into a "return value" where you can get a value back from the function. This still passes by value, not by reference. When you look at the compiled version of this code, it is dealing with a local copy stored in L and R variables, not with the pointed-to location. Thus the desired address held by the ptr (e.g. my ECAT address) never gets changed.
  19. We're trying to figure out how to deal with ptr variables in script like an actual pointer. Basically, we would like to pass a pointer by reference to a subprogram. However, the system of "arguments" in PPMAC just copies by value back and forth between R and L variables, so the function can't manipulate the address being pointed to. Ideal case - a generic function for actuators that could get passed the pointer to IO locations, like the following: // generic actuator function: open subprog extend(solenoid, limitswitch) solenoid = 1; // turn on solenoid while (limitswitch == 0) {} // wait for full extension close // component that uses it: ptr GripperOpenSolenoid -> ECAT[0].IO[15].data ptr GripperOpenLimitSwitch -> ECAT[0].IO[16].data open subprog OpenGripper(void) call extend(GripperOpenSolenoid, GripperOpenLimitSwitch); close Is there a way to do this by reference in the subprog argument? Or is there a way to retrieve and pass the M variable number so that the generic function could access Sys.M[12324]? Open to any other suggestions. Thanks!
  20. Hi guys, I'm having an issue trying to make a conditional return. For example, I would like to do this: sub: doMath(&success) success = -1 //default is failure local math = 0; if (somethingbad==1) return; if (somethingelse == 1) return; math = 2+2; success = 1; //completed return; However, when I try to download this, the compiler can't deal with having multiple return statements. It doesn't recognize the "success" argument or the local variable "math" where they are needed after the conditional returns. This would be so much cleaner for us, instead of having to wrap multiple conditions into a huge if/else tree. Is there a way to get this to load properly? Happy IMTS!
  21. Hi Steve, The fun part is that we have to do them separately, at different times. The 2 coordinate systems need to be active about 98% of the time to meet the cycle times required, and there is not a predictable time in each cycle that they are both stationary at the same time. The way the scheduling works, the first CS drops the shared motor during a pause as soon as it is finished using it, then the second CS adds the shared motor during a different pause right before it will require it. They trade off continuously as the scheduling allows. Is there a specific underlying reason why making the assignments separately would fail? The weirdest part is that we have a machine that has been running with this same scheme and almost identical scheduling and assignment code for years and hasn't had the problem. Thanks
  22. Hi guys, I ran another test overnight - this time making both assignments in one step (&2 delete lookahead, &3 delete lookahead, &2#1->0, &3#1->X, &2 define lookahead, &3 define lookahead). I also removed all extra delays between commands, and the lhpurge. This completed 25000 times without failing. Somehow, things start going wrong with the lookahead buffer when the delete / assign / define happens for each coordinate system independently. The usual failures are -34 buffer full when it defines lookahead, which usually forces me to reset everything, and -20 illegal cmd when it tries to clear the motor back to ->0, which usually recovers if I try again right after. I've reproduced on 2 different machines, both UMAC but different configurations. Could you guys try some testing at Delta Tau, or is there anything else I can do to try to narrow it down?
  23. Still no dice :( I added a new motion program that only calls "lhpurge", and my testing PLC runs it for both coordinate systems before trying to change the axis assignment. There are .25 sec delays between it and each of the delete/assign/define commands. The define command still fails with -34. I'm not watching to see how soon it fails, but it sometimes runs fine for a few hundred assignments before failing. Also, for the test I'm running now, I'm not even running any motion programs that should put anything into the lookahead buffer. It's only the PLC trying to switch the motor back and forth between CS2 and CS3. This last time it failed even after calling the lhpurge program. Trying to run "&3 define lookahead 1500" in the terminal keeps failing. Deleting and trying to define lookahead again still failed. Running the lhpurge program manually on both involved coordinate systems, then trying to &3 define lookahead still failed. The only way I can get &3 define lookahead to go through after it failed once is to run &2 delete lookahead first. The other CS. This seems like a good clue but I don't know what it's telling us.
  24. I just tried again, adding in 0.25 second delays between each command (after the cmdstatus clears, before the next is sent). Still no dice. It's occasionally getting the -34 buffer full error, always on the define lookahead command, both for adding and removing the motor from the coordinate systems. I tried another test to stop the PLC if something fails, so I can play with it more. It failed on the define lookhead command after adding the motor. The motor was correctly assigned, querying #12-> returns with &3#12->y, and LHSize was 0. If I try "&3 define lookahead 1500" in the terminal, it keeps returning 34. If I try "delete lookahead" and then "define lookahead 1500", the define command still returns 34. If I delete lookahead, assign &3#12->0, still nothing. The only way I got &3 to go through was to delete and define &2 lookahead first, then delete and define on &3. Does this help diagnose, or is there anything else I can try? Not clear on what buffer is full or what exactly is failing. Thanks for the help.
  25. It's checking for Coord[x].ProgActive==0 before trying to release or assign the motor. Additionally, in the stress test I'm running now, no motion programs are being run - it's just a plc trying to release and then assign a motor every 5 seconds, nothing else going on. It usually gets the -34 error if it does fail.
×
×
  • Create New...