PyVisa教程-用Python控制儀器【6,PyVISA shell】

原文鏈接:https://pyvisa.readthedocs.io/en/stable/

從Lantz項目轉換而來的PyVISA Shell,是一個和儀器進行交互的基於文本的用戶界面。可以在命令行輸入一下命令進入:

python -m visa shell

或者

pyvisa-shell

界面上將顯示:

Welcome to the VISA shell. Type help or ? to list commands.

(visa)

任何時候,可以輸入?或者help獲取有效命令列表:

(visa) help

Documented commands (type help <topic>):

========================================

EOF attr close exit help list open query read timeout write

(visa) help list

List all connected resources.

利用Tab鍵填充也是支持的。

最基本的任務是列出連接的設備:

(visa) list

( 0) ASRL1::INSTR

( 1) ASRL2::INSTR

( 2) USB0::0x1AB1::0x0588::DS1K00005888::INSTR

每個設備或端口都有一個數值,這個數值可以在後續的命令中使用。打開串口1:

(visa) open 0

ASRL1::INSTR has been opened.

You can talk to the device using "write""read" or "query.

The default end of message is added to each message

(open) query *IDN?

Some Instrument, Some Company.

輸入timeout獲取讀命令或者獲取命令的超時值:

(open) timeout

Timeout: 2000ms

例如,設置超時值爲1500ms(1.5s):

(open) timeout 1500

Done

也可以獲取visa設備所有參數的列表:

(open) attr

+-----------------------------+------------+----------------------------+----------------------+

|          VISA name          |  Constant  |        Python name         |         val          |

+-----------------------------+------------+----------------------------+----------------------+

| VI_ATTR_ASRL_ALLOW_TRANSMIT | 1073676734 |       allow_transmit       |          1           |

|    VI_ATTR_ASRL_AVAIL_NUM   | 1073676460 |      bytes_in_buffer       |          0           |

|      VI_ATTR_ASRL_BAUD      | 1073676321 |         baud_rate          |         9600         |

|    VI_ATTR_ASRL_BREAK_LEN   | 1073676733 |        break_length        |         250          |

|   VI_ATTR_ASRL_BREAK_STATE  | 1073676732 |        break_state         |          0           |

|    VI_ATTR_ASRL_CONNECTED   | 1073676731 |                            |  VI_ERROR_NSUP_ATTR  |

|    VI_ATTR_ASRL_CTS_STATE   | 1073676462 |                            |          1           |

|    VI_ATTR_ASRL_DATA_BITS   | 1073676322 |         data_bits          |          8           |

|    VI_ATTR_ASRL_DCD_STATE   | 1073676463 |                            |          1           |

|  VI_ATTR_ASRL_DISCARD_NULL  | 1073676464 |        discard_null        |          0           |

|    VI_ATTR_ASRL_DSR_STATE   | 1073676465 |                            |          1           |

|    VI_ATTR_ASRL_DTR_STATE   | 1073676466 |                            |          1           |

|     VI_ATTR_ASRL_END_IN     | 1073676467 |         end_input          |          2           |

|     VI_ATTR_ASRL_END_OUT    | 1073676468 |                            |          0           |

|   VI_ATTR_ASRL_FLOW_CNTRL   | 1073676325 |        flow_control        |          0           |

|     VI_ATTR_ASRL_PARITY     | 1073676323 |           parity           |          0           |

|  VI_ATTR_ASRL_REPLACE_CHAR  | 1073676478 |        replace_char        |          0           |

|    VI_ATTR_ASRL_RI_STATE    | 1073676479 |                            |          0           |

|    VI_ATTR_ASRL_RTS_STATE   | 1073676480 |                            |          1           |

|    VI_ATTR_ASRL_STOP_BITS   | 1073676324 |         stop_bits          |          10          |

|    VI_ATTR_ASRL_WIRE_MODE   | 1073676735 |                            |         128          |

|    VI_ATTR_ASRL_XOFF_CHAR   | 1073676482 |         xoff_char          |          19          |

|    VI_ATTR_ASRL_XON_CHAR    | 1073676481 |          xon_char          |          17          |

|     VI_ATTR_DMA_ALLOW_EN    | 1073676318 |         allow_dma          |          0           |

|    VI_ATTR_FILE_APPEND_EN   | 1073676690 |                            |          0           |

|    VI_ATTR_INTF_INST_NAME   | 3221160169 |                            |    'ascii' co...     |

|    VI_ATTR_INTF_INST_NAME   | 3221160169 |                            |    'ascii' co...     |

|    VI_ATTR_INTF_INST_NAME   | 3221160169 |                            |    'ascii' co...     |

|       VI_ATTR_INTF_NUM      | 1073676662 |      interface_number      |          1           |

|       VI_ATTR_INTF_NUM      | 1073676662 |      interface_number      |          1           |

|       VI_ATTR_INTF_NUM      | 1073676662 |      interface_number      |          1           |

|      VI_ATTR_INTF_TYPE      | 1073676657 |                            |          4           |

|      VI_ATTR_INTF_TYPE      | 1073676657 |                            |          4           |

|      VI_ATTR_INTF_TYPE      | 1073676657 |                            |          4           |

|       VI_ATTR_IO_PROT       | 1073676316 |        io_protocol         |          1           |

|   VI_ATTR_MAX_QUEUE_LENGTH  | 1073676293 |                            |          50          |

|   VI_ATTR_MAX_QUEUE_LENGTH  | 1073676293 |                            |          50          |

|   VI_ATTR_MAX_QUEUE_LENGTH  | 1073676293 |                            |          50          |

