Rockwell-automation 2098-IPD-xxx Ultra5000 C Programming using the Mot Uživatelský manuál Strana 23

  • Stažení
  • Přidat do mých příruček
  • Tisk
  • Strana
    / 114
  • Tabulka s obsahem
  • KNIHY
  • Hodnocené. / 5. Na základě hodnocení zákazníků
Zobrazit stránku 22
Publication 2098-PM001E-EN-P — July 2002
Programming Motion Control in C 1-11
User Defined Functions
A function provides a convenient way to encapsulate a sequence of
motion commands and computations.
Example 3 - Nested Functions in a Motion Program
This program shows the function insert and the main program to
exercise it. In this example you see the whole structure at once.
#include <motion.h>
#define INSERTACCDEC 20000 /* counts/second**2 */
#define INSERTVEL 10000 /* counts/second */
#define INSERTDIST 8000 /* counts */
#define CONTINUE 16 /* Input that determines
program continuation
*/
#define INSERT 1 /* Input that starts the
insertion move */
#define INMOTION 1 /* Output that is set
while move is in
progress */
long partcount = 0; /* Initialize partcount
variable to 0 */
long insert(long distance, long velocity, long accdec);
/* This program continue cycling through the while loop
as long as input 16 is on and it has not completed 10 insertion
cycles. Each loop through, the state of input 1 is evaluated
and, if it is on, the insert function is executed. */
int main (void)
{
InitMotionLibrary();
AxisEnable();
/* Continue operating while Input 16 is active and partcount
has not reached 10 */
while ((InputGetState(CONTINUE) == ON) && (partcount < 10)){
/* do insertion if Input 1 is active */
if (InputGetState(INSERT) == ON) {
/* insert returns new partcount */
partcount = insert(INSERTDIST, INSERTVEL, INSERTACCDEC);
}
}
AxisDisable();
return 0;
}
/* Function that does the insertion move and pulses Output 1
while moving */
long insert(long distance, long velocity, long accdec)
Zobrazit stránku 22
1 2 ... 18 19 20 21 22 23 24 25 26 27 28 ... 113 114

Komentáře k této Příručce

Žádné komentáře