Title of Invention | PULSE OUTPUT FUNCTION FOR PROGRAMMABLE LOGIC CONTROLLER WITH LINEAR FREQUENCY CHANGE |
---|---|
Abstract | ABSTRACT 2036/CHENP/2005 PULSE OUTPUT FUNCTION FOR PROGRAMMABLE LOGIC CONTROLLER WITH LINEAR FREQUENCY CHANGE Certain exemplary embodimets provide a method for producing pulsed outputs, comprising: automatically changing a first user-specified pulse frequency to a second pulse frequency; and automatically outputting a plurality of pulses from the programmable logic controller at frequencies varying between the first user-specified pulse frequency and the second pulse frequency accoording to a user-specified linear-time-rate variation. |
Full Text | Cross-Reference to Related Applications Hiis application claims ptioiity to pending provisioaal f^licatioii Serial No. 60/450,210 (Applicant Docket No. 2003P02866US), filed 26 Febroary 2003. Bacl^roimd Programmable logic controUcrs can be si^Ued widi some means offaododng pulsed outputs on their dUcrete output points that can be used for controlling the motion of stepper motors, pulse input controlled servo-motor controllers, and/or for other equipment that is controlled by sn input pube ftequency, pnlse width, and/or numba of pulses. A desired motion profit can be described in tcnns of desired pulse frequency versus time. Such profiles can be used in industry to descnbc, for exan^le, the speed of a motor positioning a tool, where the frequency of pulses delivn«d to the motor system controU the rotational speed. Typical motor systems used in industry today have scaling factors of from 200 to 200000 puLses per revolution. Typical acceleration times from niinimuin to maximum frequency can range from a few milliseconds up to many seconds. The actual object of the modon is often to move a specific distance, expressed as a specific number of pulses, while satisfying constraints on acceleration, and change in acceleratioTi. The constraints on acc^eratipn and change in acc^eration can have any of noxDotius motivations, including controlling motcr torque load, limiting wear on drive trains, avoiding damage to tools, work pieces, and/or handled maiexials, and/or limiting acoostic noise, etc. Controlled changes in acceleration ml^t or might not be included in a particular application, but are incawasingly valued as users strive f(x higher speed Tnovemeat without introducing difiruptive jerks. Summary Certain exen^lary embodiments provide a method for producing pulsed outputs, comprising: automatically changing a &rst nser-speclfied pulse frequency to a second pulse frequency; and automatically outputting a plurality of pulses from the programmable lope controller at frequencies varying between the first user-specified pulse frequency and the second pulse frequency acctn^ing to a user-specified UncJir-tinie-ralc variation. Brief DescriptioD of the Drawings A wide array of potential embodiments can be better understood through the following detailed description and the accompanyiDg drawings in which: FIG. 1 is a blodi dLagram of an exemplary mibodinient of a system 1000; FIG. 2 is a flow chart of an exemplary embodiment of a nuithod 2000; FIG. 3 is A block diagram of an exemplary embodiment of an infonnatjon device 3000; FIG. 4 is a diagram of an exemplary typical desired motion profile 4000; and FIG. 5 is a block diagram of an exemplary embodiment of a system 5000. Deffaiitioiis When the following teims are used herein, fte accon^anying definitions ^y: pTOgrammable lo^c controller (PLQ - a device that follows programmed instructions to provide automated monitociTig and/or control functions over a machine and/or process by evaluating a set of inputs. A PLC can be used to automate con^lex functions, foi example, in machining, packaging, materials handling, aad/oc other qiplications. A PLC can be utilized to control an industrial process. pulse - a transient wave coc^nising a voltage of a predetermined amplitude that extends for a piedeteimined time period. pulse train - a series of pulses that can control the operation of a motion device, e.g., a motion controller, such as a stepper motor control!^, a servo controller, an actuator coDtroUer, etc.; a motion drive, such as a stepper drive, servo drive, etc.; and/or a actuator, such as a stepper motor, servomotor, linear motor, motOT, ball screw, servo valve, hydraulic actuator, pneumatic valve, etc. The motion device can interpret 4ie number, fiequestcy, and/or length of pulses as commands for certain movements. pulse generator - a device that generates pulses. pulsed outputs - a series of pulses provided from a device. frequency - the number of times a specified periodic phenomeDOii occurs within a specified interval. For wcample, a pulse frequency could vary from 1 pulse per second to 10,000 pulses per second. TTie frequency of a pulse train applied to a motion controUed system will typically be proportional to the velocity of the motion device, and thus the trams frequency (of the pulse train) and velocity (of the motion device) are used interchangeably herein. acceleration - a change in frequency with respect to time. )erk - a change in acceleration with respea to time. Unear-time-rate Tariation - a change of a pulse vsriable (e.g., frequency, acceleration, jerk, etc.) with respect to time, characterized by a constant increment of change per unit time. poise frequency output profile - a representation (e.g., graphical, tabular, etc.) of a desired variation of pulse frequency with respect to time or pulse count, or an equivalent r^iresentation, such as a r^resentation of five velocity and position of a motion device whereby veloci^ is related to a pulse frequency and position is related to a pulse count. For example, a pulse frequency output profile could specify ttiat for the first 500 pulses of operation, the pulse firequency should rncrease from 10 pulses per second to 100 pulses per second, &nd afterwards remain constant for the next 300 pulses, then decrease at a specified rate, with pulse ou^ut to stop after reaching 20 pulses per second. A poise frequency output profile as a whole can be considered a specification and/or can be considered a collection of speraficotions, each specification relating to one or more constituent of the profile, such as a line segment spedficatioa - a description or characterization. line segment - a portion of a pulse frequency output profile that is characterized, or specified, by certain parameters such as an initial frequency, an initial acceleration, and a change in acceleration with respect to time, and a specification of how the line segment ends. The specification of how a line segment ends can be ctan^ietiix] of a specific pulse count, or the reaching of a specific fr^uency goal, or some external event polarity of diange - whether a rate of change is positive or negative. automatically - acting or opiating in a manner essentially independent of external influence cr control. For example, an automatic li^l swiitii can turn on upon "aedng" ia person in its view, without the person manuaUy operating the li^t switch. Detuled Description Certain exemplary embodin«aits provide a pulse output fiinctioo for a programmable logic controller. The pulse ou^ut function can provide a naeans for producing a user speciiied firequency of pulses, for varyrcig die pulse frequency according to a u.ser spebiCied linear rote of change with tiine (constant acceleration), and/or for varying the frequency in response to a user spedfied linear variation in acceleration witn respect to time. The function can provide for user specified pulse frequency output profiles consisting of an indefinitely large and inde&nitely intraiuixed .sequence of line segments, each line segment represtating an incieasing frequency, decreasing frequency, and/or constant frequency ou^ut The frequency magnitude, rate, and polarity of change in frequency, andrate and polarity of change in acceleration can be indejwndently specified for each line segment- The length of each line segment can be independently specified as a number of pulses, as an indefinite length to be tKminated by an external event, and/or as an indefinite length to be tenninated by reaching a specific frequency igoal. The c^eration of a specified line segment can be intexrupted (as, for examplle, by an emergency stop function)- On such line segment interruption, the pulse output can be almq)tly terminated, and/or a transition can be endued to a newly specified line segment (as, for exan^le, an item in an emergency shul-dowi^ sequence) ^^ithout ^scontlnuities in the pulse generation. Progranunable logic controllers can be supplied with some means of producing pulsed outputs on their discrete ou^ut points that can be used for controlling stepper motors, pulse input controlled servo-motor controllers, and/or for other equipment that is controUed by an input puise frequency, pulse width, and^or number of pulses. Prograinraable logic controllers ctai focus on usa specification of pulse width as a simple implementation. Programmable logic controllers can include a means for delivering a sequence of user specifications so as to produce a desired profile of pulse width outputs. Programmable logic controllers can include a means of intei3)0lating changes in pulse width betwecii specification points so as to reduce generally undesircd discontinuities in pulse width while foUowin^ a specified ramped change in pulse width. It is recognized that pulse width is inversely related to frequency. Mechanisms that depend on pulse widtii and change in pulse width specification can be inconvenient to use when the user desired specification is in frequency and change in frequency. In particular, in attenqiting to describe frequaicy changes wi& respect to time (accelo^tion), and changes in accelo^ticm with respect to time, the use of pulse widfli and change in pulse width specificatiwis can require an inconveniently large number of points to describe a line segment with sufficient accuracy. The arithmetic operations required for conqiuting frequency targets acccwding to typical desired rules and converting these frequency targets to pulse widths are reasonably simple. Typical programmable logic controllers for low cost applications have limited available processing power. Certain applications can require pulse output frequences of hundreds of KHz to MHz. Catain applications do not allow sufficient time for accderation change, frequency (diange, and frequency-to-pulse widQi convereion calculations to be performed as needed on a pulse by pulse basis by a typical programmable logic controller. Cotoiti exemplary embodiments can provide dedicaied logic to peifiiiim these calculations, coupled with input data pipelining mechanisms to allow a consistent supply of timely new data, and state machine logic to manage the calculations, deliver concct calculation results to the pulse generaior, and manage transitions between desired operating modes. The dedicated logic can use fixed point calculations rather than the generally more complicated and more expensive floating point calculation mechaninns. In pardcular, the coaptation of target frequency and target acceleratiDn at a particular time can be carried out as a cumnlative addition of incremental changes. By allowing the rate of such cumulative additions to be independently specified, the fixed point additions can be scaled to cover a range of frequency/time/rate of change values that might otttcrwise require excessive vord length or floating point calculation hardware. FIG- lis a block diagram of an exemplary embodiment of a system 1000. System 1000 can include an infonnation device such as a programmaible logic controller ("PLC") 1100 comprising a main processor 1120 ccmpled via a comiector 1130 to a pulse generator 1140. In certain embodiments, pulse generator 1140 can connect to B connector 1300 such as a system backplane and/wan expansion ii^)ut/Dutput bus of PLC 1100. Pulse generator 1140 can be integral to PLC 1100, That is, once installed, pulse generator 1140 can be a con^ionent of PLC 1100, rather than free standing. Pulse generator 1140 can include a motion processor 1150 having a memory 1160, such as a dual port RAM. Motion processor llSOcanbeaconuQenrially available general-purpose microprocessor. IQ anoth^ embodimeot, motion processor 1150 can be an Application Specific Integrated Circuit (ASIC) thai has been designed to implranent in its hardware and/or firmware at least apart of a method in accordance with an embodinient of the present invention. In yet another embodimeait, motion processor 1150 can be a Fidd Programmable Gate Array (FPOA). Memory 1160cancontaininstructions that can be embodied in software, which can take any of numerous forms that are well known in the art Pulse generates 1140 also can include a commumcstionB interface 1170, such as a bus, a connector, a ceJephone line interface, a wireless network interface, a cellular network interface, & local area network interface, a tvoadband cable interne, etc. Pulse genn'ator 1140 can affect a motion device. A motion device can be any device capable of being controlled by a variable frequency pulse train, including a motion controller, such as a stcppo' motor controller, a servo controller, an actuator controller, etc.; a motion drive, such as a st^jper drive, servo drive, etc.; and/or a actaaiot, such as a stepper motor, servomotor, linear motor, motor, ball screw, servo valve, hydraulic actuator, pneumatic valve, etc. Pulse generator 1140 can produce a series of pulses, called a pulse train. Acxordiiig to certain exemplary embodiments, a variable frequency pulse generator can produce a pulse train thai can vary in frequ«icy, count, width, and/or differential width (also referred to herein as "change in pulse width"). At the motion device, fl)e irequency of the pulse train can control speed and/or the pulse count can control position. Pulse generator 1140 can be connected to a motion controUar 1300 that is s^arate from PLC 1100. Motion contioUer 1300 can be connected to a motion drive asd/or an actuator 1400. Pulse genemtor 1140 also can be connected via a network 1500 to a motion cootroller 1600 tiiat is separate from PLC 1100. Network 1500 can be a public switched telephone network (PSTN), a wireless network, a cellular Tietwork, a local area network, the Internet, etc. Motion controller 1600 can be connected to a modon drive and/or an actuator 1700. Furtber, pulse generator 1140 can be connected to a motion controller 1180 tbat is integral to PIX1100. Motion controller 1180 can be connected to a motion drive and/or an actuator 1200. Connected to network 1500 also can be an infonnation device 1900, such as a traditional telephooe, telephonic device, cellular telephone, mobile terminal, Bluetooth device, coonnunicator, paget, facsimile, computer tcnnioal, personal computer, etc. Intixmatioa device 1900 can be used to program, interact with, and/or monitor pulse generator 1140. FIG. 2 is a flow chart of ao exen^lary embodjmcnt of a metiiod 2000. At activity 2100, a first user-specified line segment specification can be received and/or derived, such as from a graphical pulse frequency output profile. The profile can comprise a plurality of line segments, each of the line segments representing a frequency output selected from an increasing fr«qaency output, a decreasing frequency output, and/or a constant frequency output At least the first line segment can include a first or initial pulse frequency specification. Each line sepnent can cojnprise a plurality of us6r-^>ecifiable variation characteristics, such as a magnitude of change, a rate of change, a polarity of change, a duration, and/or a length. One or more of the line segments caa have a length specified as a number of pulses. Ooe or more of the line segnoents can have an indefinite leng^ terminable by a predetermined extemal event or leaching a predetermined fteqaency goal. At activity 2150, an additional successor line segment specification can be received (x derived. The additional line segment specification can include a new first frequency, a new linear-time-rate variation, and/or a new line segment terminaliOD specification. At activity 2200, a pulse width can be computed from the pulse frequency. The nser-speciSed lineai'time-rate ("LTR") variation associated with the cturent line segment can be applied to detennine fte ^quency of the next pulse. Tlie LTR. variation can be a change in a pulse frequency with respect to time, a change in a controlled system velocity witii respect to time, a change in a pulse acceleration with respect to time, and/oi a change in a controlled system acceleratlDn with respect to time. At activity 2300, a comparison can be made to determine if a target pulse frequency corresponding to a second user-specified pulse frequency has been reached. The second user-specified pulse frequency can be an expHcidy specified &:equency goal, a result of accumulating changes in frequency until a specified pulse count is reached, and/or a result of accumulating changes in fi^ucncy until an occurrence of an external ev^it If the target frequency has not been reached, control can return to activiQ' 2200, and pulses can continue to be output at frequencies varying between the user-specified first pulse frequency and die second pulse frequency. If the target frequency (or «nd of line segmeat) has been reached, control can be transferred to activity 2400. At activity 2400, the user-specified lincar-tinie-ratc variaticm can be automatically changed, such as from one line segment to a successor line segment of a pulse frequency output profile. The profile can be con^sed of a plurality of line segioents each having a length specified as tenninatiiig on reaching a cumber of pulses, an indefinite lengOi that is termiDated by an external event, and/oi a length that is tenninated by reaching a specified fr^uency goal. If a ncv^ successor line segment specification is available from activity 2201, this new specification can be made active and the process can resume at activity 2200. If a successor line segment has not been received at activity 2201, control can transfer to activity 2500. At activity 2500, the output of poises can be halted. FIG. 3 is a block diagram of an wemplary embodiment of an information device 3000, which can r^iTcseni any of information devices 1100,1300,1600, and/or 1900, etc. of FIG. 1. Information device 3000 can comprise any of numerous well-known components, such as for example, one or more network interfaces 3100, one or more processors 3200, one or more memories 3300 containing instructions 3400, one or more input/output (I/O) devices 3500, and/or one or more user interfaces 3600 coiqjled to VO device 3500, etc. As used herein, the tenti "information device" means any device cqiable of processing infonnation , such as any geiieral purpose and/or special purpose computer, soch as apo^ooal compuiei, workstation, server, immcoirqnitK, mainframe, si^iercomputer, compatci terminal, laptop, wearable computer, and/or Personal Digital Assistant (PDA), mobile terminal, Bluetoofli devict, coramunicator, "sraaiif' phone (such as a Handspring Trco-iike device), messaging service (e.g.. Blackberry) recover, pager, facsimile, cellalar telephone, a traditional telephone, telephonic devu:e, a programmed microprocessor or microcontroller aod/or peripheral integrated circuit elements, an ASIC or other integrated circuit, a hardware electrcmic logic circuit such as a discrete element circuit, and/or a programmable logic device such as a HXl, PLA, FPGA, or PAL, or the lite, etc. In gencraJ any device on which resides a finite state machine capable of implementing at least a portion of a method, structure, andyor or graphical user inierface described herein may be used as an information device. An information device can include well-known components such as one or more network intofaces, one or more processors, one or more memories containing instructions, and/or one or more input/output 0/0) devices, one or more user interfaces, etc. As used herein, the Vsna. "network interface" means any device, system, or ssbsystem enable of coupling an Jcformatioi] device to a network. For example, a netwo^ interface can be a telephone, cellular phone, cellular modem, telephone data modem, fax modem, wireless transcelv^, ethemet card, cable modran, distal subscriber line interface, bridge, hub, router, or cfflier similar device- As used herein, the term "processor" means a device for processing machine-readable instruction. A processor can be a central jffoccssing unit, a local processor, a remote processor, parallel processors, and/or distributed processors. etc. The processor can be a gcnwal-^rpose microprocessor, such the Pentium m series of microprocessors masufoctured by the Litel Corporation of Santa Dara, Califoima. In another embodiment, the processsor can be an Application Specific Integrated CirctJit (ASIQ or a Field Programmable Gate Airay (PPGA) that has beoi designed to implement in its hardware and/or firmware at lea&t a part of an embodinKint disclosed herein. As uaed herein, a "memory device" means any hardware element capable of data storage, such as for exan^le, a non-volRtile memory, volatile memory, Random Access Memory, RAM, Read Only Mraawy, ROM, flash memory, magnetic media, a hard disk, a floppy disk, a magnetic tape, an optical media, an optical disk, a contact disk, a CD, a digital versatile disk, a DVD, and/or a raid array, etc. As used herein, the tena "firmware" means machine-readable instructions that are stored in a read-only monory (ROM). ROM's can comprise PROMs and EPROMs. As used herein, Hoe term "I/O device" means any sensory-oriented inpMt and/cn* output device, such as an audio, visual, b^tic, olfacb^, and/or laste-oriented device, including, for example, a monitor, display, projector, overhead display, keyboard, keypad, mouse, trackball, joystick, gamepad, whesd, touchpad, touch panel, pointing device, microphone, speaker, video camera, camera, scanner, printer, h^tic device, vibrator, tactile simulator, and/or tactile pad, potenlially including a port to which an I/O device can be attached or connecied. As osed herein, Ihe tenn "haptic" means both the human sense of Idnesttietic movement and the human sense of touch. AmoDg the many potential h^c otperiences aie numerous sensations, body-positionBl differences in sensations, and time-based changes in sensatioas that are perceived at least partially in non-visuaJ, non-audible, and con-olfactory manners, including the expttiences of tactile touch (being touched), active touch, grasping, pressure, friction, tractiim, slip, stretch, force, toi^ue, impact, puncture, vibration, modcai, acceleration, jerk, pulse, orientation, limb position, gravity, texture, gap, leeess, viscosity, pain, itch, moisture, temperature, thermal conductivity, and thermal capacity. As used herein, the term "user interface" means any device for rendwing information to a user and/or i-eqnesting information from the USCT. A user inter^eincludesatleastoneoftextaal, graphical, audio, video, asim^Oion, and/or haptic elements. A textual element can be provided, few example, by a printer, monitor, display, projector, etc. A graphical element can be provided, for example, via a monitor, display, projector, and/or visual indication device, such as a hght, flag, beacon, etc. An andio element can be provided, for example, via a speaker, microphone, and/or other sound generating and/or receiving device. A video element or animation element can be provided, far example, via a monitor, diq)lay, projector, and/or other visual device. A haptic element can be provided, for example, via a very low frequency speaker, vibrator, tactile stimulator, tactile pad, simulator, Iceyboard, keypad, mouse, trac^all, joystick, gamepad, wheel, touchpad, touch pand, pointing device, and/or other haptic device, etc. A user intftface can include one or more texwal elements such as, for exaiiq>le, one or motte letters, number, symbols, etc. A user interface can include one or more graphical elements such as, for example, an image, photograph, drawing, icon, window, title bar, panel, sheet, tab, draww, matrix, table, form, calendar, outline view, frame, dialog box, sutic text, text box, list, pick list, pop-up list, pull-down list, menu, tool bar, dock, check box, radio button, hyperUok, browser, button, control, palette, preview panel, color wheel, dial, slider, ecroU bar, cursor, status bar, stepper, and/or progress indicator, etc. A textual and/or graphical eiem«it can be used far selecting, programming, adjusting, changing, speci^ing, etc. an ^^pearancc, background color, background style, border style, 'border thickness, foreground color, font, font style, font size, alignment, line spacing, indent, maximum data length, validation, qa&ry, cuisw type, pointer type, autosizing, position, and/or dimension, etc, A user interface can include one or more audio elements such as, fcnr exaxiq>le, a volume control, pitch control, speed control, voice selector, and/or oiu at more elements for controlling audio play, speed, pause, fast forward, reverse, etc. A user internee can include one en more video elements such as, for example, elements controlling video play, speed, pause, fast forward, reverse, zoom-in, zoom-out, rotate, and/or tilt, ea. A user interface can include one or more animatton elements such as, for example, elements controlling animation play, pause, fast forward, reverse, zoom-in, zoom-out, rotate, tilt, color, intensity, speed, frequency, E^earance, etc. A user interface can include one or mtve haptic elements such as, for example, elements utilizing tactile stimulus, force, pressure, vibration, motion, displacement, teaq)erature, etc. In crataio exemplary embodiments, via one or more usw- interfaces 3600, such as a gr(q>hical user int«f ace, a user can provide a desired motion profile. FIG. 4 is a diagram of an exemplary t>7ical desired motion profile 4000, described in terms of desired piOse frequency versos tune. Such profiles can be used in industry to describe, for example, the speed of a motor positiomng a tool, where tfie frequency of pulses delivered to the motcM- system controls the rotational speed. Typical motor systems used in industry tod&y have scaling factors of horn 200 to 200000 pulses p=r revolution. T>pJcaI acceleraa'on times from minimum to maximum frequ^cy ca.n range from a few milliseconds up to many seconds. The actual object of the motioi) is often to move a specific distance, expressed as a specific number of pulses, while satisfying constraints on acceleration, and change in acceleration. The constraints on acceLoration and change in acceleration can have any of numerous motivations, including controlling motes torque load, limiting wear on drive trains, avoiding damage to toolst work pieces, and/or handled materials, and/or limiting acoustic noise, etc. Controlled changes in acceleration, represented by &e carved portions of the illustrative profile, might or might not be included in a particular application, but are increasingly valued as users strive for hig^ speed movement without introducing disruptive jerks. The motion represented by die profile in Bg. 4 can start and stop with abrupt changes between 0 and some minimum finite frequency. This can be minimally required by the nature of the system, since frequency can be expressed as a series of finite width pulses. Further, typical motors have minimum stait and stop speeds of, for example, $% or 10% of maximum rated speed, below which imnimums the motor might stall or operate erratically. After Hie initial step to the minimum start frequency, acceleration can be sowothly increased to some maximum amoimt, then can be smoothly decreased to zero to achieve a constant speed at the top of the profile, followed by a similar reverse process to smooflily slow down to Tninimum speed and stop. As used hoein, a factor df means a (jiangc in fi^ueocy per uiiit time, and a factor ddf describes a cbaage in df per unit time- That is, dft^resents an acceleration and ddfarate of change in acceleration. Within motion profile 4000 can be a number of regimes 4100-4900, which can be comprised of one or more line segments, and which can be described as follows: 4100". motion starts with some minimuni non-zero start frequency; 4200: df > 0 and ddf > 0, frequency (fn+i = fn+df) and accelenttiaii (df„4.i = dfn +ddf) are increasing, updated at regular intravals to as specified in the time interval portion of the df specification; 4300: df > 0, ddf = 0, frequency is increasing at constant accderation; 4400: df > 0, ddf reduced; 4500: df = 0, ddf = 0, frequency is constant; 4600: df and gromrg in magnitude; 4700: df 4800: df 0, frequency is decreasing, accclcratiOQ is negative and decreasing in magnitode; and 4900; motion reaches some final minimuni frequency, th«i stops- Parameters of each line segment can be indqwndently specified or maintained from a previous segment This example is deliberately asymmetrical to illustrate flKubility of line segment descaiption. The number of line segmente can be indefinit^y extensible, and can loaded from some external storage. The term "line BBgment" means a portion of the curve, whether os not straight, controlled by a single load &om the pipeline registers. Although Rg. 4 repiesents a simple motion profile of start, speed up to scHne constant frequency, slow down, and stop, much more conjilicHted profiles may be required in practice and can be accommodated. Such profiles mi^t include multiple intervals of constant speed, connected by intervening accelerations of different migaitaics, and peiiiaps including segments that are indefinitely extended, requiring some external signal or external data input to the system to determine the timing and nature of a next step. Parameters for each segment of the profile can be independently specified, or maintained fiom the previous segment, allowing for considerable flexibility in application. PIG. 5 is a block diagram of an exemplary embodiment of a system SOOO, which can include a number of components. For example, startj&equency (si) variable S110 can be utilized to determine a worldiig frequency (wf) variable S210. A delta frequency pipeline (dfh) variable 5120 can be used to detennine a delta_frequency (df) variable 5220. A delta delta ftequency pipeline (ddfli) variable S130 can be used to determine a delta delta.fieqa^icy (ddf) variable 5230. Acomparepipeline(cn^)vaiiable5l40canbeusedtodetenoinea conqiare (cmpr) variable S430. Control and/or status fl^s 5150 can control the operation of a state machine 5440. Adder 5310 can provide a new value to working frequency (wf) variable 5210 and/or ii^iut to compare variable 5430. Adder 5320 can jH-ovide a new value to delta frequency (dl) variable 5220. Interval timer 5330 can provide input to state machine 5440 to control the rate at which adder 5310 and adder 5320 (^ei-ations are ^iplied. Divider 5410 can receive input from working frequency variable 5210 and/or source frequency 5420 and can outpui a pulse width vari^le 5510 which can Gow to a pulse width countCT 5610. JD various exemplaty embodimentG, any of the following features can be provided: 1. a poise generator that produces Qineftr changes in frequency with reelect to time (an acceltration) by adi^g or subtracting a specified frequency increment to the specified frequency at regular specified intervals, followed by a divider mechanisjm that converts the frequency specification to a pulse witith specification, followed by a pulse widtii generator that produces the desired pulse output by counting clocks of a fixed reference frequency according to the pulse widtii specification; 2. apulse generator that produces|linear changes in acceleratioD with respect to time by adding en: sut)tracting a specified acceleration increment to the specified freqikency increniHit at regular specified intervals, followed by the mecliamsm for confuting a new specified frequency, and subsequent divider and pulse widdi generator mechanism as in Item (1); 3. apulsegenerator as in item (l]|or:(2) equipped with pipeUne data re^stors with controlling state jmachine so that a series of specifications for frequency, change in frequency, and change in acceleration, may be loaded and executed without discoDtinuitiefi in pulse ou^ut, the duration of each specification fline segmemj being controlled by a counted number of pulses; 4. a pulse generator as in item (1) or (2) equipped with pipeline data registCTS with controlling state|inachine so that a series of specifications for frequeacy, change in frequeiicy, and change in sccdcratioii, may be loaded and executed without disbontinuities in pulse output, the duration of each specification (line segment) being tenninated by reaching a specified firequency goal; 5. a pulse gen^ator as in itcrn (1) or (2) equipped with pipeline data registeis with controlling state ci^acbine BO that a series of specificBtiODs for fiiquency, change in frequeiicy, and change in accelcraticm, may be loaded and exKuted without di^ontinuities in pulse output, the duration of each specifjcadon (line segment) being ledminated by command from arbitrary outside event; 6. a pulse generator as in item (1) throu^ (5) equipped with means far interrupting a planned series of specifications to substitute a new specification (as, for example, an emergency shut down sequence) without discontinuities in pulse (output, 7. a pulse generator as in item (1) QT (2) including an update intarval counter and encoded interval specification, the duration of the specified intNval controlling the repetitic|n of inctemental additions to frequency and acceleration, and thraeby, i^ concert with the increment size, contri^Ung die rale of change of frequency and accderatioii. The use of a programjnable interval with afwide range of interval selections extends ±e range of slopes (changes in jfrequency or acceleration) that may be controlled with a given precisic^ of frequency, acceleration, and incremental change specifications in a fixed point format; S. a pulse generator combining 2 or more of the fMtures of items OX (4), (3), (6), with data register pipeline and state machine lo^c capable of intermixing the specificatioD fcjatures in an arbitrary order; 9. a pDlse generator combining 1 or more of the featurts of items (3), (4), (5), (6) equipped with a means of identi^g the last step of a seqnence and stopping pulse train output precisely at the completion of the final specification; 10. a pulse generator including a means for detecting incipient matti eirors and intemipting a planned scries of specifications to substitute a new specification (as, fat example, an emergency shut down sequence), as in item (6) above; U. a pulse generator including a means for detecting shortages of provided data (pipeline underrun) and intenupling a planned series of specifications to substinite a new specification (as, ibr example, an emergency shut down sequence), as io item (6) above; 12. implementation of any of items (1) tlirou^ (11) in an integrated circuit; 13. the inclusion of any of items (1) through (11) in a programuable logic controller, 14. the inclusion of any of items (1) 4rough (U) in an integrated HSBcmbly witti general purpose processing means and conunuoication m^ns, alfowing the fxmctions to be controlled by general poipose conqiating programs or commands issued by means of a network or otbex CDomumication n^um; IS.theinclusionof any of items (1) through (11) in an integrated drcuit with genaral purpose processing means and coimnunicatioa means, allowing the function of the invention to be controlled by general purpose confuting programs or commands issued by means of a network or otiier communication medium; 16. use of a multi-funciion high speed counting means integrated with a general purpose processing means, in combination with the pulse generation function of (1) - (11), to mooitor absolute and lelative position (pulse count), OVBT an indefinitely extended sequew* of controlled fi^uency pulse tr The following description supposes, for clarity, a specific wccmplary implementation in specific exemplary registers with exonplary degciibed data fonnats, accessible to the general purpose processor for manipulatiOD and examination- Actions performed in this exemplary embodiment by the general purpose processor are attributed to "processor" in the description. The linear ramp Pulse Train Output (Ipto) systtra can allow specification of the pulse train in terms of frequracy and change in frequency per unit time. The modes of operation can be as follows: Major operatmg modes: nin_st^s_n: nm for a specified npjnber of pulses, siarting from a specified frequency and changmg tiie frequency at a specified rate per unit time. At the conipletion of the pulse count, load a new step specification. nin_steps_f; run until a specified frequency target is reached, starting from a specified frequency and changing the frequency at a specified rate per unit time. On achieving the specified frequency, load a new step specification. nin_continuous : run at constant ftequency for an indefinite time Transition states: abort: abort state is entered due Ho an abort command or certain error events. Abort mode halts any frequency change in progress, and disables pipeline loads or state transitions. Reliable set up for a gracefiil shut¬down is possible, or the unit can iiimply be commanded to stop. ]ast_step.n: run for a specified mimber of pulses, starting fiom a specified frequency and changing the frequency at a specified rate per unit time. Stop at the completion of die pulse count. Ia9t_st^_f: run until a ^ecifiejlfrequency target is reached, starting from a specified frequency and cfianging the frequency at a specified rate perunit time. On achieving the specified firequencystt^. The data registers that specify the operajCion are: start frequency (sf): The first firquency value tiial will be used to generate a pulse width qredficafion. woridng frequency (wf): The cunenuy used frequency. source frequency (sic J): NonnallK set to system clodc frequency. The output pulse width in system clocks «integcr(src_f / wf). delta frequency (df): This is stored as a composiie value, iocluding a magnitude value to udd to the working frequency, and a rate valoa, specii>iiig the interval at which thtf addition takes place, this register is accessed by firmware by loading Ac dfh (delta frequency pipeline). The signed addition wf c= wf + dfjnagnitude, repeated at regular counted clock intervals provides the hnear change in frequency with lime, when df is held constant A wide range of interval selections allows a fixed point calculation of wf+df_magnitudc to cove* a very wide range of desired frequency slopes. delta change in frequency (ddf): Same format as the magnitude and sign portion of the df register, and accessed by firmware by loading the ddfli (delta delta^frequency pipeline)- "the signed addition df acceleration with respect to time, [n the current implementation, the df and ddf renters are updated on the same schedule. An alternate schedule for the ddf register update is also possible. con5>are (cmpr) In nin_steps„n, ttiis raster counts fte pulses. In nm_steps_f, this register contains the value of the desired end point frequency. This register is accessed by firmware by loading the crDprfa (con^are register pipeline). mode : A coded specification of;ithe normal operating modes: I iun_steps_n, run_steps_f, run_c6ntinuous, last:_step_n, last_8tep_f. "Hiis code is actually embedded in the^ 32 bit field of the df / dfh registers. When df mode of the new step. Fitinwart may query the mode bits in the df register to verify current operating state. pulse width (pw ): lead for diagnostic use only, contains the currently I used value of pulse width in system clocks. Controls / status flags : run : run / stop, abort: Firmware command to enter abOTt nfiode, holding frequency constant and blocking pipeline loadi. In the case of an add_error, firmware sets this bit to aclaiowledge awarmess of the add^enor and ihaX the Ipto hus entered abort mode, automaticalf y. run_ack: state machine acknowledgement that the Ipto is running. abort^ack; state machine acknowledgement that the Ipto has observed the abort bit assertion and is in the abort mode. 'j active_pul5e: indicator that a pulsej is committed or in progress. primarily useful at the end of sequeoce where die negation of I active_pulse indicates the sequence is convicts. pipejoaded: indicates that some pipe regista (sf, dfh, cn^Hi) is loaded. Negation of pipejoaded signals the firmware that new information is required to continue the linear pio sequence. add_etror: indicates that the Ipto has encountered some condition that makes further automatic changes in the frequency problematic. Tiit generic term add oror includes all mathematical errorB, data format errors, and pipeline status errors that may be detected and repented. On add_«ror, tiw Ipto enters ttie abottmodc automatically. transfer pipeline command (xfrjipe): A write to the xfr_pipe address causes tbe Ipto state machine to loid the frequency divider and get ready to make the first pulse of a new sequence. Used to start the machme ftxMn idle or pick up a new specification to leave nin_continuou8 stale. Basic Operation Processor loads src_f, the frequency of the system clock available to measure pulse width as a Diind>a of counted clocks. src_f is presumed to remain constant for a complete motiDn. src_f may be fixed for a system or provided as some selectable clock source. Processor loads die remaining data pipeline registers, wfh, dfii, ddfli, and cmpA as desired, and writes a xfr_pipeline command to load the working registers wf, df, ddf, cmpr. Typically die pipeline registers are now written with a second set of values to be ready for the next line segment. The initial working frequency specification, wf, is loaded to the divider. The divider determines a first pulse width specification by dividing 8K:_f / wf. The division result is loaded to a buffered pulse width specification registw, pw. On commaDd to start, the pulse width counts obtains the value of pw, and begins producing pulses by counting clocks. Each output pulse is hi^ for approximately one-half the specified pw count, and low for die remaindw: of the pw count At the completioo of each pw cotmt, a new value of the buffered pw from the divider is fetched and another ptdse widdi is counted out. Concurrent with the counting out of pulse widths, anintarval timeris marldiig update events as specified by the time specification portion of the df register. On each update event, wf is loaded with a new value of wf + df, df is loaded with a new value of df + ddf. This regular addition of df and ddf increments at equidistant times performs the calculations'. wf=wf(0) + df *tiine df=df{0) + ddf*tiniE widi the accuniijlation of scaled, fixed point additions being substituted for multiplications. Each new fi:equMc> value wf is loaded to the divider, which prodttces a new pulse width specification pw = src_f / wf. The latest value of pw is available to the pulso width connte* to use for timing the ne*t pulse on each pulse boundary. Note that pulse wid&s are changing throughout a sequence, while the update interval is fixed. New values of pw may be presented at any lime daring a pulse, and may be replaced by yet new values before the next pulse start requires a new pw. Synchronous machinery assures that anly valid values of pw are transferred to the pulse width counter. This operatian continues until the end of a line segment. Depca^xie on the mode of operation, the end of &e line segment is masked by : completing a specified number of pulses, as counted down in the cmpr register (nin_steps_n or last_5tep_n) wf reaching a frequency as specified in the ermpi register Cnin_steps_f or last_stq)_0, or a x& japdine conunand frwn the processOT. the normal escape &om a run_continuous segment, the processor commanding an abort, an error escape fit«n any mode. On completion of a run_steps_n or j\ra_st(q)s_f segment, new speaficaiions from the pipdine registers arc loaded to The working registers, the new line segment commences, and the processor is notified so diat new pipeline register values may be loaded for yet another line segment if aesired. Additional line segments, vrith possible changes in mode carried in their specifications, may be loaded indefinitely. On conqjletion of a last,step_n or last^stcp^f, the pulse widfli counter is commanded to stop issuing pulses on the con^letion of a pulse, and the processor is notified of process completion. Additional line segments, with possible changes in mode carried in their specifications, may be loaded indefinitely. A xfr_pipeliD6 coimnand during run_continuous mode causes new line segment specifications to be loaded, which may include a change in mode. Typically this would be a ran_stcps_f line segment to transition to a new speed or a last_step_f segment to decelerate to a smooth slop. Additional line segments, with possible changes in mode carried in their specifications, may be loaded indefiiiitely. An abort command may be initiated as a response to interna] errors (e.g. an illegal result in a math c^wration). or external events (e.g., an unexpected shut down request in the largn- programmable log^c control system). The abort command stops (^ration of the update interval timer, the divider, and pipeline loads, readying ^ system to be set up for a new line segment. The pulse width counter continues to issue pulses al the last pw value specified, mmntaining the exttmal motor or other target device al a constant speed. The processor may command an immediate stop, or, more typically, load a new Une segment specification in the pipe line registers and execute a xfr_ptpdine command to initiate the new segment The new line segment mi^tbe a smooth transilion to a new operating point or a smooth deceleration to stop. State changes of the Ipto state machine can be described by the following simplified code: process advance_state: if cuirent-Btalc = idle then if all pipe registft-s loaded and xfiLpipe = '1' then load pipe registers to worldng legisters wf df if current_state = loaded then I if nm_cmd = '1' then curremLSMte find_active.^tatc : new pipelined state if current_8tate = find_active_state then case mode_request is when run_stepB_f_id => current_state when roiusteps ji_id => ciinciit_statc carrent_state ciirrent_state coiieDt_stale cuiTent_state —. ,—',r\m steps n if cuiTent_state = rua_stq3s_n then. ifniB_cmd = 'r and abort_cmd»«'0'then if add_error = T then cuiTent_Btate end if; — end of a step elsif nin_cmd = '0' then current_8tate : last step n if cuirent_state = lasi_st ifnin_cind= T and aborLond ■'0'th«i I ■I if add error = 1' then icurTent_state elsif pulse count complete ■ 1' then ciUTeiit_state -c^ Enish; end if; ~ end of a step el^f Tun_cmd = '0' then cvmenit^state elsif aborC-cnid -' r then cuircnUstate . nm st^s f if cmTent_state = run_Step6_f then if njn_cmd = 'i' and aborLcmd ='0'then if frequency goal reached = '1' then ciiiTeiit_state end if; - end of a step eJsif run_cmd = '0' then ciizrBnt_state last step f ^-- if ciJTrent_8tate = last_stcp_f then if run_cmd = T and aborLcmd = '0' then if frequency goal reached ='1'then current.^tate elsif rmi_cmd = '0' thea cittrent_8tate „ run continuous — exit from run continuous on pulse risang edge after xfc_pipe ~ initiate clivide, then traosition to TWW state when divide complete if airreiit_state = nin_coiit flien if nin_cnjd = T and aboitjEmd a'0'Ih«i if xfr_pipe command then load pipe registers to working registers, start divider wait for divider complete cunxnt_state 1- abort "— ■—— if curreni_Ktate *= abort then if rua_cmd = '0' then cuirent_state estop; clsif abort_cnid = 0' and add «Tor = '0' tfien cunent_statc end if; — abort escapes end if; - abort staW estop and finish redundant stales if currencstate = estop then if active_piilse = '0' and nin_cmd = '0' then carrent_state end if; — estop state if curreoLstate = finish then if active_^ulse = '0' and rwucmd = '0' then current_state » end if; - finish state end process advance_state; [114] Actions perfonned in each slate are described by the following sin^lified code; if cvirreiit_state = rua_sti^s_n or cmTEnt_state = last_stq)_n then if penodic_update = ' i' llien — at scheduled intervals update wf if add eiror detected, signal state machine and fiimwaic else, signal divider to find new pulse width = src_f / wf endif; -addeirorrepoirtornot end if; - periodic update event mdif; ~ either con^are n mode if curMul_statc ■run_stq)Sji tben if rising pulse edge, count down cn^, checking for negative result if negative cmpr (due to loading pulse count ■ 0) signal add_error elsif pulse count complete &« if new croprh value loaded Aen transfer loaded pipe registers signal state machine to find new state else, signal add_crror end if; ~ valid pipe entry or not md if;-?ero goal error or not end if; - count pulse event cases end if; — run_stepB_n case if gurTent_statc ■ last_siep_n then { same as run_step$_n except signal state machine to finish on pulse count complete } end if; - n]n_sieps jn case if currcnt_state = njn_cont then if ;cfTL.pipe command then if new cmprh value loaded then transfer any loaded pipe registers on next rising poise edge else, signal add.etror end if; - valid pipe entry or not end if; — pipe xfr event end if; - run continuous case if cuiTent_siate * run_steps_f or current^siatc = lasLstep_f then - update f+df, checldng for compare result if pericMjic_update = '1' then if df positive, Cincreasingf). and wf+df not greatn-than con^are ordf negative, and wf+df still grealerflian compare then wf signal divider to find new pulse widdi = src^ / wf if new cflQ^ value loaded then transfer loaded pipe re^jstos signal state machine to find new state else, signal add^error end if; - valid pipe entry or not end if ; - frequency compare cases end if; ~ periodic update endif; — eithacon^arefmode Registers Note; "Don't care'" bits (x) always return 0 when registers ccmtainii^ those bits are read. drawing figure, etc.) of this application, unless clearly specified to the contrary, there is no requirement for the inclusion in any claim of the application of any particular described or illustrated activity or element, any particular sequence of such activities, or any particular interrelationship of such elements. Moreover, any activity can be ispeated, any activity can be performed by multiple entities, and/or any element can be duplicated. Further, any activity or element can be excluded, the sequeace of activities can vary, and/or the interrelationship of elements can vary. Accordingly, the descriptions and drawings are to be regarded as illustrative in nature, and not as restrictive. Moreover, when any number or range is described herein, unless clearly stated otherwise, that number or range is approximate. When any range is desoibed herein, unless clearly stated otherwise, that range includes all values therein and all subranges thepein. Any information in any material (e.g., a United States patent, United States patent application, book, article, etc.) that has been incorporated by reference herein, is only Incorporated by reference to the extent that no conflict exists between such informatioa and the other sutements and drawings set forth herein. In the event of such conflict, including a conflict that would render a claim invalid, then any such conflictlng information in such Incorporated by reference material is specifically not incorporated by reference herein. 42 We claim: 1. A method for producing pulsed outputs from a programmable logic controller, characterised by: in a programmable logic controller, changing a first user-specified pulse frequency to a second pulse frequency; and outputting a plurality of pulses from the programmable logic controller at frequencies varying between the first user-specified pulse frequency and the second pulse frequency according to a user-specified linear-time-rate variation. 2. The method as claimed in claim 1, wherein the user-specified linear-time-rate variation is a change in a pulse frequency with respect to time. 3. The method as claimed in claim 1, wherein the user-specified linear-time-rate variation is a change in a controlled system velocity with respect to time. 4. The method as claimed in claim 1, wherein the user-specified linear-time-rate variation is a change in a pulse acceleration with respect to time. 5. The method as claimed in claim 1, wherein the user-specified linear-time-rate variation is a change in a controlled system acceleration with respect to time. 6. The method as claimed in claim 1, comprising: receiving a signal indicative of the user-specified linear-time-rate variation. 7. The method as claimed in claim 1, comprising: computing a plurality of pulse frequencies corresponding to the user-specified linear-time-rate variation between the first user-specified pulse frequency and the second pulse frequency. 8. The method as claimed in claim 1, comprising: computing a plurality of pulse accelerations corresponding to the user-specified linear-time-rate variation between the first user-specified pulse frequency and the second pulse frequency. 9. The method as claimed in claim 1, comprising: computing a target pulse frequency corresponding to the second pulse frequency which second pulse frequency being user-specified. 10. The method as claimed in claim 1, comprising: computing a target pulse frequency corresponding to the second pulse frequency which second pulse frequency being non-user-specified. 11. The method as claimed in claim 1, comprising: computing a target pulse acceleration corresponding to the user-specified linear-time-rate variation. 12. The method as claimed in claim 1, wherein the user-specified linear-time-rate variation is received from a graphical pulse frequency output profile. 13. The method as claimed in claim 1, wherein the user-specified linear-time-rate variation is derived from a graphical pulse frequency output profile. 14. The method as claimed in claim 1, wherein the user-specified linear-time-rate variation is received from a pulse frequency output profile comprising a plurality of line segments, each of the line segments representing a frequency output selected from an increasing frequency output, a decreasing frequency output, and a constant frequency output. 15. The method as claimed in claim 1, wherein the user-specified linear-time-rate variation is received from a pulse frequency output profile comprising a plurality of line segments, each of the line segments comprising a plurality of user-specifiable variation characteristics. 16. The method as claimed in claim 1, wherein the user-specified linear-time-rate variation is received from a pulse frequency output profile comprising a plurality of line segments, each of the line segments comprising user-specifiable characteristics selected from a magnitude of change, a rate of change, a polarity of change, a duration, and a length. 17. The method as claimed in claim 1, wherein the user-specified linear-time-rate variation is received from a pulse frequency output profile comprising a plurality of line segments, at least one of the line segments having a length specified as a number of pulses. 18. The method as claimed in claim 1, wherein the user-specified linear-time-rate variation is received from a pulse frequency output profile comprising a plurality of line segments, at least one of the line segments having an indefinite length terminable by a predetermined external event or reaching a predetermined frequency goal. 19. The method as claimed in claim 1, comprising; abruptly terminating the plurality of pulses. 20. The method as claimed in claim 1, comprising: changing the user-specified linear-time-rate variation from one line segment to a successor line segment of a pulse frequency output profile comprising a plurality of line segments each having a length specified as a number of pulses, an indefinite length that is terminated by an external event, or a length that is terminated by reaching a specified frequency goal. 21. The method as claimed m claim 1, wherein the second pulse frequency is a result of accumulating changes in frequency until a specified pulse count is reached. 22. The method as claimed in claim 1, wherein the second pulse frequency is a result of accumulating changes in frequency until an occurrence of an external event. 23. The method as claimed in claim 1, wherein the second pulse frequency is an explicitly specified frequency goal. 24. A system for producing pulsed outputs characterised by: a pulse generator capable of producing linear changes in frequency with respect to time by adding or subtracting a specified frequency increment to a specified frequency at regular specified intervals to create a frequency specification, a divider mechanism capable of converting the frequency specification to a pulse width specification, a pulse width generator capable of producing a desired pulse output by counting clocks of a fixed reference frequency according to the pulse width specification. 25. The system as claimed in claim 24, wherein said pulse generator comprises means (1150) to produce the linear changes in acceleration with respect to time by adding or subtracting a specified acceleration increment to the specified frequency increment. 26. The system as claimed in claim 24, comprising a plurality of pipeline data registers and a controlling state machine, said pipeline data registers and said controlling state machine comprising means (1150) to provide a planned automatic change from a specification of a first pulse output to a second pulse output specification upon completion of a specified pulse count for the first pulse output. 27. The system as claimed in claim 24, comprising a plurality of pipeline data registers and a controlling slate machine, said pipeline data registers and said state machine capable of providing a planned automatic change from a specification of a first pulse output to a second pulse output specification upon reaching a specified frequency goal for the first pulse output. 28. The system as claimed in claim 24, comprising a plurality of pipeline data registers and a controlling state machine, said pipeline data registers and said state machine capable of providing a planned automatic change from a first pulse output specification to a second pulse output specification, a duration of the first pulse output specification being indefinitely extended until an occurrence of an external event. 29. The system as claimed in claim 24, comprising a plurality of pipeline data registers and a controlling state machine, said pipeline data registers and said state machine capable of aborting execution of a pulse output specification in progress. 30. The system as claimed in claim 24, comprising a plurality of pipeline data registers and a controlling state machine, said pipeline data registers and said state machine capable of blocking a planned automatic change from a first pulse output specification to a second pulse output specification. 31. The system as claimed in claim 24, comprising an update interval counter and an encoded specified interval, 32. The system as claimed m claim 24, comprising an update interval counter and an encoded specified interval, a duration of the regular specified intervals controlling a repetition of incremental additions to frequency and acceleration. 33. The system as claimed in claim 24, comprising a halter capable of stop the pulse output precisely upon completion of a final specification. 34. The system as claimed in claim 24, comprising a coimter capable of monitoring absolute and relative position over an indefinitely extended sequence of controlled frequency pulse train operations. 35. The system as claimed in claim 24, comprising a counter capable of monitoring pulse count over an indefinitely extended sequence of controlled frequency pulse train operations. 36. The system as claimed in claim 24, comprising means (1100) to select a clock input frequency. 37. The system as claimed in claim 24, wherein said system is implemented in an integrated circuit. 38. The system as claimed in claim 24, wherein said system is implemented in a programmable logic controller. |
---|
2036-chenp-2005 abstract-duplicate.pdf
2036-chenp-2005 assignment.pdf
2036-chenp-2005 claims-duplicate.pdf
2036-chenp-2005 correspondence-others.pdf
2036-chenp-2005 correspondence-po.pdf
2036-chenp-2005 description(complete)-duplicate.pdf
2036-chenp-2005 description(complete).pdf
2036-chenp-2005 drawings-duplicate.pdf
Patent Number | 220440 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Indian Patent Application Number | 2036/CHENP/2005 | ||||||||||||
PG Journal Number | 30/2008 | ||||||||||||
Publication Date | 25-Jul-2008 | ||||||||||||
Grant Date | 28-May-2008 | ||||||||||||
Date of Filing | 25-Aug-2005 | ||||||||||||
Name of Patentee | SIEMENS ENERGY & AUTOMATION INC | ||||||||||||
Applicant Address | |||||||||||||
Inventors:
|
|||||||||||||
PCT International Classification Number | G05B 19/05 | ||||||||||||
PCT International Application Number | PCT/US2004/005681 | ||||||||||||
PCT International Filing date | 2004-02-26 | ||||||||||||
PCT Conventions:
|