BPM Loop controlled by time

I'm working in a scenario mapping n:1 message. In my case i need receive a number(100) of message until process mapping transformation will be executed. But i need too the loop that receive message and save in a multiline container break when one hour past. How can I control the loop with a timer? How can I use time or date functions to assign a value to a simple data?.
Thanks a lot.

Hi Carlos,
Welcome to the SDN Forums!
You can you possibly have a fork with two branches that needs at least one branch to complete. Have your loop to collect the messages in one branch and the Wait step in the other. Process should continue when one of them is complete - that is 100 messages are collected or 1 hour has elapsed. I had a very brief overview of BPM in XI and do not exactly remember how the start time for the wait step is determined.

Similar Messages

  • Stepper motor closed loop control using 7344

    I have some question about the closed loop control of stepper motor using 7344. From the NI website I got that closed loop steppers work differently from closed loop servos. Instead of adjusting the output on each PID iteration like a servo system, closed loop steppers will do a pull-in move at the end of a move to adjust for any difference between the target position and the encoder feedback. By default, it will attempt the pull-in move three times.
    Now for example I got five points: (0,0) (10,20) (30 40) ( 31 60) (50 65). The request time interval I set as 10ms. This mean that in the first 10ms, the machine should move from (0 0) to (10 20). But for some reasons the machine can not move to (10, 20), it moves to (8,16) and the first 10ms passed. In the second 10ms, how it move? Move from (8 16) to (30 40), If like this, the following error will accumulated. In practise, it is not accumulated. Is there anyone can explain something about the closed loop control of stepp motor? Thanks a lot!

    Requested Interval is additional data for the Position buffer type. The Position buffer type requires a Requested Interval parameter, and indicates the time between contouring data points in milliseconds. For all other buffer types, the Requested Interval parameter is ignored.
    The controller will use the closest value it can that is greater than or equal to the interval value you requested. Your time interval must be an even multiple of the PID rate.
    For example, given a PID rate of 250 ms, a time interval of 11.2 ms between points is physically impossible, so a call to configure buffer with an interval of 11.2 causes the  buffer to actually be configured for 11.25 ms, since 11.25 is the nearest possible interval greater than 11.2. The following table shows valid intervals for each PID rate.
    My question is like this. For example I got five points: (0,0) (10,20) (30 40) ( 31 60) (50 65). The request time interval I set as 10ms. This mean that in the first 10ms, the machine should move from (0 0) to (10 20).  If it is impossible for the machine to move from (0 0) to (10 20), there are two ways to solve this problem. First is the time interval is 10ms and assume it move to (8 16) within 10ms and take (8 16) as the start point and (30 40) as the end point of the second move. Second is extend the time interval, assume it takes 14ms to move from (0 0) to (10 20). After 14ms, the (10 20) is the new start point for the second move. I think it works as the second ways.If not, the following error will accumulated.  Is there anyone can explain something about the closed loop control of stepp motor in detail? Thanks a lot!

  • Closed loop control of step motors possible with 7344?

    Hi All
    I have been looking around here for a while for an answer to this question.
    For me, a closed loop control system is correcting for following errors all the time, also when the move is complete.
    If the load on a system changes, there will often be a need for compensation in order to keep the position right. Then you need a closed loop control system.
    I have made a system using DC motors with a 7342 controller. We are in the process og getting a new similar system, where the manufacturer chosed stepmotors in the believe that it can be used in closed loop.
    Is it really true that the NI version of closed loop is only performing a what you call a "pull-in" at the end of the move in order to correct for lost steps or flexibility of the connection between motor and object/encoder?
    I would call this "backlash compensation" or something like that.
    Why dont you make a real closed loop option. The control voltage from your servo motor control, could be fed into a voltage-frequency converter with a matchin sign signal.
    This shouldn't be too complicated to accomplish.
    /b

    You are right. NI motion control boards don't apply a control algorithm
    during moves when configured in closed loop stepper mode. In this mode
    the board monitors the following error during the move and generates an
    error when the following error limit is exceeded and they start the
    pull-in moves at the end of the move if necessary.
    If you really want to do PID control with stepper motors you still
    could connect an external V/f converter to the DAC outputs of the board
    and control the axes like DC motor axes. Some vendors implement this
    feature on their board but NI has decided not to do that as we don't
    think that this approach provides a good solution. Here are some reasons:
    The most important issue is the fact that you could easily exceed
    the maximum rate of change of the motor frequency in the case that the
    following error increases during the move. For a DC motor this would mean that the
    voltage of the controller increases to compensate for this error and
    the motor will follow - probably with some delay, but it will follow. For
    the stepper this could mean that the acceleration becomes so high
    that the motor stops immediately as it can't follow with a delay like a DC motor. What
    should the controller do then? Restart the move automatically? Generate
    an error? There is a big chance that you end up with a system moving in a stop and go mode.
    The second issue is related to the control algorithm itself. The transfer function of a stepper motor is not really linear so it will be quite hard to find good tuning parameters. A DC motor can be tuned by analyzing the step response and the Bode plot. For the reasons that I have described in 1.) this won't work for a stepper so how should you tune it?
    I have talked to some  motion control engineers who have tried to control steppers with a PID algorithm and they all agree that this is a real pain and it's not recommended.
    So if your system requirements involve online following error compensation I strongly recommend using a DC motor.
    Best regards,
    Jochen Klier
    National Instruments Germany

  • How to make the exchange of data between 2 while loop in real time

    hello
    I have 2 while loop
    the 1st while loop includes the data acquisition program
    the 2nd while loop includes the control program
    my question is how to make the exchange of data between 2 while loop in real time
    I tried with the local variable and direct wiring between the 2 while loop
    it does not work (there is a delay)
    Solved!
    Go to Solution.

    Bilalus,
    Queues are only good to transfer data if your application isn't deterministic. Since you are using Real Time, I am assuming that your application requires determinism. If you are using Timed Loops and you use queues to transfer data between your loops, you are losing determinism. In this case, you need to use the RT FIFO functions. 
    Warm Regards,
    William Fernandez
    Applications Engineering
    National Instruments

  • Dual loop control for positioning system.-- motion ocntrol

    I am currently doing a dual loop control for a positioning system,  i use the tachometer to read the velocity and the position encoder about the position of the platform. 
    the problem i am currently encounter is that i am not sure weather the computer have the PID toolkit, because i can not find them under the control design and simulation module.  so i did a PID  use the basic labview functions, related information is in the attached documents.
    i am not sure about the dt part, did the labview have this kind of function like to calculate the simpling time??
    do i have to install the labview real_time potion? i am right using the labview 8.5
    another question is that, how i am going to let the system remember the position instead of return to 0 every time i  restarted the program? otherwise is there any other way that i can command the motor to move to the target position which is initially defined? 
    the last question is that that is it possible for me to generate a profile regarding the current and the desired position? to set a maximum velocity and acceleration.
    i do not have a motion controller, so i did not install the  motion and version module. 
    can some one suggest me a way to do this?
    Solved!
    Go to Solution.

    attached is the files.
    Attachments:
    Integral.vi ‏8 KB
    Dt.vi ‏7 KB
    A CLOSED-LOOP TEMPERATURE CONTROL SYSTEM.pdf ‏886 KB

  • Can we have a for loop/ the loop control construct in an etext template?

    Hi All,
    Can we have a loop control construct in etext templates?
    I have to print a remittance advice of only 11 invoices per page only. How can I do this?
    Your help in this regard is really appreciated.
    Rgds,
    Kiran Panditi

    Hi Ravi,
    Do you use SharePoint Designer 2007?
    Have you tried to use sequence approval workflow with participants in serial order?
    http://office.microsoft.com/en-001/sharepoint-designer-help/understand-approval-workflows-in-sharepoint-2010-HA101857172.aspx
    If you use SharePoint Designer 2013, there is an "loop" operation available you can take a look.
    http://prasadtechtactics.blogspot.in/2012/07/sharepoint-designer-2013-workflows-part_24.html
    Thanks
    Daniel Yang
    TechNet Community Support

  • BPM Loop in PI  7.1

    I have an scenerio where I need to traverse through an xml file , and for each node of XML I need to loop with certain operation in BPM .
    e.g  
    xml as per the XSD --> Loop through each node --> with in each loop BPM will call a different webservice to get a confirmation depending on which it will insert some data in db.
    Will it be possible through BPM loop or there is some other work around. Please help
    Edited by: Riju Adhikary on Sep 18, 2009 7:09 AM

    Post this in the XI forum.. THis is for NW BPM not CCBPM

  • Controlling Maximum Time in an application

    Controlling Maximum Time in an application -->> I do not understand why the post and answers were removed. Please help or send email on what I need to do as I am not an experienced user. (I looked under "My Questions", but it says that i do not have the right permissions to read.)
    Administration » * Posts Removed by Hosts, Nov 4, 2006 4:01 PM, Replies: 4
    I want to limit how much my son plays his computer game. Is there a supervisor type of application with a time limit that allows (under parent password control) the use of an application?
    Thank you. Carlos.
    iMac Mac OS X (10.4.8) Re-post, need clarification

    Carlos,
    The parental controls built into Mac OS X 10.4 can only restrict your child's account to certain applications - not enforce a time limit on that specific game or application.
    If the basics of parental control are not up to what you want - you might look to a third party product such as http://www.lumacode.com/macminder/

  • Problem with BPM loop end condition

    Hi,
    I'm working with PI 7.1 in a BPM process which have a loop. I cant stop this loop in anyway, even, I have put a COUNTER != COUNTER as condition.
    Can someone help me with this issue?
    Regards,
    Alberto Pla.

    The BPM loops are while loop, so it will execute indefinitely if the condition given is true. The condition editor what we have in the BPM is not flexible. Can you just try the drag and drop facility available in the condition editor rather than writing on our own. it should look like this COUNTER!=COUNTER  without any spaces in between.

  • How to stop a while loop after certain time using Elapsed time vi

    how to stop a while loop after certain time using Elapsed time vi.

    Hi Frankie,
    Just place the Elapsed Time VI inside the WHILE loop, and wire the 'Time Has Elapsed' output to the conditional terminal in the lower right corner (which should be set to 'stop if true' by default).
    In the future, please post your LabVIEW questions to the LabVIEW Forum.  You have a much better chance of getting your questions answered sooner, and those answers can then help others who are searching the LabVIEW forums.  Thanks!
    Justin M
    National Instruments

  • I always have to hit Control + 4 times to make all pages large enough to read and want to lock this size in on startup.

    Every time that I bring up FF on my 14" laptop, the page display is too small to read easily. I can go to (View) and "zoom" 4 times or hit (Control +) 4 times to give me a good sized page. I would rather have a (Option) choice that would save my personal setting for normal screen zoom for future uses of FireFox.

    The Firefox Page Zoom feature does a domain by domain level of saving the users preferred zoom level settings, there is no default Page Zoom level setting in Firefox.
    Try the Default FullZoom Level extension: <br />
    https://addons.mozilla.org/en-US/firefox/addon/6965
    Or the NoSquint extension: <br />
    https://addons.mozilla.org/en-US/firefox/addon/2592/

  • I have a 17" computer, and I'dlike to use the entire screen to view, but in order to do so, I have to press Control + several times at each site.

    I have a 17" computer, and I'dlike to use the entire screen to view, but in order to do so, I have to press Control + several times at each site. I don't want to use "full screen."
    Does anyone know how to set a default to maximize the screen? For some reason, the screen appears even smaller than my old 15" computer.

    Yes, it's a hassle to zoom every single site manually. You can "zoom" all sites using this add-on: [https://addons.mozilla.org/en-US/firefox/addon/2592/ NoSquint]. After setting your Global zoom level, you can still fine-tune the zoom on individual sites.
    After installing NoSquint, click the % on the Add-on Bar to call up site preferences, then click the Global Settings button, then the Zooming tab.
    If you don't have the Add-on Bar displayed, you can right-click the new tab button ("+") or a blank area of the tab bar to the right of it and choose Add-on Bar from the shortcut menu.
    You can experiment with sizes larger than 125%, but I wouldn't go much higher than 150% unless you have a large high-resolution monitor.
    If there are particular sites that still present a problem, feel free to post their URLs.

  • Pause and restart while loop after defined time

    Hello,
    What I need is to find a way to run a while loop that is acquiring and analysing a movie, to pause this while loop for a time I specify, and re-run it after that time has passed.
    I'm attaching a picture of the relevant parts of my VI. In the case structure of the "true" or "false", the program is checking, online, if the eye (my camera is focusing on the eye) is open above some threshold and for a certain duration of time. When "condition to start" is met, two things happen: one, the case structure changes to "false" and waits for some time; second, the loop of my state machine is triggered. Problem is, because I'm not really pausing my while loop (it's still running even when it's the "false" case), my state machine runs really slowly - for example, I have a part of video acquisition in my state machine, and saving the frames to avi takes forever. 
    Does anyone have any idea of how I could stop the while loop for x time?
    Thanks in advance!
    Attachments:
    help_pauseWhileLoop.png ‏112 KB

    Hi,
    I'm attaching (hopefully) better pics, if you still can't see let me know and I'll attach the code. About the frame saving and acquistion, I'm already doing that in a separate loop - you can't see my entire code in the pics, but what I have is a state machine that works as a producer loop and then a consumer loop, where video acquisition is happening. Now I'm working on a third loop (the one in the picture), that starts before the others and where I don't even want to save the movies - I just want it to check, online, if the condition is met (e g, the eye is open for a specified time) and if so, start the state machine and stop running, until the state machine has finished running. Then do the same, after waiting a specified time. I know that the problem is that the while loop keeps running after triggering the state machine, because if I remove that part and trigger it manually, the VI runs just fine and really fast. So how can I run, stop and restart the while loop?
    Attachments:
    help_pauseWhileLoop1.png ‏56 KB
    help_pauseWhileLoop2.png ‏32 KB

  • Closed loop control of DC motor drive using PCI 6251

    Hi
    i am using NI PCI 6251 for closed loop control of dc drive.(shunt motor,220v, 0.5HP, 2.5A rated, 1500RPM)
    the dc motor is fed from a bidirectional dc-dc converter. this converter works in boost mode(forword motoring) and buck mode(braking mode/battery charging)
    the converter is built using mitsubishi IGBT module. at low voltage side of the converter a battery bank of 48V is connected and high voltage side the motor is connected.
    An IR sensor is developed to measure the speed of the motor and a hall current sensor is used to sense the converter current.
    in the control part i have an inner current control loop(PWM controller) and a outer speed control loop.both controllers are PI controller. To measure the speed i have used counter of the DAQ assistant, then frequency. then this frequency is converted to RPM using labview.after giving the speed and current signals  to the controllers , then i started  tunning the PI gain, but at the starting the duty cycles was 100%, so the IGBT got damaged immediately. now how to tune the controllers during the closed loop operation.  the switching frequency of the converter is 20KHz.   
    can any body suggest me how to run the dc drive in closed loop ?
    thanking you.

    Hi Premenanda
    The freq data receiverd from the daq assistant has the units of Hz, or in terms of motor speed, rps (rotations per second). I can see that you are trying to convert that to rpm (rotation per minute). which can be done by dividing the rps speed by 60. Instead, you are multiplying it by 60 and also comparing with 2000. the resultant multiplied value is displayed in your program only if it is smaller than 2000.which is causing the problem here.( as seen in file 'original code.png)
    I have attached a file named 'modified code.png' that shows how the conversion from rps to rpm is done. Please do the required changes in your code and let me know if it works.
    Attachments:
    modified code.png ‏18 KB
    Original code.png ‏15 KB

  • Creating a simple closed loop control

    Hi everyone,
    I need a bit of help creating a (very) simple closed loop control.
    Note: I am using 3 Measurement Computing boards: one USB-2416, and two USB-TC's. Since Measurement Computing has their own driver (called ULx), it might be a bit more difficult to understand than the NI drivers, but keep in mind ULx is the equivalent to DAQmx.
    I need to be able output a 0 or 1 binary value based on measurements from 4 voltage input channels compared to constants. Ie. if voltage measurement < 3.5 (constant), send a boolean value (see a, b, c, d in attached photo) which in turn gets sent to the ULx Write VI, and that outputs the binary value of 0 or 1. The problem I've run into is that I need to "compare" single chanels from different boards, which gives me single boolean values for each channel. The ULx Write VI only accepts boolean arrays. Is there a way (and there probably is, I just haven't been able to find it) of arranging these lone boolean values into a boolean array?
    (see attached file for what I have so far)
    PS. I am a COMPLETE rookie, only been using LV for a week or so, so please explain everything as if I have no clue what's going on.
    Thanks in advance!
    Solved!
    Go to Solution.

    Hi,
    the attached example I've made should demonstrate what you need to do.
    Some things to think about:
    1. It seems that the ULx vis return arrays of signals. If so you can select signals with "index array" as done in my example. That consumes less space and does not change the type of the signals to variant.
    2. If you compare the signals to your constants you will receive boolean arrays because every element of the measured signal is compared to the constant (see my example). You may then decide how to process that info - another hooray for signals :-)
    Regards
    Florian
    Attachments:
    Example01.vi ‏24 KB

Maybe you are looking for