09-06-2012 02:52 AM
Hi all
I am writing a program in visual basic C# to control stepper motors through the NI6211. The stepper motors are connected to a control card. And the control card is connected to a 74HC595 which is then connected to the 6211. I was wondering if I could get some help with the program to declare my 4 outputs of the 6211. Do I need 4 writers, 4 channels and 4 tasks? My code so far can be seen below:
Cursor.Current = Cursors.WaitCursor;
try
{
using (Task digitalWriteTask = new Task())
{
// Create an Digital Output channel and name it
digitalWriteTask.DOChannels.CreateChannel("Dev1/Port1/line0", "DataPin",
ChannelLineGrouping.OneChannelForEachLine);
digitalWriteTask.DOChannels.CreateChannel("Dev1/Port1/line1", "ParallelClock",
ChannelLineGrouping.OneChannelForEachLine);
digitalWriteTask.DOChannels.CreateChannel("Dev1/Port1/line2", "SerialClock",
ChannelLineGrouping.OneChannelForEachLine);
digitalWriteTask.DOChannels.CreateChannel("Dev1/Port1/line3", "Strobe",
ChannelLineGrouping.OneChannelForEachLine);
// Write digital port data
DigitalSingleChannelWriter DataPin = new DigitalSingleChannelWriter(digitalWriteTask.Stream);
DigitalSingleChannelWriter SerialClock = new DigitalSingleChannelWriter(digitalWriteTask.Stream);
DigitalSingleChannelWriter ParallelClock = new DigitalSingleChannelWriter(digitalWriteTask.Stream);
DigitalSingleChannelWriter Strobe = new DigitalSingleChannelWriter(digitalWriteTask.Stream);
SerialClock.WriteSingleSampleSingleLine(true, false);
ParallelClock.WriteSingleSampleSingleLine(true, false);
for (int i = 0; i < 8; i++)
{
if (motor_state & 0x80)
{
DataPin.WriteSingleSampleSingleLine(true, true);
}
else
{
DataPin.WriteSingleSampleSingleLine(true, false);
}
motor_state <<= 1;
SerialClock.WriteSingleSampleSingleLine(true, true);
SerialClock.WriteSingleSampleSingleLine(true, false);
}
ParallelClock.WriteSingleSampleSingleLine(true, true);
ParallelClock.WriteSingleSampleSingleLine(true, false);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
Cursor.Current = Cursors.Default;
}
09-06-2012 03:24 AM
Visual Express, not visual basic! sorry
10-06-2012 09:32 AM