如何通过NI Veristand python API将excel工作表传递给模型?

2024-09-24 02:21:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用pythonapi在niveristand中自动化测试。我必须使用excel工作表通过测试用例,但API只支持几种数据类型,其中一种是DoubleValueArray,因此我尝试将数据从excel复制到工作表,然后将其复制到DoubleValueArray,但每当我尝试这样做时,都会遇到索引器

代码段:

from niveristand import nivs_rt_sequence, NivsParam, run_py_as_rtseq
from niveristand.clientapi import BooleanValue, ChannelReference, DoubleValue, DoubleValueArray
from niveristand.library import multitask, task, wait
import openpyxl
#import copy


path = "D:\Book1.xlsx"
wb = openpyxl.load_workbook(path)


x = []

for i in range(1,4):
    sheet = wb["S"+ str(i)]
    #ws = rwb.create_sheet('Result'+str(i))

    for j in range(1,4):

        y = (sheet.cell(row=(j),column=1).value)
        x.append(y)

@NivsParam('In1', DoubleValue(0), NivsParam.BY_REF)
@NivsParam('Out1', DoubleValue(0), NivsParam.BY_REF)
@nivs_rt_sequence
def sine(In1, Out1):
    setup_complete = BooleanValue(False)
    setup_succeeded = BooleanValue(True)
    z = DoubleValueArray()
    z = x.copy()
    with multitask() as mt:
        @task(mt)
        def increment():
            In1.value = 1
            wait(DoubleValue(5))
            for k in z:
                In1.value = k
                wait(DoubleValue(3))
            setup_complete.value = True

        #@task(mt)
        #def check():
         #   pass
    return setup_succeeded.value


我最初认为这是一个按价值/参考复制的问题,但事实并非如此

如果有人知道更好的方法将数据从excel表传递到veristand模型,我也会很感激

提前谢谢


Tags: infromimportfortaskvaluesetupexcel