O que são comandos SCPI?
- Publicado em Eletrônica
Os comandos SCPI (Standard Commands for Programmable Instruments) é o padrão de comunicação mais utilizado para o controle e obtenção de dados de equipamentos de medição e instrumentação de diversas fabricantes (Keysight, Agilent, Tektronix, Fluke, Rigol, Siglent e até mesmo marcas genéricas).
O padrão SCPI define a interface de comunicação e não os detalhes da implementação da comunicação em si, que são definidos em outros padrões de comunicação como ASCII, IEEE 488.2/GPIB, TCP/IP, USB e RS232). O mesmo estabelece a sintaxe e diversos comandos padronizados que todo equipamento deve implementar.
Os comandos SCPI consistem em texto codificados em ASCII e separados por dois pontos (:) e usualmente são de fácil compreensão e baixa complexidade, até mesmo porque o padrão SCPI foi desenvolvido há muitos anos e abrange uma infinidade de equipamentos de instrumentação, inclusive aqueles com baixa capacidade de processamento de dados, que não teriam recursos para um padrão mais complexo de comunicação.
Em nosso laboratório, é comum utilizarmos comandos SCPI para enviar e receber dados dos equipamentos de instrumentação no ambiente LabVIEW, seja por meio de um barramento GPIB (equipamentos mais complexos) quanto TCP/IP, USB ou RS232.
Consultas e Comandos SCPI
De maneira resumida, há duas categorias de comandos SCPI: aqueles destinados a consultas (obtenção de dados, que pode ser eventualmente combinados com a execução de tarefas) e os destinados estritamente à execução de tarefas (controle de equipamentos).
As consultas destinam-se à obtenção de dados e são terminadas por um ponto de interrogação "?" e o dispositivo que executou o query espera receber os dados também por comandos de texto ASCII SCPI. Por exemplo, o equipamento deve responder à consulta "*IDN?" com quatro campos separados por dois pontos ":", quais sejam: fabricante, modelo, número de série e a revisão do firmware/software.
Enquanto isso, os comandos de execução de tarefas destinam-se apenas à execução de comandos em si. Por exemplo, o comando "*CLS" apaga todas as estruturas de dados de status do dispositivo e o comando "*RST" reinicia o equipamento.
Comandos SCPI de implementação obrigatória pelo IEEE
Todo instrumento que se declarar compatível com o padrão SCPI deve implementar todos os comandos relacionados na tabela seguir. Entre eles, os mais utilizados são a consulta de identificação (*IDN?), que deve ser utilizada pelo programador para verificar se o equipamento controlado é de fato o esperado, o comando clear status (*CLS) para limpar o status do equipamento e o comando de auto-teste (*TST?) no qual é solicitado que o equipamento execute um auto-teste e retorne o resultado desse teste.
Mnemônico | Descrição |
*CLS | Clear Status Command |
*ESE | Standard Event Status Enable Command |
*ESE? | Standard Event Status Enable Query |
*ESR? | Standard Event Status Register Query |
*IDN? | Identification Query |
*OPC | Operation Complete Command |
*OPC? | Operation Complete Query |
*RST | Reset Command |
*SRE | Service Request Enable Command |
*SRE? | Service Request Enable Query |
*STB? | Read Status Byte Query |
*TST? | Self Test Query |
*WAI | Wait-to-Continue Command |
Os demais comandos são específicos de cada produto e disponíveis nos manuais de programação dos equipamentos. Usualmente os equipamentos organizam os comandos em hierarquias do tipo árvore, com sub-comandos separados com dois pontos como ":FETCh:CHPower:CHPower?" e ":FETCh:OBWidth:FREQuency?" de um equipamento da fabricante Anritsu.
É importante perceber que os comandos podem ser abreviados apenas pelas letras maiúsculas visando redução do tempo de comunicação entre dispositivos. Por exemplo, os comandos supracitados poderiam ser escritos apenas como ":FETC:CHP:CHP?" e ":FETC:OBW:FREQ?", desconsiderando-se todas as letras minúsculas.
Itens relacionados (por tag)
- Integrando o Arduino em sistemas de automação via MODBUS TCP
- Analisando o InvenSense MPU-6050: giroscópio, acelerômetro e termômetro
- Plataforma de aquisição de dados de um giroscópio, acelerômetro e termômetro MPU-6050 com o LabVIEW e Arduino
- Controlando o Arduino Mega por meio da framework LINX no LabVIEW
- Traçando curvas características de resistores com o LabVIEW e fontes programáveis Rigol DP831A e DP1308A