Position Control of compumotor linear servo table and GV-U6E with PCI-7344

I'm referring PCI-7344 (not 7334).
I have the GV-U6E which is a drive only and does not possess control functionality. the drive only version does not store or use programs. So, serial commands can not be sent through COM port by LabVIEW even though A few basic commands can be emulated.
I am trying to do position control as I mentioned. For example, the motor should move A point to B point exactly with a certain speed. The points must be aboulte position.
I would like you to see the reference comment that I have been contacting with in your website forum.
http://exchange.ni.com/servlet/ProcessRequest?RHIVEID=101&RPAGEID=135&HOID=506500000008000000DD490000&USEARCHCONTEXT_CATEGORY_0=_14_&USEARCHCONTEXT_CATEGORY_S=0&UCATEGORY_0=_14_&UCATEGORY_S=0
Regard,
Jin Ho Lee
----- Original Message -----
From:
To:
Sent: Thursday, September 26, 2002 5:00 PM
Subject: Re: (Reference#1549-QYW196) "Position Control of linear servo table and GV-U6E with PCI-7344
>
> Note: Your reference number is included in the Subject field of this
> message. It is very important that you do not remove or modify this
> reference number, or your message may be returned to you.
>
>
> JinHo. Compumotor is a very popular brand, and I know of several customers
> who integrate our 7334 with Computmotor drives. However, when you say that
> the MAX configuration doesn't fit in the compumotor drive settings, are you
> referring to the specs from the 7344? It looks like the 7344 and the
> Compumotor will work well together through a UMI break out box. If you're
> referring to specific commands that the Compumotor receives, I'd have to
> know more about the protocol. If the Compumotor needs serial commands,
> then you can send them through the computer's COM port from LabVIEW.
> Please let me know exactly what kind of configurations you're trying to
> set. The 7344 can be completely configured in MAX and LabVIEW.
>
>
> Best Regards
>
> Kyle Voosen
> Applications Engineer
> National Instruments
> http://www.ni.com/support
>
> ------------------------------------------------------------------------------
>
> Problem Description :
> "Position Control of compumotor 406LXR linear servo table and GV-U6E(motor
> drive) with PCI-7344"
>
> "Since I had the answers referring:
> http://exchange.ni.com/servlet/ ProcessRequest?RHIVEID=101&RPAGEID=135&
> HOID=506500000008000000DD490000& USEARCHCONTEXT_CATEGORY_0=_14_&
> USEARCHCONTEXT_CATEGORY_S=0& UCATEGORY_0=_14_&UCATEGORY_S=0
>
> Wiring step was done well. However, I still have a problem that MAX
> configuration doesn't fit in compumotor drive settings. Therefore, the
> setup is shown below, and I want to know how I can set up PCI-7344
> configuration in MAX or LabVIEW VI.
>
>
> -----------------------------------------------------
>
> Uploaded from device address 0
>
> Gemini GV Servo Drive Setup
>
>
>
> Motor Setup
> DMTR 1703
> Motor ID (406-x-LXR-M-x-D13-x-x-x-x-E5-x-x-x)
> DMTIC 2.48
> Continuous Current (Amps-RMS)
> DMTICD 0.00
> Continuous Current Derating (% derating at rated speed)
> DMTKE 17.6
> Motor Ke (Volts (0-to-peak)/krpm)
> DMTRES 10.10
> Motor Winding Resistance (Ohm)
> DMTJ 119.300
> Motor Rotor Inertia (kg*m*m*10e-6)
> DPOLE 1
> Number of Motor Pole Pairs
> DMTW 40.5
> Motor Rated Speed (rev/sec)
> DMTIP 7.40
> Peak Current (Amps-RMS)
> DMTLMN 3.4
> Minimum Motor Inductance (mH)
> DMTLMX 3.4
> Maximum Motor Inductance (mH)
> DMTD 0.000000
> Motor Damping (Nm/rad/sec)
> DMTRWC 0.23
> Motor Thermal Resistance (degrees Celsius/Watt)
> DMTTCM 20.0
> Motor Thermal Time Constant (minutes)
> DMTTCW 0.33
> Motor Winding Time Constant (minutes)
> DMTAMB 40.00
> Motor Ambient Temperature (degrees Celsius)
> DMTMAX 90.00
> Maximum Motor Winding Temperature (degrees Celsius)
> DHALL 1
> Disable Hall Sensor Checking
> DMTLQS 0
> Set Q Axis Inductance Saturation
> DMTLDS 0
> Set D Axis Inductance Saturation
> DTHERM 0
> Disable motor thermal switch input
>
>
>
> Drive Setup
> DMODE 2
> Drive Control Mode
> DRES 8400
> Drive Resolution (counts/rev)
> DPWM 16
> Drive PWM Frequency (kHz)
> SFB 1
> Encoder Feedback
> ERES 8400
> Encoder Resolution (counts/rev)
> ORES 8400
> Encoder Output Resolution (counts/rev)
> DMEPIT 42.00
> Electrical Pitch (mm)
> SHALL 0
> Invert Hall Sensors
> DMTLIM 1.5
> Torque Limit (Nm)
> DMTSCL 1.5
> Torque Scaling (Nm)
> DMVLIM 119.000000
> Velocity Limit (rev/sec)
> DMVSCL 119.000000
> Velocity Scaling (rev/sec)
>
>
>
> Load Setup
> LJRAT 0.0
> Load-to-Rotor Inertia Ratio
> LDAMP 0.0000
> Load Damping (Nm/rad/sec)
>
>
>
> Fault Setup
> FLTSTP 1
> Fault on Startup Indexer Pulses Enable
> FLTDSB 1
> Fault on Drive Disable Enable
> SMPER 8400
> Maximum Allowable Position Error (counts)
> SMVER 0.000000
> Maximum Allowable Velocity Error (rev/sec)
> DIFOLD 0
> Current Foldback Enable
>
>
>
> Digital Input Setup
> INLVL 11000000
> Input Active Level
> INDEB 50
> Input Debounce Time (milliseconds)
> INUFD 0
> Input User Fault Delay Time (milliseconds)
> LH 0
> Hardware EOT Limits Enable
>
>
>
> Digital Output Setup
> OUTBD 0
> Output Brake Delay Time (milliseconds)
> OUTLVL 0100000
> Output Active Level
>
>
>
> Analog Monitor Setup
> DMONAV 0
> Analog Monitor A Variable
> DMONAS 100
> Analog Monitor A Scaling (% of full scale output)
> DMONBV 0
> Analog Monitor B Variable
> DMONBS 100
> Analog Monitor B Scaling (% of full scale ouput)
>
>
>
> Servo Tuning
> DIBW 1500
> Current Loop Bandwidth (Hz)
> DVBW 100
> Velocity Loop Bandwidth (Hz)
> DPBW 40.00
> Position Loop Bandwidth (Hz)
> SGPSIG 1.000
> Velocity/Position Bandwidth Ratio
> SGIRAT 1.000
> Current Damping Ratio
> SGVRAT 1.000
> Velocity Damping Ratio
> SGPRAT 1.000
> Position Damping Ratio
> DNOTAF 0
> Notch Filter A Frequency (Hz)
> DNOTAQ 1.0
> Notch Filter A Quality Factor
> DNOTAD 0.0000
> Notch Filter A Depth
> DNOTBF 0
> Notch Filter B Frequency (Hz)
> DNOTBQ 1.0
> Notch Filter B Quality Factor
> DNOTBD 0.0000
> Notch Filter B Depth
> DNOTLG 0
> Notch Lag Filter Break Frequency (Hz)
> DNOTLD 0
> Notch Lead Filter Break Frequency (Hz)
> SGINTE 1
> Integrator Option
> SGVF 0
> Velocity Feedforward Gain (%)
> SGAF 0
> Acceleration Feedforward Gain (%)
> -----------------------------------------------------
>
>
> Regards,
> JinHo"
> NI Software :
> LabVIEW version 6.0
> NI Hardware :
> Motion Control device PCI-7344
> Driver Version :
> no
> OS :
> Windows 2000
> CPU :
> Pentium
> RAM :
> 128
> Vendor :
> DELL
> Customer Information :
> Jin Ho Lee
> North Carolina State Univ.
> US
> [email protected]
> Ph: (
> 919
> )
> 512-9929
>
>

