Jump to content
OMRON Forums

hibitor

Members
  • Posts

    22
  • Joined

  • Last visited

Everything posted by hibitor

  1. Does clipper card support interrupt functions? this question confused me for some time. I seek answers from product materials, want to make it clear about interrupt function. information come from said 'Interrupts are provided for all Windows 95/98 and NT OS'. seems that all PMAC support this function? but in 'Using the PMAC2 to interrupt the host computer',it tells PC version of the PMAC2 have a built-in programmable interrupt controller that can be used to let PMAC2 interrupt the host computer over the PC bus (I'm not very clear about meaning of PC version), and Turbo PMAC Clipper hardware reference manual doesn't talk about this topic. So I have no idea about it up to now.
  2. I've deployed hundreds of Turbo PMAC2 (all varieties) systems, running a PLC0 and/or PLCC0: i5=3 and have never encountered this issue. If not a code problem, possible H/W issue? Have you checked your CPU load while your system is running all axes and PLC0 activated? Chris Maybe it's difficulty to check the load while the system is running when this problem occurs. after all, just three times in one entire year. what I feel strange is :Why are the same programs run time and time again over the days, but just several times, this problem comes out?
  3. I've deployed hundreds of Turbo PMAC2 (all varieties) systems, running a PLC0 and/or PLCC0: i5=3 and have never encountered this issue. If not a code problem, possible H/W issue? Have you checked your CPU load while your system is running all axes and PLC0 activated? Chris Maybe it's difficulty to check the load while the system is running when this problem occurs. after all, just three times in one entire year. what I feel strange is :Why are the same programs run time and time again over the days, but just several times, this problem comes out?
  4. Kim. I encountered the same problem with you, I use the clipper. Till now, I haven't found the answer. I suggest that you can replace PLC0 with PLCCx if it can meet your needs. good luck
  5. I have read the URM recently, and find a 'NOTE', it said that 'it is never advisable to have PLC0 or PLCC0 running on power-up'. But no explaining. So what will happen if so?
  6. Yes, it is entire code. Er.,the "IF(M10=0) ENDIF" is just reserved for future use, no sense at here. Or I should change another piece of Clipper card for a test, is it meaningful?
  7. Yes, this is part of a big windows software, when the PLC0 program was disabled, the software doesn't work properly, So I can see it when it occurs, then I use the 'PeWin32' to watch the state of the PLC. the state of the PLC0 is not running. But the PLC1 and PLC31's (the all others PLC's) running are ok. I checked the points, 'Disable' and 'PAUSE' are not used, I5=3, Controll and 'D' is not triggered at all. the PLC0 code is : ///////////////////////////////////////// IF(M10=0) ENDIF IF(M12=0AND P8001=1 AND M3=0) P8006=72 M3=1 M6=1 ENDIF IF(P8005=1ANDP8002=1ANDM10=0) P8002=0 P8008=1 P8003=65087 M4003=M4003&P8003 ENDIF //////////////////////////////////////////// so, what else other reasons can cause the error?
  8. Yes, I wrote a PLC0 program. make it monitor the digital inputs. But when running a long time, it was aways disabled automatically withour any foreboding. It occurs about one time a day(8 hours) on average. the whole PLC0 program is just less then 12 lines. So, anyone can give me some ideas?
  9. thank you for replies all the same, but I'm afraid that my meaning don't be clearly understood. Isx87,Isx88,Isx89 is default value, they have been overridden by TA,TS,and F in the program. So I don't worry about them too much. maybe I should describe my question like this, If there are very small length program blocks in the blended move. the length is too short that it just take very small time to over. for example, the very small time is 0.001ms exaggeratedly. Any way can prevent the speed from slowing down when over this program blocks?
  10. hi, do you encounter this problem? a very small programmed block in a movement sequence. when the movement run into this block, the speed slow down at once. sure, this caused by the minimum block time, i.e. TA. but the TA's minimum value is 0.5ms, I compute the value this small programmed block needed to keep the speed is smaller than 0.5 ms very much. how could I deal with the situation? could you give me some tips? thanks.
  11. Hi,misters.Today,I made a test of speed, In a multi-segments movement, there are a lot of short length segment. at the moment, the sx13=10 and Isx20=0, I found that the velocity is much slower then I preset. I don't change the velocity and acceleration among the segments. but the velocity is vary over the different segments in the path. I think maybe the acceleration time(TA) does it. But the F is unaltered, the velocity changes from high to low! how could I avoid this? just use different TA at the boundry of each segments? does it work? or some other more gracefully ideas can solve it?
  12. thanks a lot, curt, for your kindly help and clearly reply. I will reconstruct my program with the idea in your edification. best regards.
  13. Yes,Curt.that's the process I did, I always feared that using the RAPID under the Axis definiation first and then change it into the control of kinematics is not a legal usage before. now by your patient reply, I'm not afraid it any more. I agree with you definiatly, tangent control of a rotary axis are tricky. After several days study, refer to a lot of materials such as URM and SRM etc,which relate to kinematics I can find.unfortunatly, I still don't think that I really understand it completely.I have made a lot of tests on the machine. because the movement will stop at once when the jump occured,I get the chance to check the value of the variable used in the kinematics at that time. mainly I check the variable "Mxx61","Pxx",and "Q3"(for Axis C), after the RAPID movement, I can see the data in the RAPID command, so I think I can get the angle in RAPID X(data1),Y(data2),C(data3). because I test a simple case that straight line vertically movement, the angle is 90 degree cearly same with data I found in RAPID command. As you said,this data is computed by myself through the host program. but the third motor positions at start point from two axis positions is derived from the inverse kinematics and calculated internally, so I can just look it indirectly by query the value in variable,for example Q3, and it is 90 degree too in this cases(vertical line move from bottom to top). so I have no idea about it. maybe I misunderstand some point in kinematics.could you give some tips. please permit me to append the code snippet to help explain the case. // first download the RAPID mode movement code A CLOSE UNDEFINE ALL &1 #1->200.0X #2->200.000000Y #3->50.000000C I5150=0 ... OPEN PROG 102 CLEAR ... ABS ABS LINEAR X430.000000 Y2399.000000 F2000.000000 ... // second download the movement controled by kinematics A CLOSE UNDEFINE ALL &1 #1->I #2->I #3->I ... I5113=10 I5150=1 OPEN PROG 102 CLEAR NORMAL K-1 TA666 TS166 ABS LINEAR X430.000000 Y2399.000000 F2000.000000 ... // forward kinematic &1 OPEN FORWARD CLEAR ... Q3=P3/Q49 Q7=P1/Q47 Q8=P2/Q48 Q43=Q7 Q44=Q8 Q45=Q3 Q50=Q45%(-180) ... CLOSE // inverse kinematic &1 #1->I #2->I #3->I Q51=0.01 &1 OPEN INVERSE CLEAR Q0=Q7-Q43 Q41=Q8-Q44 IF(ABS(Q0)>Q51 OR ABS(Q41)>Q51) Q52=ATAN2(Q41) ENDIF Q53=(Q52-Q50)%(-180) Q3=Q52+Q53/2 Q3=Q52 Q42=(Q3-Q45)%(-180) Q3=Q45+Q42 P1=Q7*Q47 P2=Q8*Q48 P3=Q3*Q49 Q43=Q7 Q44=Q8 Q45=Q3 CLOSE
  14. Thanks for your kindly response,curtwilson. in face,I come across this problem just when I use the Kinematic program to control the third axis Tangent relative to the path described by two other axis. first I move the three axis to the specified position under the RAPID mode described by axis definition. this time, the rotary axis is toward the direction of the comming movement. then I download another program control by kinematic program that keep the third axis tangent to others into PMAC. but when execute it, there is a jump occur on the rotary motor at once sometimes(and it doesn't occur every time). I have checked the data in Mxx61,Pxx,and Qxx in the forward kinematics, it same(but a very little tolerance for example,0.000007) with the value I give it when I did in the RAPID mode movement in advance. So I think that maybe the tolerance in the modulo operation cause the big jump on rotary motor. If not.Is there any other factor can cause this problem? Thank you for taking the time to answer my questions.
  15. hi, there is a Gordian knot here for me. Is there a good idea to perfectly avoid the wrong effect caused by the round data when transfering the data among the 'target position register' and 'P1...P32' and 'Q1...Q9' when I develop kinematics program? thanks
  16. thanks for your answers, Sina and Gregs, a related question about this for Sina. By the foluma,I take the INT(X-(INT(X/Y)Y)) to calculate the "-11%-4" and "-3%-2.5" like this: because -2.5<0,-4<0, so choose foluma "INT(X-(INT(X/Y)*Y))" -3%-2.5 INT(-3-(INT(-3/-2.5)*-2.5)) INT(-3/-2.5)=INT(1.2)=?;// 1 or 2, if gets 2 INT(-3-(2*-2.5))=2; -11/-4 INT(-11-(INT(-11/-4)*-4)) INT(-11/-4)=INT(2.75)=?;//2 or 3, if gets 3 INT(-11-(3*-4))=1,not -3, if want the result to be -3, INT(2.75) must be 2, but if it is 2, the INT(1.2) may be 1, then, -3%-2.5 will gets -0.5,not 2. Is it a contradiction, or some mistakes I did?
  17. hi, can any friend can tell me how to understand the Modulo(%) operation in the turbo pmac. I try my best to grasp it by SRM and URM. but I'm failed. I don't know how does the "11%-4" gets 3, while "-11%-4" gets -3, and "3%-2.5" gets -2,while "-3%-2.5" gets 2. how does it come out? Thanks.
  18. hello, buddy. I want to define the M variable to the address of P variable, for example P0. how can I find the address of P variable? I found the address of P variable in the URM, but I'm not sure that it is right or not. Is there any way, for example by PeWin32Pro2, I can check it directly?
  19. hi,buddy. Now I need make use of the 'Download()' method in visual C++. The information I have got from the manual(PcommServer.doc) just as below: dwDevice Device number. filePath Path of file to download. bMacro Flag to parse for macros. bMap Flag to create a map file created from macros. bLog Flag to create a log file. This is the same messages as sent to the “msgp” procedure. bDnld Flag indicating to send final parsed file to the PMAC. pbSuccess Pointer to successful start of download thread I'm not sure I'm going to use the parameter of 'bMacro','bMap','bLog',and 'bDnld'. what values could be assigned to them?
  20. hi, a question about the words: ”phase task” and “phase-interrupt task”,”servo task” and “servo-interrupt task”, I’m confused by these notion name, I can perceive that they are not the same thing from the context of the URM, but I’m not not sure about that. Does any friend can help me to separate it. thanks
  21. hello, please to see the Condition first: HOST: Windows XP PMAC: Clipper Turbo PMAC2 Programming Language: Visual C++ 6.0 MODE: Ethernet Communication well, the condition I listed above is what I'm working with. Now I know, I can do the communication between the host and PMAC by calling GetResponseEx(). But I want to know deoes any other methods provided for this aim? such as 'Interrupt' or some like 'send' to let PMAC to notice host something occurs when it wants? thanks.
  22. Yes,after 2 years,I still have the same question with you. the SDK document in the installation,named "PcommServer document" is just inforamtion about part of the library functions! I think the document is most important component of the entire product.especially be in software product.
×
×
  • Create New...