使用Python控制VeriStand设置模型的参数值

更新 Nov 14, 2025

环境

软件

  • VeriStand

程式语言

  • Python

模型是一种数学函数,它表示系统的输出如何受系统输入的影响。模型包含多个接口,例如输入端口、输出端口、参数和信号。参数是模型内部使用的变量。要通过Python设置参数值,不能使用`SetSingleChannelValue()``SetChannelValues()` API。

要设置参数值,您应该在ModelManager2会话中使用SetSignalParameterValue(target, name, value) 或SetMultipleParameterValues( target, names, values)。target是VeriStand工程中的目标名称。“VDC_HIL”是此 VeriStand工程的目标名称。

name是参数名称。由于参数分为全局参数和局部参数两种类型,因此在VeriStand工程中,根据参数的层次结构获取参数名称并不容易。要获取参数名称,可以使用GetParametersList(target) 方法。

这里有一个Python脚本,可以用来获取上述模型的参数列表。

from niveristand.legacy import NIVeriStand

def Control_VeriStand_debug():
    workspace = NIVeriStand.Workspace2("localhost")
    modelM2 = NIVeriStand.ModelManager2("localhost")
    project_path = os.path.abspath("D:\Work\VeriStand\VeriStand Projects\Default Project\Default Project.nivssdf")
    print (project_path)
    print("Deploying system definition...")
    workspace.ConnectToSystem(project_path, True, 60000)
    print("System definition deployed...")

    time.sleep(4)
    parameters = modelM2.GetParametersList("VDC_HIL")
    print(parameters)

    time.sleep(5) 
    print("Undeploying system definition...")
    workspace.DisconnectFromSystem('', True)
    print("System definition undeployed...")

if __name__ == '__main__':
    Control_VeriStand_debug()

从输出窗口中,您可以获取到参数列表。

然后,您可以更新Python脚本,使用SetSignalParameterValue(target, name, value) 逐个设置参数值。

from niveristand.legacy import NIVeriStand

def Control_VeriStand_debug():
    workspace = NIVeriStand.Workspace2("localhost")
    modelM2 = NIVeriStand.ModelManager2("localhost")
    project_path = os.path.abspath("D:\Work\VeriStand\VeriStand Projects\Default Project\Default Project.nivssdf")
    print (project_path)
    print("Deploying system definition...")
    workspace.ConnectToSystem(project_path, True, 60000)
    print("System definition deployed...")

    time.sleep(1)
    print("Set Base Parameter Value")
    modelM2.SetSingleParameterValue("VDC_HIL","Base_Para",3.0)
    time.sleep(1)
    print("Set Model Parameter Value")
    modelM2.SetSingleParameterValue("VDC_HIL","test_para/test_para/Model_Para",2.0)

    time.sleep(2) 
    print("Undeploying system definition...")
    workspace.DisconnectFromSystem('', True)
    print("System definition undeployed...")

if __name__ == '__main__':
    Control_VeriStand_debug()

您还可以使用SetMultipleParameterValues(target, names, values) 设置所有参数值。

 modelM2.SetMultipleParameterValues("VDC_HIL",["Base_Para","test_para/test_para/Model_Para"],[3.0,2.0])