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

10 篇文章 68 订阅

从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

总结

很酷,对吧?

  • 4
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值