lamboom

MrPLC Member
  • Content count

    185
  • Joined

  • Last visited

Everything posted by lamboom

  1.   Thanks... I'll give it some thoughts ... What you are saying, is exactly what is happening now with the running of the Random Sea, which is one heck of a lot more complicated than a single simple "S" curve.  I might be wrong but MC_SyncMoveAbsolute doesn't care about velocity or acceleration as an input.  It's just going to a new position every 1.0 ms, an' it's going to do what ever it takes to get there in 1.0 ms ..    So, it's really all about position as a function of time.  A position is determined mathematically every 1.0 ms (CPU  Cycle) .. The resulting curve will be a Cosine .. some of the points will be closer together, others will be farther apart.   If the curve lasts 0.5 seconds, there will be 500 points defining that curve.   I've written the code to make sine waves (cosine waves.. same thing just 90 degrees out of phase with sines)  .. Now to make the code that creates just a part of a sin/cos wave .. the part that goes from -1 to +1  ... How hard could it be?          ....well... it's very hard for me.... sigh! Pay no attention to the glitch (arrow): The perfect sequence (without the glich)
  2. YUP... an' that's the problem.. will have to learn how to do that .. I know enough to keep trying...    Thanks
  3. Thanks Crossbow...  When ya have a moment:   http://forums.mrplc.com/index.php?/topic/33178-dont-want-an-s-curve-need-a-half-cosine-curve/  
  4. Hi Crossbow... Thanks for the reply.   Cause I'm an idiot ..      I figured it out .. and posted a last sentence above in an edit...  It must be frustrating trying to help people who are not well experienced in this science.   I am truly sorry I am quite limited in understanding Omron programming, and Sysmac ... The manuals are very confusing as tutorials .. they seem to be mostly "references" ..  I do appreciate "all" of your comments...  REALLY! ...     Check this out: https://www.youtube.com/embed/gGzp7HURBJE?rel=0&controls=0&showinfo=0
  5. The final answer to "The Big Tricky Omron NJ Question... is "YES"     The Random Sea can be created "on the fly" by the NJ.. and control the LinMot "DS" Cia402 EtherCAT drive with precise precision, and power,  matching random wave profiles found on the surface of the worlds oceans.
  6. Hi Here's a question I'm about to ask Omron.. as soon as I can figure out who to ask.. It's complicated asking support.. their web email form doesn't make complex questions easy. Here's the question: Can the NJ CPU program a LinMot linear motor to make the "Random Sea"? The NJ has a mixed protocol.. Ethernet/IP and EtherCAT (CoE),  and claims to be a "Motion Controller".    I doubt Motion Control is available on it's Ethernet/IP line.. but the EtherCAT might be another story.   Certainly The Omron NJ is a Motion Controller for Omron NJ series drives.. However, how well does it work with LinMot? Here's the curve.  Imagine a LinMot Linear motor continuously moving, never really stopping, following a real-time, mathematically generated curve, moving positive then negative, at random frequencies and random amplitudes. Almost never repeating a motion sequence. looks something like this: Yet, after a while the motion history fully represents the spectral distribution of energy on the surface of the ocean. Spectrum analyzers can display it, and mathematics can define it..  I just have to make that sea in a model scale…    (Time scales by the square root of the scale factor) And keep the water in the tank: https://www.youtube.com/watch?v=SQd6YzBWVvI The big question is: Can the Omron NJ get a LinMot Linear Motor to do this? … LinMot thinks YES.. but, isn’t sure. Yes there are ways to “connect" LinMot to The NJ.. EtherCAT (CoE), Ethernert/IP but… there is nothing in the LinMot drive that can create or store a predesigned Random Sea .. Only a Motion Controller, generating real time motion commands, by running  mathematical equations, "on the fly” can do that.   If the NJ is a true “Motion Controller”, and the LinMot C1250-DS-XC is implemented as an “axis” by Symac Studio, which it is…       Then, there may be hope. Closed loop, PID feedback remains with the LinMot drive, with special settings in LinMot Talk … Homing might have to be done with the NJ .. or by Digital I/O’s What do the Omron experts out there think?  Can this be done? Thanks much, Regards, Michael
  7. Hmmmm.... Well... actually I did .. hasn't got back to me yet ... He's far, far away...  Thanks for the info... i searched, but didn't see any info on the latest versions .. guess I coulda activated the "Auto updater" ... what could possibly go wrong... Thanks again....
  8. I have version 1.17  .. and when I tried to import a file from a friend, I got this instead: Is there anything higher than V1.17? 
  9. Now, I'm thinking the ramp (Offset) ought to be in the ST curve program.. Do away with the MC_Move Absolute & just make it part of the curve equation (hate it when "just" gets used in a sentence) It seemed easier to use one of the MC fb's ..   Fine, I'll "Just" write an Offset routine into the curve equation. Unless you know of a better way ........Perhaps: MC_SyncOffsetPosition fb ?
  10. Contacting Tsunagi Lab in Japan

    More Update.. I'm not using the drive in it's streaming configuration mode, but only as a slave in a basic Motion Control Mode.  The MC_SyncMoveAbsolute fb does successfully provide streaming position data to the drive:                        more later...........  
  11. I would like to verify that connectivity will not be an issue with a non-Omron EtherCAT drive ... especially in the area of streaming position data.   Does anyone here know how to do that? Specifically .. the compatibility between Omron's NJ101-1000, ver. 1.0,  and the LinMot, EtherCAT CoE402 drive: C1250-DS-XC      A lot of people think it will work, or "should work" ... But the failure of the NJ to stream position data via E/IP to a LinMot Ethernet/IP drive designed to receive streaming over E/IP (Rockwell' Allen Bradley PLC can do it)  ... has caused some concern .... I would like to be sure that these devices are compatible.    Thanks much....
  12. I'm trying to ramp up from zero to enable a NJ calculated random curve to never produce a negative position point:                                                     Calling the move "Offset", and using a MC_MoveAbsolute fb, the idea is to trigger the curve generating ST to start when the move reached 50mm.  (Wanted the variable "Ready" to go TRUE at the end of the ramp to 50mm)  .. Then, MC_SyncMoveAbsolute fb would continue from there, sending streaming position data to the LinMot Linear motor. As seen above. But, there's a problem.  Initially, I used the MCMoveAbsolute.Done to start the ST curve move sequence, which also ramps amplitude from zero, over a period of 3 seconds: Offset + [(a number that goes from 0 to 1.0 in 3 seconds) * (the mathematically generated position curve)]   The result is a "clunk" at the transition of the end of the ramp and the start of the curve. Not sure when "Done" happens... started to think perhaps it's when the fb is finished making the command to move, and not when the move has actually finished. So I tried an IF_THAN:                    That was kinda silly, because the ramp final position never reached 50mm ... "Ready" never set to TRUE ...  close, but no cigar. So the next step was use a Round instruction that actually monitors the position of the slider: and a EQ instruction that compares the two, and issues a "Ready" command to start curve the curve program:                  This produced the Minor Fault:  Axis 0x543B0000 Motion Control Instruction Re-Exicution Disabled Now I'm thinking this can't work because "Ready" will only be TRUE when the the curve hits 50mm (which is quite often, after it starts running ... 50mm being the new zero) However, It did start the curve sequence.. but nothing moved because of the fault... Soooo.. The question is: How can I do a smooth transition from the end of an Offset move to the start of the curve?  Or.. better still...How is an "Offset" normally done to any curve generating routine? Thanks much, Regards, Michael PS:   Here's a look at what's happening when I tried using State Tracker... and something to compare actual position at the end of the Offset move, and the start of the random sea curve: https://www.youtube.com/embed/BdpvC1yyKxU?rel=0&controls=0&showinfo=0      RSStart is the variable that powers the Random Sea ST program, and the SyncMoveAbsolute fb that drives the motor.  Cycle time is 1ms.  Probably would be quieter if I could 500us .. but the NJ is only a 101-1000               FYI... Delta Motion's RMC75E Motion Controller can make the Random Sea using LinMot's B1100-VF drive .. as quiet as a mouse.  But then, I think that controller has a cycle time of 1us!   Wondering if there's a problem with Direction or BufferMode:    _emc_Direction#_mcNoDirection or _eMC_Buffer_Mode#_mcAborting ????  Thanks for any ideas on the "Clunk" ... I may have to live with the "singing" ... sniff!  .... or use a Delta Motion Motion Controller ..      
  13. Omron NJ and EtherCAT LinMot Drive

    Even more UPDATE..    I've managed to acquire a LinMot DS XC drive (CoE402) Incredible as it might seem, the Omron NJ can create an infinitely long "Random Sea" position curve using the Drive as a slave:                         I am not configuring the drive for Streaming Mode .. It is configured "Motion Command Interface" as a typical slave .. like the Omron G5 Servo motor. However I'm having a small problem when that offset ramp reaches 50mm, and the curve starts at 50 and slowly builds to full height..  there is a "jump" at that point..which will become a thread soon, if I can't fix it...  
  14. Hi... It's beginning to look like the the answer to the question "Can the NJ stream position data to a E/IP LinMot Drive" .. is NO    The NJ, using Ethernet/IP, can not produce Tag based data in constant cycles (which LinMot requires for streaming)  ...  CIP messaging doesn't look possible either.   However, over EtherCAT, the cyclic position data is constant, at 1ms, 2,ms or 4ms (with my NJ101-1000)  all within the range for LinMot streaming ... so they say... So now, I'm looking at using the EtherCAT port and the LinMot Drive C1250-DS .. an EtherCAT drive.. LinMot claims the drive will act as an Axis slave, just like Omron's G5 series motors. Which really work well when streamed with position data... Has anyone ever used a EtherCAT LinMot drive with the NJ successfully?     Thanks much, Regards, Michael
  15. WOOT! .....    I tried it (unchecked Do not transfer the EtherNet/IP connection settings ) .. and it worked!   then came back to the forum to tell you... and you had already replied ... That's a great suggestion.. "Transfer FROM Controller"  Will do that in the future... Life has meaning again. Now off to try Streaming... which will use your brilliant sine wave summing Structured text program with MC_SyncMoveAbsolute  FB To be continued ...
  16. Omron NJ and EtherCAT LinMot Drive

    UPDATE...The LinMot drive C1250-DS-XC is working well connected to the NJ's EtherCAT port..  Basic power-on, homing and move operations are working using the Sysmac FB's. The big test is Position data Streaming ... with the MC_SyncMoveAbsolute FB ... Working on it ...
  17. I just loaded a demo program from LinMot for E/CAT control of one of their drives.   It's quite simple,  it shows various ways of power on, homing, and a move for their linear motor.  it included 3 ladder programs, and 2 structured text programs as examples.   I selected one ladder, and deleted the other 4 (there would have been serious errors and warnings if the full example program had been installed) Here it is:    http://download.linmot.com/plc_lib/preliminary/Omron/LinMot_Demo4SysmacNJ_prjDS402.smc2 I installed this program into the NJ, and discovered only the following internal & external variables:   As you can see at the top (internals) the main command variables (cmdPowerDS, cmdDriveHomeDS & cmdMoveDS) initiate the critical first important functions...yet they are not Global Variables, and no reference was made to managing them via digital I/O's or HMI    It's one of those "examples" where if you don't understand it, you should be doing something else with your life.. There is an instruction of sorts provided by LinMot: 0185-1120-E_0V6_AN_PLC_Commissioning_CoE-DS402.pdf All of this is provided for a "Big Picture" of what's going on...   previously there was a project with this NJ where I attempted to stream position data via the E/IP port to a LinMot E/IP drive (there are posts about it on this forum) .. that attempt, in spite of helpful suggestions from Forum members, ... failed.  (Members were correct in their skepticism that it wouldn't work) After synchronizing and installing this new project, in which the drive is connected to the E/CAT port, and the HMI and a E/IP switch is connected to the E/IP port.. synchronization is achieved using E/IP with a hub... and works fine... sorta of. There is a Net error ..blinking red LED on the E/IP port, and a minor fault red blinking on the NJ statue LED's:  minor fault, reported as:  Ethernet/IP - CIP  event code 0x34270000 "Tag name resolution error" this a mystery  .. there are no tags in this program (tho there were some in the previous program which used the E/IP network to manage a LinMot drive (unsuccessfully for streaming .. but worked well for everything else desired... power on, home, moves, jog .. etc) 3 causes were listed: (1)The size of the network variable is different from the tag settings. (2) The I/O direction set for a tag data link and the I/O direction of the controller variable do not mach (3) There are no network variables for the controller tag settings. Does something need to be reset to factory specs that I don't know about? Is this a problem caused by the previous program? By the way .. I can manually force those three internal variables true by going on line .. the linear motor powers up, homes and moves in a cyclic sine wave 50mm ..  So, I made the 3 variables "Global" , and verified they were in the CPU's variable list, and added some buttons to the HMI Page .. an' the buttons had no effect ... so far, the HMI cannot control this example program .. is that because of the Tag resolution error?  
  18. Hi ... Thanks again .. I did look there.  Nothing left.  and the "Transfer to Controller" button is greyed out... not available. Is it possible that when I synchronized this new project ... the new (empty: tag sets: 0/32 & Tags 0/256) didn't sync because the little check box window:   Do not transfer the EtherNet/IP connection settings ….  My transfer had that box “checked"   .. which would suggest the old settings, from the previous program might still be in there?
  19. Contacting Tsunagi Lab in Japan

    UPDATE:  Tsunagi Lab hasn't tested that drive .. I have acquired one... and so far,  it is working well with the NJ.. am about to try Streaming position data .. will let you know if it works.. To be continued.......
  20. UPDATE... The HMI is now working... not sure why (DUH) .. Looks like that problem wasn't related to the Tag Name Resolution Error ... which is still there... sigh.
  21. Omron NJ and EtherCAT LinMot Drive

    PS:   In other words ... "high performance" is not really required...  but some level of performance would be nice...
  22. Omron NJ and EtherCAT LinMot Drive

    Hi  MotionControl.CAT ... Thanks much for your info..  I have quite a love for LinMot drives, and when I discovered the NJ, I just had to find out if they would work well together. It looks like the E/IP port is useful for simple tag based applications using the LinMot linear motor.  The only reason I wanted to use the E/IP port for streaming position data... is because it was there, and I had an E/IP drive. (which is designed for streaming via E/IP)  You aren't the first to try and pound some sense into my desire to answer that initial NJ/LinMot/EIP streaming question.  But, In my defense, Rockwell (Allen Bradley) has managed to do it using some clever Function Block and the drive's EDS file.. (it's beyond my limited ability to grasp .. sadly, I'm quite green when it comes to this technology) I am aware of Tsunagi Labs .. and, it was suggested that I apply for an opinion from them.   However, I felt this E/IP thing didn't merit that level of attention by Omron.  I will continue to investigate the NJ's EtherCAT compatibility with the LinMot "DS402" drive  (C1250-DS-XC ..their model no.)     My use requirements are very reasonable, and not demanding in accuracy ... I'm just trying to make waves in a demonstration tank for science and educational purposes.  However, the waves are mathematically designed to model the real ocean. Your  input is much appreciated.
  23. Wow! .. where to start.  You are a wealth of info.   I tried to fill out a "form" from the Tsunagi Lab.  It was an Excel document that my MAC had a hard time with. (it does have Microsoft Office)      TsunagiProblem_CheckList_07172015.xlsx TsunagiRequestSheet_FY16.xlsx After thinking a bit about this, I may be asking too much by requesting help on this subject.   The obvious solution is to use the EtherCAT LinMot drive, Not the Ethernet/IP Drive.   I think going to Omron with such a request for solution to a very uncommon problem, is not justified.    In fact, LinMot was not happy that I was trying to do this; although, their tech support did try to help me (this thread contains some helpful references from them) At this point.. like you said: Yet... you, Tyler and a few on this forum seem to be an exception.   Sometimes, just the fact that it's different.... is an interest in itself.  It also helps if the solution doesn't take hours of research..        I've been reading up on what I can find in Omron's literature.  Also the "theories" that have come in from you, Tyler and Michael W.   All, have given me the inspiration to "explore" the possibilities.   I should design a simple Sysmac project, using only the NJ101-1000, the HMI and the LinMot E/IP drive .. nothing else.   In fact... I might remove the HMI,  and use E/IP I/O's if that would mean less clutter to the E/IP network. Use simulated streaming position data.. just the same small position incremented each cycle .. so the linear motor just moves out at a constant velocity, no velocity or acceleration (Position only) using virtual servo, ... cyclic tasks, that send the incremented position as a tag to the LinMot drive. I would appreciate suggestions on how to structure that program (Not the program itself..   I can see that much of the "structure" is in Inno's first reply above.  Might need some clues on the Task programming... but, I have some good references from Tyler .. enough to go for it.
  24.   Now that the NJ is doing a great job streaming position data to a G5 Servo motor, Thanks to Tyler Corbett, Innoaloe, Michael Walsh, Crossbow, Berti & many others ..   (Blue trace)           The next trick is to get the NJ to run the LinMot Ethernet/IP Drive on the NJ's E/IP port.     The NJ is already doing other things with the LinMot on that port... so it might be possible. How hard could it be..     just....      In order to talk to the LinMot, you have to use Command Modes, and parameters like:                                 Kinda easy to call for a typical position move.   But, How about the Streaming position move... Here's what LinMot offers for options in that area:             And here are the available definitions of those options:                      ...                      ...                                          There might be enough info here to make an educated guess.. ‘cept I’m not well educated… sigh!  (What’s NC Functionality, or Time Stamp or Configured Period Time?) ..methinks there are some limitations on the cycle period time .. could be as slow as 10ms .. but, that’s OK for making waves. And that's about it.. Any Nj experts out there understand the above options .. enough to make a recommendation ? Thanks much... Regards, Michael Lambert PS:   Below, recently discovered,  is from a single page (84/106) in the LinMot Motion Control SW manual (2014)  ( BTW:  NC is "Numerical Control" .. do you know what that means?)    "P(V)-Stream For masters with NC (Numerical Control) capabilities, the software supports cyclic streaming modes of the position and velocity, or position only.  The streaming has to be strictly cyclic in the period range 2ms to 5ms. This feature is supported with all fieldbus variants like Profibus DP, CAN Open1, POWERLINK, EtherCAT, (No mention of Ethernet/IP .... sniff!) Different modes are supported: In the first mode (Motion command: 030xh) the master only streams the position.     In the second mode (Motion command: 031xh) the master streams position and velocity, whenever possible use the PV-streaming mode, because the acceleration derivation is less sensitive to bus jitters than in the position only streaming mode. The third mode (Motion command: 032xh) is like the first mode, but for the derivation of the velocity and the acceleration a configured period time (UPID 14E6h) is taken, instead of the slave receive time stamp.  This minimizes the bad influence of the transmission jitter. The position setpoint generation in these modes is delayed 1.5 times the streaming cycle time, e.g. with 2ms streaming period time the delay is 3ms. In the P- streaming mode, it is possible that, depending on the cycle time, a quiet noisy motion is generated, this because of the twice derivation of the position signal to generate the acceleration value. In this case, it is recommended to set the position controller value “FF Acceleration” (UPID 0x13A0 and 0x13B4) to zero.   LinMot seems to recommend that the PV is the best mode for this use (4.3.39) ... :                                Possible Sysmac ST component: the trick is to send the above every 2ms over Ethernet/IP   soooooo ..Does the NJ have "Numerical Control"   ? Can this be done with Ethernet/IP using the NJ  ?   ...or would it be easier using just P-streaming mode .. "position only" I'm motivated to try with the E/IP ... because I only have an E/IP LinMot drive at the moment (can't afford the EtherCAT drive at $1200 yet) Streaming requires at least two command events, (example: 2 ms apart) in order for the LinMot to establish the "period", or "Time Stamp".  The position will be sent to the motor 1.5 periods later from Time 0, or at 3ms .. LinMot will expect another position at 4ms, and will send the 2nd position to the drive at 5ms from Time 0. ... etc.     That's the theory.                          
  25. Meanwhile: Tyler Corbett (an Omron Support Specialist)  commented: "If you link a EIP tag to a task in the NJ than we may be able to refresh every 5ms(fixed interval). A task in the NJ always executes at a fixed period and if it executes the task by the end of the period then you get a watchdog error. You would either have to off load code or extend the period. **The biggest issue looks like, would be the AB is using a custom function block to talk to the LinMot drive which has access to all of the parameters and actually can control/command the drive. We either need the Omron to LinMot custom block (if there is one) or find out the low level code inside that function block and how it works to create code to emulate what it is doing. It is sort of like Omron has this set up called eplc which makes a Ethernet IP connection from a NJ to an adept robot and to program the robot there are function blocks. Inside the function block is internal code that links the variables we make to the robot. We don't see behind the scenes of how it actually links to the adept robot via the normal function blocks. Also, If you lock a tag to a task then it may also be bogged down by system services (explained in page 56-64 of the tasks programming PDF attached) which are other pieces of data that get sent via EIP." It may be possible that the Tsunagi Lab, in Japan might help with a solution.  Tyler says they are a group in US and Japan, that tests third party connections with other vendors. I'll post any progress... to be continued.