Python NIdaqmx DO-fråga

C, C++, Pascal, Assembly, Raspberry, Java, Matlab, Python, BASIC, SQL, PHP, etc.
Användarvisningsbild
Icecap
Inlägg: 26150
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Python NIdaqmx DO-fråga

Inlägg 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.
Senast redigerad av Icecap 11 december 2023, 13:37:21, redigerad totalt 1 gång.
H.O
Inlägg: 5716
Blev medlem: 19 mars 2007, 10:11:27
Ort: Ronneby

Re: Python NIdaqmx DO-fråga

Inlägg 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
Användarvisningsbild
Icecap
Inlägg: 26150
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: Python NIdaqmx DO-fråga

Inlägg av Icecap »

TACK till tusan! Det löser en del för mig.
Skriv svar