Michael Walsh

MrPLC Admin
  • Content count

  • Joined

  • Last visited

Community Reputation

137 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

8653 profile views
  1. I would set different addresses for each of the different devices and then use the EC_ChangeEnableSetting Function block.  You can enable those that are present and disable those that are not. There are also status flags that start with _EC for instance, _EC_DisableSlavTbl is an array of bits that tell you which nodes are disabled.  
  2. Hi Michael,

    I am writing you regarding

    Easy to use Modbus RTU Master for CP1L CP1H CJ1 CJ2 CS1.

    For CJ2 + CP1W-CIF 11 is the communication possible?

    I do not see this in your example.

    Thank you!

  3. Sysmac Studio - Power Interruption

    Ok, I actually tested this in simulation mode this morning.  I had to modify this a little bit: The MC_SetPosition Function block needs to see the Off -> On transition, so I had to add the NC P_First_Run  contact.  Also, I hovered over the Reference type when I snagged this screen shot so that you could see what it was.  Good luck. 
  4. Sysmac Studio - Power Interruption

    The PositionSet contact is supposed to be a normally open contact in Rung 1 (corrected image below).  I made a mistake. Once that is true, then this is the case: Rung 1 will move the actual position into the SavedPosition register every scan after the position has been set to the axis.  So, when the power goes off, the position in the SavedPosition variable is the last value that was written prior to the power turning off.  When the power turns back on, it uses this position to set the position of the axis.  When the position has been set, the move instruction is enabled to prepare for the next power loss.    
  5. Sysmac Studio Improvement Request

    This is not what he means.  He means the ability to "comment" a particular coil, contact, Function or Function block.  This is a "comment" for the element and is not attached to the address associated with the element.
  6. Sysmac Studio - Power Interruption

    Well, it may not be exactly right (if the motor moves at all when power is off), but this should work (I did not test it, but think it will work): Make sure that SavedPosition is set to retain and PositionSet is not as highlighted in yellow above.  These variables can be local or global, I used local here.  the first time that you run this, the servo position will be set to 0.  Note that positional errors due to this code could cause the position to eventually be off by significant amounts if the motor moves with the power off (someone pushing it by hand, the motor coasting to a stop, etc.)  Make sure that this error in position does not cause a problem with your machine or with the people using the machine.
  7. Sysmac Studio - Power Interruption

    The solution is to replace the motor with one that has an absolute encoder.  Any option of trying to save the position in the NX1P2 is unreliable.  
  8. Rs232 PLC Settings

    No, you have your format wrong,  you show 8 data bits, No parity and 1 stop bit for your settings in your first post and specify 8 data bits, Even parity and 2 in your second post, so your settings in the PLC should be set to match and look like this:
  9. Internal function block variables

    Ok, then change the memory range that the function blocks will use.  To do this, go to the PLC pull down menu and choose the option shown below: Then setup how much H memory you want to use and where to start with each area. Note that there are two areas that use the H area by default.  You can use areas that don't affect H1420, or you can change the area to the DM area and avoid HR all together.  Just make sure not to interfere with any areas that you are using for something else and stay out of the D20000 and up range (unless you really are aware of the areas that the Special I/O modules and CPU Bus Units are using and know that you are not using those areas currently or in the future).  To be safe, if you have EM available, I might recommend that if you want to leave the H area.  Of course you will need to be able to download this at least once to make these changes take effect.  So, if no one in the field has CX-Programmer, this might not fix your issue.
  10. Internal function block variables

    Yes, that is what I was saying, choose a different address between H0 and H511 (rather than H1420).  Then set it to that address and it will not change.
  11. Internal function block variables

    In general, you should try to avoid this as it ruins the portability of a Function Block and you can only then have one instance of the FB.  But, I understand sometimes this is a desired setup, so here is the answer: You need to point the variable at H1420 and you use the AT field to do this.  When creating the variable (or after you have created it, you can edit it) choose the advanced button as shown below.  Next, check the AT box and assign an address to the variable.  It says it is limited to H0-H511 and I might recommend that you use that area as the higher addresses are used for non-AT FB variables, but I believe it will actually let you put H1420 in there (but choose something in H0 - H511  ).
  12. Ethercat recovery after power down

    Stay with EtherCAT.  You can add some "EtherCAT switches" (AKA Junction Slaves) to make your network a branching topology rather than a daisy chain topology. Omron offers the GX-JC03 and GX-JC06 to accomplish this. This is likely what you have: This is what I am suggesting: Without branching, when you power down a node in the middle of the network, all subsequent nodes lose communication.  This is not true in the branching setup, except for the nodes highlighted in yellow.  The yellow nodes will lose communications if the nodes between them and the Junction Slaves are powered off.  If you want complete immunity to this issue, connect one drive only to each of the output ports on the Junction Slaves.    
  13. Addressing Bit Inside an INT

    You can also do this with Omron's older non-tag based systems (W0 as an integer or W0.15 to access bit 15).  There are pluses and minuses to both styles.   In fact, you can also do this with Sysmac Studio.  You just have to assign addresses.   See below: First, define two tags, one that points at W0 and is an integer and one that points at W0.15 and is BOOL format: Then when you turn on the bit, it will also affect the INT: The result of -32768 is of course a signed integer, you can see the binary results if you change the display as shown below: If you are using an NX1P2 or NX102, there is an additional step to enable the W memory area first.
  14. NA5/Sysmac'

    When using Numeric "DataEdit" blocks is there a way of using variables for Max & Min values ?




  15. Drive ABB via eternet only in CX-Programmer

    Keep searching on the ABB site and if you cannot find the files you need, contact ABB.