Я пытаюсь прочитать загрузочную ячейку NI cDAQ 9174 с модулем NI 9219 в первом слоте (cDAQ 9174), но я получаю эту ошибку:
In [1]: runfile('C:/Users/Desktop/Testing/Training/Python/Spyder Data
Analysis/Loadcells/Load cell trial.py',
wdir='C:/Users/Desktop/Testing/Training/Python/Spyder Data
Analysis/Loadcells')
Traceback (most recent call last):
File "<ipython-input-1-2d4c817735fa>", line 1, in <module>
runfile('C:/Users/Desktop/Testing/Training/Python/Spyder Data
Analysis/Loadcells/Load cell trial.py',
wdir='C:/Users/Desktop/Testing/Training/Python/Spyder Data
Analysis/Loadcells')
File "C:\Users\AppData\Local\Continuum\anaconda3\lib\site-
packages\spyder_kernels\customize\spydercustomize.py", line 668, in runfile
execfile(filename, namespace)
File "C:\Users\AppData\Local\Continuum\anaconda3\lib\site-
packages\spyder_kernels\customize\spydercustomize.py", line 108, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)
File "C:/Users/Desktop/Testing/Training/Python/Spyder Data
Analysis/Loadcells/Load cell trial.py", line 35, in <module>
custom_scale_name=None)
File "C:\Users\AppData\Local\Continuum\anaconda3\lib\site-
packages\nidaqmx\_task_modules\ai_channel_collection.py", line 743, in
add_ai_force_bridge_table_chan
min_val, max_val, units.value, bridge_config.value,
AttributeError: 'int' object has no attribute 'value'
МысльЭта нагрузка будет отображаться на графике до тех пор, пока 30 образцов не будут отобраны и остановлены.Однако я могу прочитать другой модуль из NI 9174, 3-й модуль (NI 9211), который имеет 3 термопары без каких-либо проблем, и график будет считывать термопары (30 образцов и стоп).
API предоставляет паруразличные способы добавления канала измерения силы, и я пробовал несколько и до сих пор не получаю чтения.
Ссылка здесь: https://nidaqmx -python.readthedocs.io / en / latest / ai_channel_collection.html
В идеале, я хотел бы использовать метод .add_ai_force_bridge_table_chan()
, потому что у меня есть таблица калибровки для добавления информации, но когда я получил ошибку выше, я также попробовал add_ai_force_bridge_two_point_lin_chan()
, но также получилошибка.Любая помощь с благодарностью!
Я также хотел упомянуть, что у меня есть программа LabVIEW, которая будет считывать загрузочную ячейку, чтобы она работала.Идея состоит в том, чтобы в конечном итоге перенести весь контроль в Python, чтобы я мог ускорить свой анализ данных после тестирования, а также я подумал, что это будет весело!
Код термопары, который работает:
#import the national instrument wrapper and plotting
import nidaqmx
import matplotlib.pyplot as plt
#keep the plat from closing between data sets
plt.ion()
i = 0
#code portion to read from the NI instrument
with nidaqmx.Task() as task:
task.ai_channels.add_ai_thrmcpl_chan("cDAQ3Mod3/ai0:2")
while i<30:
data = task.read(number_of_samples_per_channel=1)
plt.scatter(i,data[0],c='r')
plt.scatter(i,data[1],c='b')
plt.scatter(i,data[2],c='g')
plt.pause(0.05)
plt.show()
i=i+1
print(data)
Код Loadcell, который выдает ошибку:
import nidaqmx
import matplotlib.pyplot as plt
#keep the plat from closing between data sets
plt.ion()
i = 0
#code portion to read from the NI instrument
with nidaqmx.Task() as task:
#adding linear table of values for load cell reading: loadcell SN 666133
task.ai_channels.add_ai_force_bridge_table_chan("cDAQ3Mod3/ai0",
name_to_assign_to_channel="Loadcell",
min_val=-4000.0, max_val=4000.0, units= 15876,
bridge_config=10182,
voltage_excit_source=10200,
voltage_excit_val=2.5, nominal_bridge_resistance=350.0,
electrical_vals= [-19183, 0, 0.3383, 0.7703, 1.1525, 1.535,
1.9183],
electrical_units=15897,
physical_vals=[-4000, 0, 800, 1600, 2400, 3200, 4000],
physical_units=15876,
custom_scale_name=None)
while i<30:
data = task.read(number_of_samples_per_channel=1)
plt.scatter(i,data[0],c='r')
#plt.scatter(i,data[1],c='b')
plt.pause(0.05)
plt.show()
i=i+1
print(data)