在 TestStand 和 Python 之間傳遞資料時發生錯誤 -17311

更新 Jan 26, 2024

產品資訊

軟體

  • TestStand

程式語言

  • Python

問題敘述

我在 Python 中有一個函式,它會回傳 Tuple of tuples,我想將此資料傳遞給 TestStand:
Python是範例.JPG

我可以將包含相同資料類型元素的 Tuple 傳到具有相同資料類型變數的 TestStand 容器中:
ContainerSameDataType.JPG

但是當我嘗試將包含不同資料類型的 Tuple 傳到具有相應資料類型的 TestStand 容器時:
ContainerDiffDataType.JPG

我收到以下執行時錯誤:

Error in 'Return Value'

Failed when trying to convert field of tuple at index: X. Inner error: Failed when trying to convert field of tuple at index: Y. Inner error: <Class 'TypeError'> bad argument type for built-in operation

-17311; Could not accept the parameters passed in.


此錯誤顯示在以下對話框中。
錯誤.png

為什麼會發生這種情況?如何將包含不同資料類型的 Tuple 從 Python 傳遞到 TestStand?

解決方案

Tuple 是索引資料結構, Tuple 每個元素的索引應要與 TestStand 容器變數中相同,以便在對應變數中接收正確的資料類型。

所以在建立包含變數的容器後,請確保您在「Variables 」區中看到它們按索引排序,而不是按字母順序排序。
您可以在「Variables 」區的「Name」欄位中看到這一點。如果您在Name 這列上看到箭頭,則表示變數按字母順序排序。若要變更訂單模式,請按一下「Name」列。

例如,這是使用字母順序的變數順序(請注意「名稱」列上的箭頭):
按字母順序排列.JPG

這是按索引排序的相同容器的順序:
索引.JPG

若是TestStand中索引順序與 Tuple 中的順序不同, TestStand 將顯示執行時錯誤。

在變數的索引順序模式下,透過拖放元素以與 Python 程式碼相同的順序重新組織元素,能讓 TestStand 接收資料並將值傳遞給容器中的對應且正確的元素。

相關資訊

其他索引資料類型(例如 Arrays 或 List)也可能發生這種情況。