Jump to content
OMRON Forums

Recommended Posts

Posted

Hi all

I need to know the exact unit for Ixx88 (Motor xx In-Position Number of Scans) because my UMAC have to raise the InPosition flag after the actuator is inside the In Position Band for 0.5 s.

 

I understand the Ixx88 frequency is function of the housekeeping... but is there a way to measure this frequency? Keep in mind that my PLCs do not have any fancy computation, meaning that the CPU load for each PLC is always the same.

 

Thanks

Gigi

  • Replies 4
  • Created
  • Last Reply

Top Posters In This Topic

Popular Days

Top Posters In This Topic

Posted

Background in position check period as you mentioned is dependent on the housekeeping period which can vary depending on the CPU load. Since CPU load is not constant (even a query from PC can affect the CPU load) this will not provide you with exact timing.

However, using I13 you can let the PMAC check for in-position in foreground and set a bit 13 of motor status word. However, this method does not support Ixx88 and you have to implement this code as an RTI code to check for Ixx88 consecutive cycles and set a custom flag for your process.

Posted

Background in position check period as you mentioned is dependent on the housekeeping period which can vary depending on the CPU load. Since CPU load is not constant (even a query from PC can affect the CPU load) this will not provide you with exact timing.

However, using I13 you can let the PMAC check for in-position in foreground and set a bit 13 of motor status word. However, this method does not support Ixx88 and you have to implement this code as an RTI code to check for Ixx88 consecutive cycles and set a custom flag for your process.

 

Thanks Sina

I understand the way it works I13, but I would prefer the use of Ixx88 instead of a higher load on servo-interrupt and a RTI to be written from scratches.

I would choose then to set the In Position with a not-so-exact timing, I would say 0.5 < t < 1 s.

 

Is there a way to have an idea of the housekeeping frequency?

 

thanks

gigi

Posted

I think we have a way of figuring this out using the "watchdog timer". The watchdog counter register (Y:$25) gets reset to I40 value at the end of each background cycle (or house keeping) and every Servo interrupt the counter is reduced by one until next house keeping occurs. The lowest value the watchdog counter ever reaches from a power up/reset is stored in X:$25 register.

 

We can either:

1. Take the average of Average(I40 - Y:$25) for a certain period and find out how many Servo cycles it takes for the CPU to go through a background cycle.

2. Assume the worst case scenario and use I40 - X:$25 to assume the longest background cycle.

 

I would suggest using the 1st method as you're trying to adjust a minimum Ixx88 required for your application.

Posted

I think we have a way of figuring this out using the "watchdog timer". The watchdog counter register (Y:$25) gets reset to I40 value at the end of each background cycle (or house keeping) and every Servo interrupt the counter is reduced by one until next house keeping occurs. The lowest value the watchdog counter ever reaches from a power up/reset is stored in X:$25 register.

 

We can either:

1. Take the average of Average(I40 - Y:$25) for a certain period and find out how many Servo cycles it takes for the CPU to go through a background cycle.

2. Assume the worst case scenario and use I40 - X:$25 to assume the longest background cycle.

 

I would suggest using the 1st method as you're trying to adjust a minimum Ixx88 required for your application.

 

this seems very intersting, thanks! tomorrow I will try to measure the cycle and see what I can get

 

ciao

gigi

Guest
This topic is now closed to further replies.

×
×
  • Create New...