Michael Walsh

MrPLC Admin
  • Content count

  • Joined

  • Last visited

Community Reputation

89 Excellent


About Michael Walsh

  • Rank
    Omron Expert
  • Birthday 07/22/73

Contact Methods

  • Website URL http://

Profile Information

  • Gender Male
  • Location Charlotte, NC
  • Country United States

Recent Profile Visitors

5960 profile views
  1. CJ2M-CPU32, Inventer MX2, SCU31 modbus rtu communication

    See sections 10 and 11 in the manual that is installed with CX-Protocol.  Found here:
  2. Access to program internal variables?

    It is very easy to convert it to a global variable and like Crossbow said, the definition of Global Variable is that any program can access it.  Just convert it to Global.
  3. D to A conversion from a function block

    Absolutely.  Lets say you were taking the analog signal to an NX-DA2603 which is a -10 to plus 10 signal with a range from 0 - 7999.  I believe that this means that 0 = -10 VDC, 3999 = 0 VDC and 7999 = 10 VDC.  Lets also say that CSine ranges from -100 to +100.  Then, you would simply write a bit of structured text to convert the from one to the other using the old slope-intercept equation.  For my example, it would look like this: Then, simulating, I get the values that would be expected: This could easily be turned into a function as well.  Of course you could calculate the slope and intercept using your calculator and then just put the constants in the structured text for each.
  4. Omron HostLink + Raspberry Pi

    @isac I have repaired the links...
  5. As Dick states above, it is a separate, manual process to download the DM values to the PLC, so it is not coming from your download.  If there is a memory card in the PLC, it is possible that it is coming from the card, but you would expect that it would happen every time.  Is it possible that it is coming from either of your EtherNet/IP connections? 
  6. Don't use the repeat function.  It is a loop and will do it all in one scan.  Just use an if then statement like this: This will add 0.0001 to Num each primary period.  If it is too fast, make 0.0001 smaller.  If it is too slow, make 0.0001 larger. You could also not have this execute every scan and use a timer to trigger when it adds the amount if you wish for the step to be 0.0001, but need it to go slower.  When ready to have this execute again, simply move a Real#0.0 into NUM.

    Does your program compile?  As far as I know, the valid range of W addresses is W0 - W99 for the CP1E. I used W0 and it worked just fine in simulation.
  8. CXP File save as 9.0

    I was able to open it fine with v9.6.  I saved it and have attached it.  If you still cannot open it, I would say that you have an issue with your installation. A4017_Grupo Arnaud_USA_2016_10_21opened9_6.cxp
  9. Cx! How to add a value to a register.

    Go here:   Look up the +, -, * and / instructions.....  
  10. Omron & Balluff

    @Bruce W I fixed the link for you above...download away.....
  11. Execute function/program once when PLC boots up

    At first, I thought that there was no way to have a bit act differently when the machine is powered down vs when the PLC is switched to program and then back to Mon/Run.  However, after some thinking, I came up with this:   This is the only way that I can think of to do this.  In the main task, add this code: This will turn the bit on when the PLC scans for the first time.  Make sure to use a retentive bit like H0.00 as shown.  Then add the Power Failure Task as shown below: In the Power Failure Task, add this code:   If I am thinking correctly, the top rung will set the bit on and it will stay on until the power is turned off on the PLC.  Then the last rung will run when power is turned off and this will turn off H0.00.  Then when power is turned back on, the bit will be turned back on by the First Scan flag.  Switching from Run/Mon to program and back will not turn off H0.00.  Let me know if it works.  It should....   Note that you have to enable the Power Off interrupt and set a power off detection time on the Timings tab of the PLC settings. You may also want to change the normally open first scan flag (first rung above) to normally closed.  Then it will provide a leading edge signal on H0.00.
  12. It has to be an integer: Try this though: i is an integer and Angle is a REAL.  You can then use Angle in the loop as desired.
  13. Move to NJ series worth it?

    If you stick with logical naming conventions, the tag methodology seems faster to me.  Of course, you could use Symbols in CXP in much the same fashion and I am a "middle of the road" -timer. 
  14. Omnuc U software

    Oh, sorry.  You are using CX-Motion and it is an MC221.  Got it now.  Ok. Your program did not download because it has errors.  You have not used any G-Code.  It should look more like this:   N000 P001 X N001 G10 N002 G00 X100 N003 G79   G10 is pass mode G00 is a move G79 is end instruction
  15. Omnuc U software

    This does not look like code for an NC413 either (CX-Position).  The NC413 Memory programming has tables associated with the positions and the moves.  It looks like this: What software do you have open?