Sida 1 av 1

Python NIdaqmx DO-fråga

Postat: 11 december 2023, 11:52:18
av Icecap
Jag har tidigare gjort vårat testprogram som använder en NI USB-6510.

Jag styr digitale output-pinnar (DO), en åt gången för att slå på/av funktioner.

Men nu ska jag t.ex. välja 1 av 16 adresser medelst 4 bits - som t.ex. är P1.0-3 o det hade varit trevligt att kunde skapa en kanal där jag kunde skriva de 4 bit i ett svep.

Min rutin för att styra ström On/Off till testen är:
def DUT_Power(self, X):
task = nidaqmx.Task()
task.do_channels.add_do_chan('Dev1/port1/line1')
task.start()
if X:
task.write(True)
else:
task.write(False)
task.stop()
task.close()

Jag vet om att jag kan göra detta i LabView - men jag är inte alls kompis med LabView.

Mitt alternativ är att skriva d 4 bit var för sig - men om någon känner till om/hur det kan göras vore jag väldig glad för tips.

Re: Python NIdaqmx DO-fråga

Postat: 11 december 2023, 12:20:00
av H.O
Kanske så här:

Kod: Markera allt

def DUT_Power(self, X):
task = nidaqmx.Task()
task.do_channels.add_do_chan('Dev1/port1/line0:3')
task.start()
if X:
  task.write(8)   # Eller möjligen (∞)
else:
  task.write(3)  # Eller möjligen ([3])
task.stop()
task.close()
EDIT: Du kanske behöver importera

Kod: Markera allt

from nidaqmx.constants import LineGrouping
EDIT2:
https://github.com/ni/nidaqmx-python/bl ... w_timed.py

Re: Python NIdaqmx DO-fråga

Postat: 11 december 2023, 13:36:29
av Icecap
TACK till tusan! Det löser en del för mig.