Michael Walsh

MrPLC Admin
  • Content count

    1801
  • Joined

  • Last visited

Everything posted by Michael Walsh

  1. Timer modification from HMI

    You have the data type LINT for In and it needs to be of type TIME. From the TimeToNanoSec function help file:
  2. CX-Programmer will not open

    Do you sometimes use multiple monitors?  I have seen other applications be on the other monitor sometimes even when there is no monitor connected.
  3. MOTOR REPLACEMENT DETECTED ERROR (95.01) ON 1S SERVO

    95.01 is motor non-conformity.  It that is actually the fault that you have, it means that you are not using the correct motor and drive combination.  If the error is actually a 95.05, then you need to perform the motor setup and absolute encoder setup.This needs to be done with software.  
  4. Sysmac Studio Improvement Request

    You mean like this: Forced Refreshing FALSE:   Forced Refreshing TRUE:  
  5. Sysmac Studio NA5 System Variables

    Please share your answer for others to see in the future.  Thanks!
  6. ID231 and OD232 front connector

      The ___ in the cable part umber is length.  050 = 0.5m, 100 = 1m, 200 = 2m, etc.
  7. Analog range

    The manual indicates it would be D in the chart, but you are correct, the example incorrectly says that 1101 is B hex: B would be 1011.
  8. Analog range

    Should be #80DD.  Did you turn the power off to the PLC and then back on with a first scan instruction to MOV #80DD into both output words?  It only looks at the output words for settings for the input words on the first scan.  So, if you powered up with #80BB in each word and only changed the value to #80DD without changing the code and cycling power, then the input would be set to 0-5VDC which would operate as you are saying....
  9. Time display formatting question

    It is a bit convoluted, but you can do this: Ultimately, you want to have the time in a DT Struct variable and then you can used ElapsedDTStruct.Hour,  ElapsedDTStruct.Min and  ElapsedDTStruct.Sec as 3 individual displays on your screen.  The code above does what you need.  Of course you need to ignore the Year, Month, Day fields.  
  10. Using PTO's to control multiple stepper motors?

    Yes, I noted my misunderstanding above.  
  11. Using PTO's to control multiple stepper motors?

    Ah, I did not think that he meant switching the pulse output over to a different motor using a relay (although now rereading the post, this is rather apparent).  That would work if he did not need to move them all at once.  Motors 1-4 could all be moved into position, then switch 3 relays and move motors 5-7.  This makes more sense.  I did not interpret the first question correctly.  I thought Oliver wanted to somehow piggy back a relay on one of the pulse output signals.....
  12. Using PTO's to control multiple stepper motors?

    You cannot use relays for high speed pulse outputs.  They not even close to fast enough and will not last very long as the mechanical life of a relay is short.  To be able to independently control 7 steppers you will need 7 pulse outputs.  
  13. Monitoring a register

    Note:  swap the order of the two rungs above.  Have the rung with the = instruction and timer be first and have the rung with the <> and MOV instruction be second.  It will not reset properly if you have them in the order that I have them above.  
  14. Monitoring a register

    Sure, something like this should work: If D100 = D101 for 1.0s or more, the link severed bit turns on.  D100 is the value to be monitored and D101 is the last value that D100 changed to.  Of course you can change the set point of the timer to be something longer than &10 (1.0s).  
  15. CP1E power off retained address value

    Buy a PLC that has a battery. CP1E-N processors can use a battery for just a little more money.  The program converts easily in seconds.
  16. CP1E power off retained address value

    You could use a Holding Relay (H bit) if the power is off for less than 50 hours (see below). If it is off for longer than 50 hours, the value will not be retained.
  17. NX Safety CPU & 1S Servo STO

    Are you wiring the outputs from one of your safety output modules to the 1S STO input, or are you trying to use FSoE (Fail Safe over EtherCAT) network signals?  
  18. CX-Supervisor - NX1P2 communication

    Good point @chelton.  I had an NJ project open and just typed up my sample variables really quickly.  It did not even trigger the reminder to turn them on.  
  19. CX-Supervisor - NX1P2 communication

    Yes.  You just need to assign addresses to the variables that you want to access from CX-Supervisor. To do this, go to the Global Variable table and assign addresses.  I have shown three examples below: Make sure that you leave the appropriate spacing if you use data types that are two or more words long.  For instance if you have a REAL number (2 words - 32 bits) assigned to D500, you cannot assign another variable to D501 as the REAL variable uses two consecutive channels.  Sysmac Studio will let you do this (as shown below) but it won't work properly as you are trying to write two different variables to D501.  
  20. CJ2M ETN21 Modbus TCP/IP Server

    Actually, Etherway (follow up to Multiway) would be better: https://www.support-omron.fr/details/logiciel.php?id=2017-07-28%20-%2015-34-21%20-%20636541960
  21. CJ2M ETN21 Modbus TCP/IP Server

    I would recommend Multiway.  It was developed by an Omron Engineer.  You can find it here: https://www.support-omron.fr/details/logiciel.php?id=2017-07-28%20-%2015-42-06%20-%202107046460
  22. CJ2M ETN21 Modbus TCP/IP Server

    It appears that 192.168.10.1 and 192.168.20.1 are both referring to the same PLC.  192.168.10.1 is the IP Address associated with the port that is built into the CPU and 192.168.20.1 is the IP Address associated with the CJ1W-ETN21 module that is plugged into that PLC.  So, there is no router and therefore no issue with default gateway.   It is very difficult to assist without the code however.  @Ianpatel
  23. CQM1H-SCB41 TO 3G3MV

    @Irvly This thread is 16 years old.  I have tagged @Yair to give you a better chance of getting a response.
  24. Function Block addressing

    The idea of function blocks is to make them completely portable.  Trying to use the address inside function blocks completely defeats that purpose.  If you need to use a variable in the function block, bring it outside (output or input functionality) the function block and tie it to addresses that way.  By design, you should not care what addresses the inside of the function block is using.  I am afraid that there is not really an answer for your problem.   In answer to this question: My understanding is that CX assign's variable addresses in Function Blocks and we have no control over this. Bit if I only added variables to the Global symbol table, why are the FB addresses affected?? Did you assign addresses to the global variable table that fall within the memory areas used for FB memory?  If so, this could definitely impact the assignment.  You should avoid using the FB memory areas completely.    
  25. That is a function of the ESI file provided by Yaskawa.   They could have provided a default mapping that was more useful.  For example, here is Omron's MX2 drive's default: It has the command word and a frequency reference as outputs and a status word and frequency monitor as inputs.  So you can just assign variables and then issue a run command with a spreed ref and monitor the speed and status.