Yes, we used an NI PXI-7344 motion control card with an NI UMI-7764 box connected to a Gemini GV-U12E servo drive. (which is a drive only.)
We did positional control in absolute position mode.
I can send you an AutoCAD schematic detailing how to connect the UMI-7764 to the Gemini GV servo drive.
In regard to the Rs232 interface to the GV servo drive,
the GV drive only model is "configurable" not "programmable". You can create unique GV configuration files with Compumotor's Motion planner then download the configuration via Rs232 using LabVIEW as desired. Or, using LabVIEW via Rs232 you can change individual GV drive parameters on demand,
or use the GV's two analog outputs back to LabVIEW's analog inputs to measure commanded motor current or torque, etc.etc.etc

Similar Messages

  • Position Control of compumotor 406LXR linear servo table and GV-U6E(motor drive) with PCI-7344

    Since I had the answers referring:
    http://exchange.ni.com/servlet/ProcessRequest?RHIVEID=101&RPAGEID=135&HOID=506500000008000000DD490000&USEARCHCONTEXT_CATEGORY_0=_14_&USEARCHCONTEXT_CATEGORY_S=0&UCATEGORY_0=_14_&UCATEGORY_S=0
    Wiring step was done well. However, I still have a problem that MAX configuration doesn't fit in compumotor drive settings. Therefore, the setup is shown below, and I want to know how I can set up PCI-7344 configuration in MAX or LabVIEW VI.
    ;Uploaded from device address 0
    ;Gemini GV Servo Drive Setup
    ;Motor Setup
    DMTR 1703 ;Motor ID (406-x-LXR-M-x-D13-x-x-x-x-E5-x-x-x)
    DMTIC 2.48 ;Continuous Current (Amps-RMS)
    DMTICD 0.00 ;Continuous Current Derating (% derating at rated speed)
    DMTKE 17.6 ;Motor Ke (Volts (0-to-peak)/krpm)
    DMTRES 10.10 ;Motor Winding Resistance (Ohm)
    DMTJ 119.300 ;Motor Rotor Inertia (kg*m*m*10e-6)
    DPOLE 1 ;Number of Motor Pole Pairs
    DMTW 40.5 ;Motor Rated Speed (rev/sec)
    DMTIP 7.40 ;Peak Current (Amps-RMS)
    DMTLMN 3.4 ;Minimum Motor Inductance (mH)
    DMTLMX 3.4 ;Maximum Motor Inductance (mH)
    DMTD 0.000000 ;Motor Damping (Nm/rad/sec)
    DMTRWC 0.23 ;Motor Thermal Resistance (degrees Celsius/Watt)
    DMTTCM 20.0 ;Motor Thermal Time Constant (minutes)
    DMTTCW 0.33 ;Motor Winding Time Constant (minutes)
    DMTAMB 40.00 ;Motor Ambient Temperature (degrees Celsius)
    DMTMAX 90.00 ;Maximum Motor Winding Temperature (degrees Celsius)
    DHALL 1 ;Disable Hall Sensor Checking
    DMTLQS 0 ;Set Q Axis Inductance Saturation
    DMTLDS 0 ;Set D Axis Inductance Saturation
    DTHERM 0 ;Disable motor thermal switch input
    ;Drive Setup
    DMODE 2 ;Drive Control Mode
    DRES 8400 ;Drive Resolution (counts/rev)
    DPWM 16 ;Drive PWM Frequency (kHz)
    SFB 1 ;Encoder Feedback
    ERES 8400 ;Encoder Resolution (counts/rev)
    ORES 8400 ;Encoder Output Resolution (counts/rev)
    DMEPIT 42.00 ;Electrical Pitch (mm)
    SHALL 0 ;Invert Hall Sensors
    DMTLIM 1.5 ;Torque Limit (Nm)
    DMTSCL 1.5 ;Torque Scaling (Nm)
    DMVLIM 119.000000 ;Velocity Limit (rev/sec)
    DMVSCL 119.000000 ;Velocity Scaling (rev/sec)
    ;Load Setup
    LJRAT 0.0 ;Load-to-Rotor Inertia Ratio
    LDAMP 0.0000 ;Load Damping (Nm/rad/sec)
    ;Fault Setup
    FLTSTP 1 ;Fault on Startup Indexer Pulses Enable
    FLTDSB 1 ;Fault on Drive Disable Enable
    SMPER 8400 ;Maximum Allowable Position Error (counts)
    SMVER 0.000000 ;Maximum Allowable Velocity Error (rev/sec)
    DIFOLD 0 ;Current Foldback Enable
    ;Digital Input Setup
    INLVL 11000000 ;Input Active Level
    INDEB 50 ;Input Debounce Time (milliseconds)
    INUFD 0 ;Input User Fault Delay Time (milliseconds)
    LH 0 ;Hardware EOT Limits Enable
    ;Digital Output Setup
    OUTBD 0 ;Output Brake Delay Time (milliseconds)
    OUTLVL 0100000 ;Output Active Level
    ;Analog Monitor Setup
    DMONAV 0 ;Analog Monitor A Variable
    DMONAS 100 ;Analog Monitor A Scaling (% of full scale output)
    DMONBV 0 ;Analog Monitor B Variable
    DMONBS 100 ;Analog Monitor B Scaling (% of full scale ouput)
    ;Servo Tuning
    DIBW 1500 ;Current Loop Bandwidth (Hz)
    DVBW 100 ;Velocity Loop Bandwidth (Hz)
    DPBW 40.00 ;Position Loop Bandwidth (Hz)
    SGPSIG 1.000 ;Velocity/Position Bandwidth Ratio
    SGIRAT 1.000 ;Current Damping Ratio
    SGVRAT 1.000 ;Velocity Damping Ratio
    SGPRAT 1.000 ;Position Damping Ratio
    DNOTAF 0 ;Notch Filter A Frequency (Hz)
    DNOTAQ 1.0 ;Notch Filter A Quality Factor
    DNOTAD 0.0000 ;Notch Filter A Depth
    DNOTBF 0 ;Notch Filter B Frequency (Hz)
    DNOTBQ 1.0 ;Notch Filter B Quality Factor
    DNOTBD 0.0000 ;Notch Filter B Depth
    DNOTLG 0 ;Notch Lag Filter Break Frequency (Hz)
    DNOTLD 0 ;Notch Lead Filter Break Frequency (Hz)
    SGINTE 1 ;Integrator Option
    SGVF 0 ;Velocity Feedforward Gain (%)
    SGAF 0 ;Acceleration Feedforward Gain (%)
    Regards,
    JinHo

    First of all, before connecting the drive to the 73xx controller I would check that the drive and motor configuration works correctly independent from the controller. The Gemini drives have a utility called the Motion Planner that allows you to configure your motor and drive for independent operation so you can test if the motor and drive combination are working by themselves. Refer to page 18 of the Gemini GV installation guide which you can find at the compumotor site or download from:
    http://www.compumotor.com/manuals/gemini/Gemini_GV_HW_Install_Guide.pdf
    Once you have tested your motor and drive combination, make sure that the drive is configured in torque mode and that the command signal is configured to be sent from the I/O connector and not through RS232 using the Motion Planner. The next step would be to connect the 7344 through the UMI-7764 breakout box in the following order:
    ---- UMI7764 GVU6E
    ---- AOut Cmd+ (pin23)
    ---- AOGnd Cmd- (pin24)
    ---- InhOut Enable- (pin2)
    ---- +5V Enable+ (pin24)
    7344 --> EncA AX+ (pin8)
    ---- EncA- AX- (pin9)
    ---- EncB BX+ (pin10)
    ---- EncB- BX- (pin11)
    ---- Index ZX+ (pin12)
    ---- Index- ZX- (pin13)
    ---- +5V Encoder +5V (pin5)
    Verify that your enable line is connected in an open collector mode (as shown in the diagram above). Our inhibit outputs can sink current but not source it so if your enable line is not behaving properly you want to make sure that the +5v supply you are suing for the UMI can source enough current for your enable line to work. Consult Compumotor on the specs of their enable switch.
    Once the connections are done properly, all you need to do is configure and initialize your board for servo operation in MAX and then you can start your tuning process. Refer to the Tuning PID for servos tutorial in:
    http://www.ni.com/support/motnsupp.htm
    for instructions on tuning your servomotor properly. Also for more information on using MAX, refer to the following tutorial:
    http://zone.ni.com/devzone/conceptd.nsf/webmain/081957EE013C7A4586256B92007818E0?opendocument

  • How to Bind a Combo Box so that it retrieves and display content corresponding to the Id in a link table and populates itself with the data in the main table?

    I am developing a desktop application in Wpf using MVVM and Entity Frameworks. I have the following tables:
    1. Party (PartyId, Name)
    2. Case (CaseId, CaseNo)
    3. Petitioner (CaseId, PartyId) ............. Link Table
    I am completely new to .Net and to begin with I download Microsoft's sample application and
    following the pattern I have been successful in creating several tabs. The problem started only when I wanted to implement many-to-many relationship. The sample application has not covered the scenario where there can be a any-to-many relationship. However
    with the help of MSDN forum I came to know about a link table and managed to solve entity framework issues pertaining to many-to-many relationship. Here is the screenshot of my application to show you what I have achieved so far.
    And now the problem I want the forum to address is how to bind a combo box so that it retrieves Party.Name for the corresponding PartyId in the Link Table and also I want to populate it with Party.Name so that
    users can choose one from the dropdown list to add or edit the petitioner.

    Hello Barry,
    Thanks a lot for responding to my query. As I am completely new to .Net and following the pattern of Microsoft's Employee Tracker sample it seems difficult to clearly understand the concept and implement it in a scenario which is different than what is in
    the sample available at the link you supplied.
    To get the idea of the thing here is my code behind of a view vBoxPetitioner:
    <UserControl x:Class="CCIS.View.Case.vBoxPetitioner"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:v="clr-namespace:CCIS.View.Case"
    xmlns:vm="clr-namespace:CCIS.ViewModel.Case"
    mc:Ignorable="d"
    d:DesignWidth="300"
    d:DesignHeight="200">
    <UserControl.Resources>
    <DataTemplate DataType="{x:Type vm:vmPetitioner}">
    <v:vPetitioner Margin="0,2,0,0" />
    </DataTemplate>
    </UserControl.Resources>
    <Grid>
    <HeaderedContentControl>
    <HeaderedContentControl.Header>
    <StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
    <TextBlock Margin="2">
    <Hyperlink Command="{Binding Path=AddPetitionerCommand}">Add Petitioner</Hyperlink>
    | <Hyperlink Command="{Binding Path=DeletePetitionerCommand}">Delete</Hyperlink>
    </TextBlock>
    </StackPanel>
    </HeaderedContentControl.Header>
    <ListBox BorderThickness="0" SelectedItem="{Binding Path=CurrentPetitioner, Mode=TwoWay}" ItemsSource="{Binding Path=tblParties}" />
    </HeaderedContentControl>
    </Grid>
    </UserControl>
    This part is working fine as it loads another view that is vPetioner perfectly in the manner I want it to be.
    Here is the code of vmPetitioner, a ViewModel:
    Imports Microsoft.VisualBasic
    Imports System.Collections.ObjectModel
    Imports System
    Imports CCIS.Model.Party
    Namespace CCIS.ViewModel.Case
    ''' <summary>
    ''' ViewModel of an individual Email
    ''' </summary>
    Public Class vmPetitioner
    Inherits vmParty
    ''' <summary>
    ''' The Email object backing this ViewModel
    ''' </summary>
    Private petitioner As tblParty
    ''' <summary>
    ''' Initializes a new instance of the EmailViewModel class.
    ''' </summary>
    ''' <param name="detail">The underlying Email this ViewModel is to be based on</param>
    Public Sub New(ByVal detail As tblParty)
    If detail Is Nothing Then
    Throw New ArgumentNullException("detail")
    End If
    Me.petitioner = detail
    End Sub
    ''' <summary>
    ''' Gets the underlying Email this ViewModel is based on
    ''' </summary>
    Public Overrides ReadOnly Property Model() As tblParty
    Get
    Return Me.petitioner
    End Get
    End Property
    ''' <summary>
    ''' Gets or sets the actual email address
    ''' </summary>
    Public Property fldPartyId() As String
    Get
    Return Me.petitioner.fldPartyId
    End Get
    Set(ByVal value As String)
    Me.petitioner.fldPartyId = value
    Me.OnPropertyChanged("fldPartyId")
    End Set
    End Property
    End Class
    End Namespace
    And below is the ViewMode vmParty which vmPetitioner Inherits:
    Imports Microsoft.VisualBasic
    Imports System
    Imports System.Collections.Generic
    Imports CCIS.Model.Case
    Imports CCIS.Model.Party
    Imports CCIS.ViewModel.Helpers
    Namespace CCIS.ViewModel.Case
    ''' <summary>
    ''' Common functionality for ViewModels of an individual ContactDetail
    ''' </summary>
    Public MustInherit Class vmParty
    Inherits ViewModelBase
    ''' <summary>
    ''' Gets the underlying ContactDetail this ViewModel is based on
    ''' </summary>
    Public MustOverride ReadOnly Property Model() As tblParty
    '''' <summary>
    '''' Gets the underlying ContactDetail this ViewModel is based on
    '''' </summary>
    'Public MustOverride ReadOnly Property Model() As tblAdvocate
    ''' <summary>
    ''' Gets or sets the name of this department
    ''' </summary>
    Public Property fldName() As String
    Get
    Return Me.Model.fldName
    End Get
    Set(ByVal value As String)
    Me.Model.fldName = value
    Me.OnPropertyChanged("fldName")
    End Set
    End Property
    ''' <summary>
    ''' Constructs a view model to represent the supplied ContactDetail
    ''' </summary>
    ''' <param name="detail">The detail to build a ViewModel for</param>
    ''' <returns>The constructed ViewModel, null if one can't be built</returns>
    Public Shared Function BuildViewModel(ByVal detail As tblParty) As vmParty
    If detail Is Nothing Then
    Throw New ArgumentNullException("detail")
    End If
    Dim e As tblParty = TryCast(detail, tblParty)
    If e IsNot Nothing Then
    Return New vmPetitioner(e)
    End If
    Return Nothing
    End Function
    End Class
    End Namespace
    And final the code behind of the view vPetitioner:
    <UserControl x:Class="CCIS.View.Case.vPetitioner"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:vm="clr-namespace:CCIS.ViewModel.Case"
    mc:Ignorable="d"
    Width="300">
    <UserControl.Resources>
    <ResourceDictionary Source=".\CompactFormStyles.xaml" />
    </UserControl.Resources>
    <Grid>
    <Border Style="{StaticResource DetailBorder}">
    <Grid>
    <Grid.ColumnDefinitions>
    <ColumnDefinition Width="Auto" />
    <ColumnDefinition Width="*" />
    </Grid.ColumnDefinitions>
    <TextBlock Grid.Column="0" Text="Petitioner:" />
    <ComboBox Grid.Column="1" Width="240" SelectedValuePath="." SelectedItem="{Binding Path=tblParty}" ItemsSource="{Binding Path=PetitionerLookup}" DisplayMemberPath="fldName" />
    </Grid>
    </Border>
    </Grid>
    </UserControl>
    The problem, presumably, seems to be is that the binding path "PetitionerLookup" of the ItemSource of the Combo box in the view vPetitioner exists in a different ViewModel vmCase which serves as an ObservableCollection for MainViewModel. Therefore,
    what I need to Know is how to route the binding path if it exists in a different ViewModel?
    Sir, I look forward to your early reply bringing a workable solution to the problem I face. 
    Warm Regards,
    Arun

  • I want to reference a cell from another table and fill it with text

    I I have several tables that update each other with data from the previous one. These tables are identical and follow each other by date. In each table is a cell (B1) where a persons name goes. the cell (B2) references another cell from a previous dated table. Some days, consecutively, no name is entered in to cell B1. I want cell B2 to always refer back to the most recent table with a name is cell B1. How can this be done?
    I have written this formula (applied to cell B2 of this example) already: IF(Day 1::B1="","",IF(Day 1::B1≥"",Day 1::B1))  but it only references the previous days table and stops there. Some days nothing is inputed into cell B1 causing causing the following days table cell B2 to show "0".
    Monday, April 1
    Driver
    Driver for Today
    David
    Previous Driver (Last person to drive vehicle)
    Tuesday, April 2
    Driver
    Driver for Today
    Previous Driver (Last person to drive vehicle)
    David
    Wednesday, April 3
    Driver
    Driver for Today
    Mike
    Previous Driver (Last person to drive vehicle)
    David
    Thursday, April 4
    Driver
    Driver for Today
    Previous Driver (Last person to drive vehicle)
    Mike
    Friday, April 5
    Driver
    Driver for Today
    Previous Driver (Last person to drive vehicle)
    Mike
    Saturday, April 6
    Driver
    Driver for Today
    Carl
    Previous Driver (Last person to drive vehicle)
    Mike
    Sunday, April 7
    Driver
    Driver for Today
    David
    Previous Driver (Last person to drive vehicle)
    Carl

    "I am having trouble getting the formulas you suggested to work. I am not sure where the problem is coming from. Could you look at the following spreadsheet and tell me where I am going wrong? The following pic shows Day 1 and AUX tables. In Day 1 cell B1 a Drivers name is entered. As you can see by the formula that you gave the B2 is for "Product" not the drivers name "David"."
    Hi br,
    The formulas provided above apply directly to the set of tables shown with them. In each of these tables, the target cell, containing the name of the driver for that day is cell B2 on the table for that day.
    For Day 1, the driver is Huey, found in cell B2 of Table 1, and the cell reference to retrieve the information from that cell is =Table 1::B2
    The formula in B2 of Aux uses INDIRECT to build that cell reference from the fixed text string "Table ", the calculated value ROW()-1, and the text string "::B2"
    ROW() returns the number of the row in which the function sits. In B2, that's row 2, and ROW() returns 2. -1 subtracts 1 from that value, leaving 1. In B2, ROW()-1 returns 1.
    The ampersand is the concatenation operator. It joins the value before it to the value following it. The result is a text string. in the INDIRECT part of the formula, there are two & operators, one after "Table ", the other after ROW()-1.
    "Table " & ROW()-1 & "::B2" with the result of ROW()-1 as the value between the two text strings.
    "Table " & 1 & "::B2"   =   "Table 1::B2"
    INDIRECT( ) takes that text and converts it to the cell address that it represents.
    B2: =IF(LEN(INDIRECT("Table "&ROW()-1&"::B2"))<1,"",INDIRECT("Table "&ROW()-1&"::B2"))
    The first instance on the string in the formula is a test to see if there is anything in the target cell. If not, the formula returns a null string. If there is at least 1 character there, the second instance of INDIRECT is called on to return the name to B2 of the table Aux.
    Compare your formula below:
    B4: =IF(LEN(INDIRECT("Day 3"&ROW()-1&"::B2"))<1,"",INDIRECT("Day 3"&ROW()-1&"::B2"))
    As shown, this is the formula in B4 of your Aux table. In Row 4, ROW() returns 4, and ROW()-1 returns 3.
    So the three elements of the cell address constructed in INDIRECT are "Day 3", 3, and "::B2"
    The cell being addressed is "Day 33::B2", cell B2 on the table named Day 33.
    The error results from there being no table with that name.
    The fix (to the table part of the reference) is to change the first text string to "Day " (including the space after the word Day).
    The fix to replace Product with the driver name is to change "::B2" to ::B1"
    To fit the names of your day tables and the location of the driver's name on each, your formula in B2 should read:
    B2: =IF(LEN(INDIRECT("Day "&ROW()-1&"::B1"))<1,"",INDIRECT("Day "&ROW()-1&"::B1"))
    Regards,
    Barry

  • How to query a table and result together with autonumber

    Hi all
    How to query a table and the result return autonumber for each row together with the table values.
    I have tried rowid but it provide me with characters.
    Tj

    What is your exact requirement?
    If you want the number of rows selected, you can use rownum.
    select rownum, a.* from <table> a;
    Cheers
    Deepak

  • Comment mettre en place mon système(table xy,LabVIEW 7.1,PCI-7344 et le TL78 )?

    Je suis un nouvel utilisateur de le système Motion Control(table xy, TL78, PCI-7344, Windows2000 et LabVIEW 7.1 ).
    Je voudrais contrôler les table xy(MC)à partir de Labview.
    J'ai télécharger Motion Assistant et des programmes de test et de contrôle.
    Lorsque j'essai "program demo".
    Modal Error indique une erreur 70137
    si je lance "Test single axis" alors il m'indique l'erreur 70129 pourtant
    ma configuration de l'axe est "enable".
    Je n'arrive pas à paramètrer le système, malgré mes recherches sur le site de NI.
    Je ne comprends pas comment exporter les signaux sous Labview.
    je suis perdu!!!
    Que dois-je faire??

    Bonjour Neo,
    Pour bien comprendre comment configurer votre système, ci-dessous le "User Manual" de la carte PCI-7344 :
    http://digital.ni.com/manuals.nsf/websearch/B9EBDE089990585986256A29005C5228?opendocument
    Les erreurs que vous avez reçues sont typiquement des erreurs de configuration. Pour les corriger :
    http://digital.ni.com/public.nsf/websearch/80E248BAE0267A4286256A0F00039331?OpenDocument
    Pour votre programme de contrôle de table xy, veuillez bien lire les documents ci-dessous :
    http://zone.ni.com/devzone/conceptd.nsf/webmain/45BBF7386CF123BC862567F200671EC5?opendocument
    http://forums.ni.com/ni/board/message?board.id=240&message.id=1332&requireLogin=False
    Je reste à votre disposition.
    Cordialement,
    Sanaa T
    National Instruments France
    Sanaa T.
    National Instruments France
    #adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
    >> http://www.nidays.fr/images/081110_ban_nidays09_468X60.gif

  • Passing values to an internal table and use it with the table painter

    Hi,
    I have seen this topic here before but the answers didn't help me. Maybe I,m doing something wrong.
    The problem is that I defined the following structure on the |Types| tab of the |Global Definitions| section:
    TYPES: BEGIN OF DETAILS,
           EBELP  TYPE EKPO-EBELP,
           BSMNG  TYPE EBAN-BSMNG,
           LFDAT  TYPE RM06P-LFDAT,
    END OF DETAILS.
    Then defined the following definition on the |Global Data| section:
    WA_DETAILS TYPE STANDARD TABLE OF DETAILS WITH HEADER LINE
    The problem is that when I try to assign a value to one of the fields in the program code like this:
    LOOP AT WA_EKPO.
         WA_DETAILS-EBELP = WA_EKPO-EBELP.
         WA_DETAILS-EMATN = WA_EKPO-EMATN.
         MODIFY WA_DETAILS.
    ENDLOOP.
    gives me the following error:
    "WA_DETAILS" is not an internal table -the "OCCURS n" specification is missing.
    Then if I add the "OCCURS 10" to the definition of the Global Data the error "OCCURS 10" is not expected.
    How can I define, assign values and use as a parameter an internal table defined with types for use it with the table painter?

    Hi,
    if it is one record in wa_details. you can directly write as follows..
    REPORT  ZCR_TEST1                               .
    TYPES: BEGIN OF details,
              ebelp TYPE ekpo-ebelp,
              bsmng TYPE eban-bsmng,
              lfdat TYPE rm06p-lfdat,
              ematn TYPE ekpo-ematn,
           END OF details.
    DATA: wa_details TYPE STANDARD TABLE OF details WITH HEADER LINE,
          wa_ekpo    TYPE STANDARD TABLE OF details WITH HEADER LINE.
    wa_details-ebelp = '1'.
    append wa_details.
    wa_ekpo-ebelp = '3'.
    append wa_ekpo.
    LOOP AT wa_ekpo.
      wa_ekpo-ebelp = wa_details-ebelp.
      wa_ekpo-ematn = wa_details-ematn.
      modify wa_ekpo.
    endloop.
    Normally it wont be one record, so u need to put <b>read statement with key</b> in LOOP and ENDLOOP.
    Regards,
    Sriram

  • How can I control stepping motor with PCI-7344 & UMI-7764? And I want to know the simplest circuit that I can do by myself?

    Now I don't want to by commercial stepping motor driver, I want to do it by myself. I want to know the simplest driver circuit to drive and control my stepping motor (+5V 4 phases).

    From the 7344's perspective, in open loop stepper mode, the only necessary outputs are the pulse train for steps and a TTL flag for direction. You can also set it for CW/CCW mode, which will output two separate pulse trains: one for clockwise motion, one for counter-clockwise motion.
    If you only need to decode the signals into four phases and not amplify them above 5V, then a small IC might work for you (as long as you don't need a lot of current). A reconfigurable FPGA could be programmed to decode the incoming signal and output the four phases pretty easily. However, I honestly believe your best bet is just to buy a recommended amplifier for the motors.
    Good Luck
    Kyle V
    Applications Engineer
    National Instruments

  • Create a Z-table and fill it with value and transport everything

    Hi
    I would like to create a Z-table, fill it with values and then transport everything.
    This table will not be updated in the productions system.
    Delivery class = C Customizing table, maintenance only by cust., not SAP import
    Data Browser/table view maint = Display/maintenance allowed
    Field: MANDT, etc. etc.
    Technical settings: Data class = APPL1, Size = 0, Buffering switched on, Fully buffered.
    I also create the Table maintenance generator
    When I fill my table with values, these will not be saved in my change request.
    What I'm doing wrong?
    Thanks   //  Peter B

    Go to
    se11>utilities>table maintenance generator-->there u fill
    Fungroup group (inthe function group u give any a z name related to ur table name it create automatically)
    package
    maintenance screen type and screen name
    After this save and activate.
    Then goto
    Utilities>TABLE CONTENTS>CREATE ENTERIES

  • Dynamic force control using linear servo actuator + load cell

    Hello,
    I am designing a test fixture which will allow us to test the performance of actuators we install in our products. I need to apply a constant load to the actuator while it is extending/retracting. I would like to be able to use a linear servo actuator and a load cell on the same axis as the UUT to provide and monitor the load. The actuator under test does not travel at high speeds, its max speed is approximately 1in./sec.
    I need to be able to maintain a constant load while the actuator is moving. Therefore  I'll need some kind of closed loop system to maintain a velocity such that the load being reported from the load cell is equal to the expected load as the actuator is moving.
    I am trying to figure out how to best implement this in a cost effective and time-saving way. I have not purchased any hardware at the moment so am open to suggestions. We do have LabView 2009 with all the toolkits. Would it be best to implement this using a motion controller card or would I be able to get good results using a standard DAQ?
    Message Edited by fnaeem on 02-05-2010 05:58 PM

    As you have stated correctly, you will need a deterministic closed loop system to accomplish this task. The most cost efficient while reliable solution for this purpose is a motion control board like the PCI-7352. This board provides quadrature encoder inputs for positioning tasks and analog inputs for any other type of control. Torque/force control is a very typical task for this board and it provides a simple API and useful configuration tools.
    If cost savings are a primary goal, you could also use a PCI-7342, but for your application I would recommend the PCI-7352, as the PCI-7342 provides only 12-bit ADCs, while the PCI-7352 provides 16-bit ADCs, resulting in a much better resolution of your force feedback signal.
    I hope that helps,
    Jochen Klier
    National Instruments

  • PCI-7344 Servo Torque Control

    Hi,
    Is there any body to have controlled torque with PCI-7344?
    I have two servos to keep servo's torque constant as a target value. The target torque can be changed on cerain conditions.
    So the servo's torque reaches the target, it shoud be stopped at that postion unless any change in servo's torque happens. If the servo's torque is below the target, it shoud be move forward to get more torque and vise versa also.
    Now, I would like to know how to use PCI-7344 axis to control torque.

    Hi Choijs,
    It's really the motor amplifier that is doing the torque control rather than the motion controller.
    Most amplifiers today are current(torque) amplifiers. In addition, a lot of amplifiers can operate in either torque mode, or velocity mode.
    Now, the reason why torque amplifiers are also called current amplifiers is that torque is proportional to current. When the motion controller outputs a command voltage, it's up to the amplifier to convert that voltage into current, and it's up to the amplifiers internal control loop to hold that current. Essentially, the amplifier controls the torque via a current transformer. When there is a difference between the desired torque, and the actual torque from the current feedback, the amplifier will adjust the output vo
    ltage to accomdate for the difference.
    That's probably too much information, but you just need to know that the torque control is actually done at the amplifier level, and when you are using an amplifier in torque mode, all this control is done for you by the amplifier. So, there is nothing the 7344 needs to do.
    Another way to think about this is whenever you tell a motor to go to a specified position and stay there (using a torque amplifier). You are doing torque control automatically, since it takes effort to hold a motor at a specific position. The control loop on the amplifier is constantly doing what you have described, without the 7344 knowing what it's doing.
    Hope this helps.
    Ken Sun
    Applications Engineer
    National Instruments

  • Stepper motor positioning control system

    hello
    Iam building positioning control system using a stepper motor, and I need to know what are some position sensors available to feedback the position of the stepper motor.. Also I need to know how can use a C code in the labview...For example, if I have an algorithm developed in C; How can I use that code in the labview..
    Thanks
    Shaham

    Shaham,
    Below is a link to several encoders that NI provides specifically for stepper motors.
    Quadrature Encoder:
    http://sine.ni.com/nips/cds/view/p/lang/en/nid/205321
    As far as the C code is concerned, this can be accomplished in two different ways, provided that the code is first placed in a dll file.  
    First, you can import the dll into a project library, by selecting Tools»Import»Shared Library.  This option is good for code that will be used often, as it creates wrapper VIs for each function that can be reused.
    Secondly, a "Call Library Function" node can be used to call a C function from a dll.  This procedure is shown in the following tutorial, and is useful when code only needs to be called a few times.
    http://decibel.ni.com/content/docs/DOC-9069
    I hope this helps!
    Drew
    Drew T.
    NIC AE Specialist

  • Exception raised while trying to join Table and Stream

    I have written a sample Project to fetch the data from a Table and join it with the Input Stream. Followed the same procedure specified at http://download.oracle.com/docs/cd/E17904_01/doc.1111/e14301/processorcql.htm#CIHCCADG
    I am getting the exception:
    <Error> <Deployment> <BEA-2045016> <The application context "Plugin" could not be started. Could not initialize component "<unknown>":
    Invalid statement: "select PROMOTIONAL_ORDER.ORDER_ID as orderId ,PROMOTIONAL_ORDER.UFD_ID as ufdId, PROMOTIONAL_ORDER.WEB_USER_ID as webUserId
                   from helloworldInputChannel [now] as dataStream, PROMOTIONAL_ORDER where >>PROMOTIONAL_ORDER.ORDER_ID = dataStream.ORDER_ID<<"
    Cause: wrong number or types of arguments in call to et
    Action: Check the spelling of the registered function. Also confirm that its call is correct and its parameters are of correct datatypes.>
    If the where condition is removed then the application runs fine fetching the data from the Tables.
    Following is the config.xml for processor:
    ======================================
    <?xml version="1.0" encoding="UTF-8"?>
    <n1:config xmlns:n1="http://www.bea.com/ns/wlevs/config/application">
         <processor>
              <name>helloworldProcessor</name>
              <rules>
                   <query id="dummyRule"> <![CDATA[
                   select PROMOTIONAL_ORDER.ORDER_ID as orderId ,PROMOTIONAL_ORDER.UFD_ID as ufdId, PROMOTIONAL_ORDER.WEB_USER_ID as webUserId
                   from helloworldInputChannel [now] as dataStream, PROMOTIONAL_ORDER where PROMOTIONAL_ORDER.ORDER_ID = dataStream.ORDER_ID
                   ]]></query>
              </rules>
         </processor>
    </n1:config>
    Following is the assembly file:
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:osgi="http://www.springframework.org/schema/osgi"
         xmlns:wlevs="http://www.bea.com/ns/wlevs/spring"
         xsi:schemaLocation="
    http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/osgi
    http://www.springframework.org/schema/osgi/spring-osgi.xsd
    http://www.bea.com/ns/wlevs/spring
    http://www.bea.com/ns/wlevs/spring/spring-wlevs-v11_1_1_3.xsd">
         <wlevs:event-type-repository>
              <wlevs:event-type type-name="CorpInterfaceEvent">
                   <wlevs:class>com.bea.wlevs.event.example.helloworld.CorpInterfaceEvent</wlevs:class>
              </wlevs:event-type>
              <wlevs:event-type type-name="PromotionalOrderEvent">
                   <wlevs:properties>
                        <wlevs:property name="ORDER_ID" type="bigint" />
                        <wlevs:property name="UFD_ID" type="bigint"/>
                        <wlevs:property name="WEB_USER_ID" type="bigint" />
                   </wlevs:properties>
              </wlevs:event-type>
              <wlevs:event-type type-name="DummyEvent">
                   <wlevs:properties>
                        <wlevs:property name="ORDER_ID" type="bigint" />
                        <wlevs:property name="UFD_ID" type="bigint"/>
                        <wlevs:property name="WEB_USER_ID" type="bigint" />
                   </wlevs:properties>
              </wlevs:event-type>
         </wlevs:event-type-repository>
         <!--
              Adapter can be created from a local class, without having to go
              through a adapter factory
         -->
         <wlevs:adapter id="helloworldAdapter"
              class="com.bea.wlevs.adapter.example.helloworld.HelloWorldAdapter">
              <wlevs:instance-property name="message"
                   value="HelloWorld - the current time is:" />
         </wlevs:adapter>
         <wlevs:channel id="helloworldInputChannel" event-type="CorpInterfaceEvent">
              <wlevs:listener ref="helloworldProcessor" />
              <wlevs:source ref="helloworldAdapter" />
         </wlevs:channel>
         <!-- The default processor for OCEP 11.0.0.0 is CQL -->
         <wlevs:processor id="helloworldProcessor">
              <wlevs:table-source ref="PROMOTIONAL_ORDER" />
         </wlevs:processor>
         <wlevs:channel id="helloworldOutputChannel" event-type="CorpInterfaceEvent"
              advertise="true">
              <wlevs:listener>
                   <bean class="com.bea.wlevs.example.helloworld.HelloWorldBean" />
              </wlevs:listener>
              <wlevs:source ref="helloworldProcessor" />
         </wlevs:channel>
         <wlevs:table id="PROMOTIONAL_ORDER" event-type="PromotionalOrderEvent"
              data-source="wlevsDatasource" />
    </beans>
    CorpInterfaceEvent.java:
    package com.bea.wlevs.event.example.helloworld;
    public class CorpInterfaceEvent {
    private Long orderId;
    public Long ORDER_ID;
    private Long ufdId;
    private Long webUserId;
    public CorpInterfaceEvent(){
         super();
    public Long getOrderId() {
         return orderId;
    public void setOrderId(Long orderId) {
         this.orderId = orderId;
    public Long getORDER_ID() {
         return ORDER_ID;
    public void setORDER_ID(Long oRDERID) {
         ORDER_ID = oRDERID;
    public Long getUfdId() {
         return ufdId;
    public void setUfdId(Long ufdId) {
         this.ufdId = ufdId;
    public Long getWebUserId() {
         return webUserId;
    public void setWebUserId(Long webUserId) {
         this.webUserId = webUserId;
    Adapter:
    /* (c) 2006-2009 Oracle. All rights reserved. */
    package com.bea.wlevs.adapter.example.helloworld;
    import java.math.BigDecimal;
    import java.text.DateFormat;
    import java.util.Date;
    import com.bea.wlevs.ede.api.RunnableBean;
    import com.bea.wlevs.ede.api.StreamSender;
    import com.bea.wlevs.ede.api.StreamSource;
    import com.bea.wlevs.event.example.helloworld.CorpInterfaceEvent;
    public class HelloWorldAdapter implements RunnableBean, StreamSource {
    private static final int SLEEP_MILLIS = 300;
    private DateFormat dateFormat;
    private String message;
    private boolean suspended;
    private StreamSender eventSender;
    public HelloWorldAdapter() {
    super();
    dateFormat = DateFormat.getTimeInstance();
    /* (non-Javadoc)
    * @see java.lang.Runnable#run()
    public void run() {
    suspended = false;
    while (!isSuspended()) { // Generate messages forever...
    generateHelloMessage();
    suspend();// This would generate the messages only once..
    try {
    synchronized (this) {
    wait(SLEEP_MILLIS);
    } catch (InterruptedException e) {
    e.printStackTrace();
    public void setMessage(String message) {
    this.message = message;
    private void generateHelloMessage() {
    String message = this.message + dateFormat.format(new Date());
    CorpInterfaceEvent event = new CorpInterfaceEvent();
    //event.setOrderId(1);
    event.setORDER_ID(Long.valueOf(1));
    eventSender.sendInsertEvent(event);
    /* (non-Javadoc)
    * @see com.bea.wlevs.ede.api.StreamSource#setEventSender(com.bea.wlevs.ede.api.StreamSender)
    public void setEventSender(StreamSender sender) {
    eventSender = sender;
    /* (non-Javadoc)
    * @see com.bea.wlevs.ede.api.SuspendableBean#suspend()
    public synchronized void suspend() {
    suspended = true;
    private synchronized boolean isSuspended() {
    return suspended;
    Kindly let me know if you need further info.

    Issue identified. The datatypes of the stream order id and the one from the tables differ.
    The Long could not be casted to the bigint format of CQL.
    On changing the datatype of ORDER_ID in the CorpInterfaceEvent to int, the join is successful.

  • Missing Tables and Indexes

    Hi all,
    we have checked "missing table and indexs" status with DBACOCKPIT and there it show 362 Indexes are not created.
    all are the standard table indexes.
    we have updated the indexes and statistics with BRCONNECT also.and its complited successfully.after this also "it show 362 Indexes are not created". we are using SOLARIS OS and oracle database.
    Can anybody help me out how to rebuilt the missing indexes .....plz mention the steps.
    Thanks,
    Rableen   khurana

    Hi,
    Refer to the note and lins on how to fix it
    Note 1320008 - DBA Cockpit: Selection in "Missing Tables and Indexes"
    http://wiki.sdn.sap.com/wiki/display/TechTSG/(DB)IndexReportedasMissing
    http://help.sap.com/saphelp_nwpi711/helpdata/en/33/5b277b8b0745b8b60e67ca04c77ebb/content.htm
    Thanks,
    Arjun

  • Spatial Tables and Remote Queries

    Hi Experts,
    Can anyone explain me when and where to use Spatial Tables and Remote Queries with some examples.
    Thanks in advance.

    Hi,
    there are some nice demos from Andrejus:
    http://andrejusb.blogspot.com/search/label/Spatial
    Hope it helps,
    Friedhold

Maybe you are looking for

  • How can I view .mts files in the Photoshop Organizer?  I have Photoshop 8.0.

    I have Adobe Photoshop 8.0.  I cannot view my Panasonic Lumix .mts video files from the organizer.  What do I need to do to be able to view my video files?  Thank you.

  • TS3274 New IPAD Power plug gets hot

    I have a one week old new IPAD. The power plug that comes with the IPAD gets very hot upon charging (the bulk portion that gets into wall socket). I had IPAD2 and never faced this issue? Should I take it to an Apple Shop for replacement?

  • Business Rules - Configure Entities/Scope without elimination rules.

    Hello Experts, I am working on BPC 10 and have set many elimination rules that apply to all "SCOPE". Is there a way to configure that for a given "SCOPE" elimination rules may be nullified, you bone not apply to a SCOPE in particular? Thanks for your

  • Reg:Accessing webservices in BSP

    Hi All, I have imported a web service into my bsp application and I am using one of its methods.I am able to send input to the model method but unable to get back the response from the model i.e after execution. Can anyone help me in this issue.Point

  • Problem with ios8

    Why is it so difficult to get in contact with Apple when a download ios8,causes problems ?