|   VI_ATTR_RD_BUF_OPER_MODE  | 1073676330 |                            |          3           |

|     VI_ATTR_RD_BUF_SIZE     | 1073676331 |                            |         4096         |

|      VI_ATTR_RM_SESSION     | 1073676484 |                            |         4097         |

|      VI_ATTR_RM_SESSION     | 1073676484 |                            |         4097         |

|      VI_ATTR_RM_SESSION     | 1073676484 |                            |         4097         |

|      VI_ATTR_RSRC_CLASS     | 3221159937 |       resource_class       |        INSTR         |

|      VI_ATTR_RSRC_CLASS     | 3221159937 |       resource_class       |        INSTR         |

|      VI_ATTR_RSRC_CLASS     | 3221159937 |       resource_class       |        INSTR         |

|  VI_ATTR_RSRC_IMPL_VERSION  | 1073676291 |   implementation_version   |       18875648       |

|  VI_ATTR_RSRC_IMPL_VERSION  | 1073676291 |   implementation_version   |       18875648       |

|  VI_ATTR_RSRC_IMPL_VERSION  | 1073676291 |   implementation_version   |       18875648       |

|   VI_ATTR_RSRC_LOCK_STATE   | 1073676292 |         lock_state         |          0           |

|   VI_ATTR_RSRC_LOCK_STATE   | 1073676292 |         lock_state         |          0           |

|   VI_ATTR_RSRC_LOCK_STATE   | 1073676292 |         lock_state         |          0           |

|     VI_ATTR_RSRC_MANF_ID    | 1073676661 |                            |         4086         |

|     VI_ATTR_RSRC_MANF_ID    | 1073676661 |                            |         4086         |

|     VI_ATTR_RSRC_MANF_ID    | 1073676661 |                            |         4086         |

|    VI_ATTR_RSRC_MANF_NAME   | 3221160308 | resource_manufacturer_name | National Instruments |

|    VI_ATTR_RSRC_MANF_NAME   | 3221160308 | resource_manufacturer_name | National Instruments |

|    VI_ATTR_RSRC_MANF_NAME   | 3221160308 | resource_manufacturer_name | National Instruments |

|      VI_ATTR_RSRC_NAME      | 3221159938 |       resource_name        |     ASRL1::INSTR     |

|      VI_ATTR_RSRC_NAME      | 3221159938 |       resource_name        |     ASRL1::INSTR     |

|      VI_ATTR_RSRC_NAME      | 3221159938 |       resource_name        |     ASRL1::INSTR     |

|  VI_ATTR_RSRC_SPEC_VERSION  | 1073676656 |        spec_version        |       5244928        |

|  VI_ATTR_RSRC_SPEC_VERSION  | 1073676656 |        spec_version        |       5244928        |

|  VI_ATTR_RSRC_SPEC_VERSION  | 1073676656 |        spec_version        |       5244928        |

|     VI_ATTR_SEND_END_EN     | 1073676310 |          send_end          |          1           |

|   VI_ATTR_SUPPRESS_END_EN   | 1073676342 |                            |          0           |

|       VI_ATTR_TERMCHAR      | 1073676312 |                            |          10          |

|     VI_ATTR_TERMCHAR_EN     | 1073676344 |                            |          0           |

|      VI_ATTR_TMO_VALUE      | 1073676314 |                            |         2000         |

|      VI_ATTR_TMO_VALUE      | 1073676314 |                            |         2000         |

|      VI_ATTR_TMO_VALUE      | 1073676314 |                            |         2000         |

|       VI_ATTR_TRIG_ID       | 1073676663 |                            |          -1          |

|   VI_ATTR_WR_BUF_OPER_MODE  | 1073676333 |                            |          2           |

|     VI_ATTR_WR_BUF_SIZE     | 1073676334 |                            |         4096         |

+-----------------------------+------------+----------------------------+----------------------+

爲了簡化VI_ATTR_TERMCHAR和VI_ATTR_TERMCHAR_EN,可以採用命令“termchar”。如果只提供一個字符,將設置讀和寫結束符爲相同的字符;如果提供兩個字符,將分別設置讀結束符和寫結束符。

設置結束符爲換行符(CR或者ascii值10):

(open) termchar CR

Done

讀取結束符的設置:

(open) termchar

Termchar read: CR write: CR

設置讀結束符爲回車,寫結束符爲換行和回車:

(open) termchar LF CRLF

Done

支持的結束符有:CR(“r”),LF(“n”),CRLF(“rn”),NUL(“0”)和None。None用來禁止結束符。

最後需要關閉設備:

(open) close

PyVisa Shell後臺

基於可利用的後臺清單(info命令查詢),可以方便的切換shell利用非默認的後臺(參數:-b BACKEND或者--backend BACKEND)。

python -m visa -b sim shell

或者

pyvisa-shell -b sim

這樣將ni後臺切換成python-sim。這可以做爲測試python-sim設置的例程。

python -m visa -b py shell

或者

pyvisa-shell -b py

將使用python-py代替ni後臺,針對ni後臺沒有安裝的情況。

PyVISA信息

輸入下面命令:

python -m visa info

或者

pyvisa-info

將輸出用來診斷PyVISA的信息,包括機器,Python和後臺等。

Machine Details:

Platform ID: Windows

Processor: Intel64 Family 6

...

PyVISA Version: ...

Backends:

ni:

Version: 1.8 (bundled with PyVISA)

...

py:

Version: 0.2

...

sim:

Version: 0.3

Spec version: 1.1

總結

很酷,對吧?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章