News:

  • October 12, 2024, 03:18:37 PM

Login with username, password and session length

Author Topic: H0-CTRIO Dynamic Poistioning, Open Loop, Position?  (Read 5264 times)

JoeW

  • Jr. Member
  • **
  • Posts: 12
H0-CTRIO Dynamic Poistioning, Open Loop, Position?
« on: September 27, 2013, 02:06:13 PM »
I have an HO-CTRIO plugged into a DL06 PLC controlling a Stepper motor with no encoder(open loop).

My needs are (I thought) fairly simple.
     Run at 100pps indefinitely
     When an operator presses a button/bit I need to start counting how many pulses are sent without any change in velocity.
     after exactly 2000pulses(360degrees) I need to trigger a bit to handle the remainder of the system this is connected to.
     Motion can stop in any fashion convenient. standard decel is fine or immediate stop is fine as well. The minimal weight of the part and lack of concern about absolute positioning makes this irrelevant.

My questions would be is there a specific V-memory address that contains the current position counter which I can monitor?

Again, absolute positioning is of no concern, from the trigger point until a return signal is sent is very important.
I know I can calculate the time from start to stop however, the overall rotation angle is likely to change from time to time by someone who would not be able to make the calculations.

Any suggestions would be appreciated.
Thanks,

JoeW

  • Jr. Member
  • **
  • Posts: 12
Re: H0-CTRIO Dynamic Poistioning, Open Loop, Position?
« Reply #1 on: September 28, 2013, 07:57:30 AM »
To add some more detail to how I'm currently attempting to do this. This is mostly built off of example given in the manual on page 8-4.

Setting Mode 10 (Dynamic Positioning V2040)
Loading file #1 into V2041. This file is configured for Dynamic Positioning.

Set V2056.7 Process  command
Set V2056.0 Enable output

Set my target position to ffffffff via V2030 so it will run until told otherwise.
V2056.7 Process Command

Set V2056.1 Go to position.

Up until here works very well. Speed is maintained and it will run for a ever.
Unfortunately things don't go as smoothly below

In order to reset to target position to 2000 (V2030) I have to drop the enable bit which slows the motor.

I've been flashing off the process bit and enable bit, loading the targer position bit then re-enabling the process, then enable bits.
This does pretty similar to what I would expect however locking this down for a single program cycle does not allow the target position to update and timing this long enough to allow the update allows to motion to stop before i can restart. This would defeat the intent of having the motor up to speed in the first place.

Initially I was attempting to keep track of position and perform simple math with conditional formats, I'm thinking the above would likely be more stable if I can make it work.

Am I going about this the wrong way?
Thanks,

b_carlton

  • Internal Dev
  • Hero Member
  • ****
  • Posts: 606
    • thePLCguy
Re: H0-CTRIO Dynamic Poistioning, Open Loop, Position?
« Reply #2 on: September 28, 2013, 10:01:20 AM »
Your application sounds more like a 'Home Search' routine. One of the options provides for continuing for a certain number of counts after an input - 'Limit' in the description' - is reached.
An output is a PLC's way of getting its inputs to change.

BobO

  • Host Moderator
  • Hero Member
  • *****
  • Posts: 6040
  • Yes Pinky, Do-more will control the world!
Re: H0-CTRIO Dynamic Poistioning, Open Loop, Position?
« Reply #3 on: September 28, 2013, 10:04:02 AM »
...or the CTRIO2's Trap Limit profile. Sad you're not using Do-more...this app would be super easy.
"It has recently come to our attention that users spend 95% of their time using 5% of the available features. That might be relevant." -BobO

JoeW

  • Jr. Member
  • **
  • Posts: 12
Re: H0-CTRIO Dynamic Poistioning, Open Loop, Position?
« Reply #4 on: September 28, 2013, 10:46:38 AM »
I've been wrestling with Mode 20, infinite run followed immediately with a run to position.  Unfortunately this still has too much delay required to reload the values, process the command then retrigger the enable..

I'll try the run to home approach as I think I've beaten up the dynamic positioning approach pretty bad.

As for the Do-More/CTRIO2 combo, I'm realizing now that this would have been well worth it simply in the hours I've blown chasing documentation and work-arounds alone. Unfortunately I've got a customer waiting for this project on Tuesday, Thus still being here on Saturday.  Next time.

Thanks for the guidance, I'll try it out and report back.

JoeW

  • Jr. Member
  • **
  • Posts: 12
Re: H0-CTRIO Dynamic Poistioning, Open Loop, Position?
« Reply #5 on: September 28, 2013, 11:31:02 AM »
I can't believe it was that simple!  Thanks, I've scrapped several pages of ladder logic using the dynamic positioning approach for about 5 lines and a single jumper wire(limit).

Life is good again,
Thanks b_carlton!
 :)

JoeW

  • Jr. Member
  • **
  • Posts: 12
Re: H0-CTRIO Dynamic Poistioning, Open Loop, Position?
« Reply #6 on: September 28, 2013, 12:47:17 PM »
Okay,
      I've got a new question.  How can I manually edit the counts after limit feature via the PLC?

Using mode 10 to load the limit profile works perfectly if I never needed a user to modify the rotation, which I do.  Is there a way to edit this table online without using workbench and a PC?  I need this parameter accessible via software for on-site tuning, this does not need to be updated regularly or during part cycles, just occasional setups. I'm assuming it would be via a RD/WT command but cannot seem to locate where this would be stored.

Using mode 21 seems to only run the seek portion, I have not found any settings in the manual that allow injecting a run to limit then continue xxx counts. Did I miss this one?

Thanks,


JoeW

  • Jr. Member
  • **
  • Posts: 12
Re: H0-CTRIO Dynamic Poistioning, Open Loop, Position?
« Reply #7 on: September 30, 2013, 11:39:13 AM »
Loading a Home Search profile with the Limit and count(mode 10) file number 3.  This works well for my application except I need the ability to modify the settings of this profile at run-time without a computer connected.


I would expect the parameter entry number to follow this offset:
     Offset: name = current value
     0: Frequency 1 = 1000Hz
     1: Frequency 2 = 1000Hz (no change on purpose)
     2: Limit 1 = Ch1C
     3: Count = 2000 (pulses)
     4: Event = Rising Edge
I need to modify parameters 0,1 and 3 (as shown above)

So I've been working with CTREDRL in an attempt to modify the pulse frequency and counts after limit has been reached. I have not been able to find any direct references as to modifying this type of profile yet but have been poking at it.
CTRIO IB-1000 is configured as:
CTRIO# K0
Slot Local K2
Workspace = V400
Inputs = V2000-V2025
Outputs = V2030-V2061
This part is confirmed functional from previous test programs with this configuration to load profiles.

CTREDRL IB-1002
CTRIO# = K0
Output# = K0 (matches configuration)
Table# = K3  (modify profile table entry 3)
Entry# = K3  (aiming for Count being to easiest to see if it's working)
Entry Type = K5 (also tried K0 SET)
Pulse Time = K0 (shouldn't be needed here?)
Preset Count = K100 (aiming for a much shorter revolution past the home limit switch to be very visible)
Workspace = V400 (empty memory space / Default)
Success = C103 (monitoring bit available)
Error = C105


Using this Ibox I currently have not gotten any positively identifiable response (even sporatic errors). I'm testing in a unique program to avoid conflicts with my main program.   Am I missing something?  Can anybody offer an example of using this type of homing profile?
Thanks,