Jump to content
OMRON Forums

lovu

Members
  • Posts

    32
  • Joined

  • Last visited

Everything posted by lovu

  1. The device names of disk partitions are unstable; hardware reconfiguration, and adding or removing a device can cause changes in names. This is the reason why it's strongly recommended to use filesystem or partition identifiers like UUID or LABEL to indicate the device and filesystem.
  2. Hi Eric, Yes, in my code, function Send() works well and the "unsolicited message" tool of the IDE always receives what is Send() from ppmac. It is the function GetSend() taht not work well and I can not receive, in my code, what is sent from IDE/serial port 0, as I press "Send" button in "unsolicited mesage" tool. The "cx send0, "command direction is from ppmac to IDE/serial port 0, which is not what I want.
  3. Hello there, I want to send strings to IDE and get strings from it. Athough sys.cdata can be used to achieve that, but, I think, the more convenient way is to use "Unsolicited Messages" tool in IDE. I find such built-in Send()/GetSend() functions may help, as shown below. But it seems that GetSend() did not work well because the returned value is always 0, which represents how many characters ppmac has received from software serial port. Anyone can help? Hikor
  4. Hi, I think the C.S. has completed all the move by the time "dwell" start to execute. According to ppmac user mannual, one should delete lookahead buffer first before add/remove axis definition in that C.S. .Maybe it is because the controller need to re-plan its linearly-managed lookahead buffer. So, you can do like this: "dwell 10 // Stop lookahead execution cmd "&1 delete lookahead" cmd "&1 undefine" sendallcmds" Hikor
  5. Many thanks to Steve to help solving this problem. It is the fload command planned in my startup plc that corrupted Linux booting and it gets ok after delete it.
  6. Hi, steve. What do you mean by saying "corrupted progject"? I have done $$$***/save/$$$ before downloading my project. It's just a normal project with 14 ECAT slaves. Except for about 30 PVars in pp_custom_save.tpl, there is nothing else different in configuration folder. It occured sometimes and log file didn't show the reasons. I can find very few document describing this problem. Can you show me some detail?
  7. Hello there, Anyone shows more detailed resons that directly cause Sys.FileConfigErr? It happened on my controller CK3E occassionally when powered up .
  8. B.T.W, function GetCoordDesPos() seems to add very much load to CPU[0], maybe it's better for users to perform axis position read in script environment.
  9. Oh, got it. Thank you so much, steve and Eric!
  10. struct coorddata* csdata; unsigned inttt=1; void user_plcc() { pshm->P[0]=GetCoordPos(inttt,csdata); pshm->P[1]++; pshm->P[2]=csdata[6].data; } Hello there, I tried to query axis actpos in cplc, using function GetCoordPos(). Axis X/Y/Z were assigned to CS1 and X positon is non-zero. When running this cplc, p0..p2 always stays 0, ending up with background WDT trip Sys.WDTFault=1.Function GetCoordPos() seems to have been got stucked all the time. Anyone knows?
  11. Replace "*sos_tmp++;" with "(*sos_tmp)++;". In your code, just the target address was shifted, not the value ++.
  12. Maybe the modle in your PPMAC library is different from the one actually connected. So, delete it after selecting the amplifier and do it again.
  13. Recently, I came up against this problem too, where power umac and ecc24e3 are used on an laser marking system. That is: 1). if motor starts in between compA and compB, gate3[0].chan[0].equ toggles only when motor ran toward positive direction, not in negative. 2). if gate3[0].chan[0].equwrite=1 is set after compA/compB setting action, as is said in user manual, next auto-incrementing will be disabled. But I found only when motor current position is less than compA and compB, EQU function works well, but if motor current position is bigger than compA and compB, gate3[0].chan[0].equ won't toggle on first compare position. 3). if no gate3[0].chan[0].equwrite setting is done after compA/compB setting action, as is said in user manual, auto-incrementing will be enabled automatically. But I found if motor current position is less than compA and compB, gate3[0].chan[0].equ still toggled at the first compare event, but if motor position is bigger than them , it worked well, that is skipping first toggling action. As Charles said above, it's a bug and "will" fixed on "next" version. So, could you please tell me from which version has this bug been fixed? Can I fix it if you send me a patch?
  14. 1. It is the default project created by IDE v3.1.4.0, only with build action of "usrcode.c" changed from "content" to "compile". 2. The software manual says the range of Gate3.IntCtrl is $0~$00FFFFFF, 24bits then. Why $ffffffff in my test? 3. This default Gate3.IntCtrl=$f00 means that all capture has occured? But the corresponding high byte of Gate3.IntCtrl have not been set yet.
  15. Here is another fault when using CaptCompISR to prepare data for EQU0 on ACC24E3. It seems that calling ISR would cause Sys.WDTFault=2, Sys.ServoCount stop growing and Gate3[0].IntCtrl=$ffffffff. I try this by set "Gate3[0].IntCtrl |=$100000" "UserAlgo.CaptCompIntr=1" and "Gate3[0].Chan[0].EquWrite=3" in terminal, with default code in CaptCompISR routine. It is said Gate3.IntCtrl=0 by default, but is $f00 on my device. Is it limited by firmware? Power Umac firmware v2.0.2.14.
  16. I'm wondering too why the attachment disappeared! No special lookahead or software limit is used. See attachment below:
  17. hi mbalentine, 1) Just because plc0 runs faster than background plcs or cplcs. 2) I just want to show the outline or the method of my test, not the whole project. I have run it successfully. 3) I'm sorry but I think you may have misunderstood my needs. I know there are many methods to get such sine trajectory, but what more important is to keep resultant velocity rate constant, which means, stays the same along the path. Have you ever do applications like this?
  18. Hi mbalentine, I have tried this method before this thread is created. And is my code below. //foreground plc 0 is used to split sine into small segments therefore gets the points to be put into while loop open plc 0 if(pxt<=4.5) { Px(0)=0; Py(0)=0; pxt+=dpxt; //dpxt=0.00001 pyt=8*sin(4*pi*pxt/9); dt=sqrt(pow(pxt-Px(intt),2)+pow(pyt-Py(intt),2)) if((dt-ds)>0 && (dt_last-ds)<=0) //ds=0.05 { dtarray=dt; intt++; Px(intt)=pxt; Py(intt)=pyt; } dt_last=dt; } else { pxt=0; pyt=0; intt=0 dt=0; dt_last=0; disable plc 0 } Close //while loop in motion prog open prog 7 linear abs ts (test(98)) ta (test(97)) F (test(99)) intt++ while(Px(intt)>0 && intt<=3999) { x(Px(intt)) y(Py(intt)) intt++= } dwell 0 intt=0 close However big dpxt, ds and F are, speed crashes occured at peak and trough of the wave, every time! Can interpolating speed of sine wave stays constant when using circular interpolation? Constant speed is the keypoint!
  19. User manual writes "Vector feedrate becomes a constraint instead of a command". When using special lookahead, one would lost control on move profile. In fact, what I am looking for is the way to control the interpolating speed constant!
  20. Hi Steve, 1. I tried to make a sine trajectory move like y=a*sin(w*x+b), not just one motor move; 2. I tried to cut the wave into approximate equal length segment and get the points, then throw them into a linear loop move, in feedrate mode. But however big F is given, speed crashes occured at peak and trough of the wave. 3. What's more, speed should be limited deeply by length of segments and servo motor performance. How is CNC keep the speed of head when machining irregular curve?
  21. Hello there, I want to make a sine trajectory and keep the resultant velocity rate constant. I know there are different ways to make a sine trajectory, such as a while loop in motion prog, kinematic subroutine, projection of an circle interpolation and simulink. But I found it difficult to keep the resultant velocity rate constant. Anyone can help?
  22. By saying "Again do a save and power cycle the slaves and the CK3E", you mean a reboot operation for CK3E and all slaves MUST be done after the save operation of downloading ENI file ? I will have a try. Thank you so much.
  23. Hello there, My CK3E firmware is 2.3.2.5. I found it difficult to issue "ECAT[0].Enable=1" in terminal. I have downloaded the ENI file and setup motors and once successfully command motors to move. But if I issue "ECAT[0].Enable=0" and "$$$" then "ECAT[0].Enable=1", no motor movement can be found from Position window. Even "ecat reset" and "ecat slaves" cause no responce. I'm sure ethercat network configuration is already downloaded. The only way that make sense is to reboot CK3E and all slaves. All occurs again if CK3E is reseted.. Why?
×
×
  • Create New...