กลับไปหน้าบทความ

อ่าน 6 นาที

คำสั่งมาตรฐานสำหรับเครื่องมือที่ตั้งโปรแกรมได้

คำสั่งมาตรฐานสำหรับเครื่องมือที่ตั้งโปรแกรมได้ ( SCPI ; มักออกเสียงว่า "skippy") กำหนดมาตรฐานสำหรับไวยากรณ์และคำสั่งที่จะใช้ในการควบคุมอุปกรณ์ทดสอบและวัดที่ตั้งโปรแกรมได้

คำสั่งมาตรฐานสำหรับเครื่องมือที่ตั้งโปรแกรมได้

แผงด้านหลังของออสซิลโลสโคป ดิจิทัล Tektronix TDS210 แสดง ขั้วต่อ RS-232 (DE9) และIEEE-488ที่รับคำสั่ง SCPI จากระยะไกล[ 1 ]
แผงด้านหลังของออสซิลโลสโคป ดิจิทัล Rigol DS1074Z แสดง ขั้วต่อ USB -B และอีเธอร์เน็ต ( RJ45 ) ที่รับคำสั่ง SCPI จากระยะไกล[ 2 ]

คำสั่งมาตรฐานสำหรับเครื่องมือที่ตั้งโปรแกรมได้ ( SCPI ; มักออกเสียงว่า "skippy") กำหนดมาตรฐานสำหรับไวยากรณ์และคำสั่งที่จะใช้ในการควบคุมอุปกรณ์ทดสอบและวัดที่ตั้งโปรแกรมได้ เช่นอุปกรณ์ทดสอบอัตโนมัติและอุปกรณ์ทดสอบอิเล็กทรอนิกส์[ 3 ]

ภาพรวม

SCPI ถูกกำหนดให้เป็นเลเยอร์เพิ่มเติมบน ข้อกำหนด IEEE 488.2-1987 "รหัสมาตรฐาน รูปแบบ โปรโตคอล และคำสั่งทั่วไป" [ 4 ]มาตรฐานนี้ระบุไวยากรณ์ ทั่วไป โครงสร้างคำสั่งและรูปแบบข้อมูลเพื่อใช้กับเครื่องมือทั้งหมด โดยได้แนะนำคำสั่งทั่วไป (เช่นCONFigureและMEASure) ที่สามารถใช้กับเครื่องมือใดก็ได้ คำสั่งเหล่านี้ถูกจัดกลุ่มเป็นระบบย่อย SCPI ยังกำหนดคลาสของเครื่องมือหลายประเภท ตัวอย่างเช่นแหล่งจ่ายไฟ ที่ควบคุมได้ใดๆ ก็ตาม จะใช้คลาสฟังก์ชันพื้นฐานเดียวกันDCPSUPPLYคลาสของเครื่องมือจะระบุว่าใช้ระบบย่อยใดบ้าง รวมถึงคุณสมบัติเฉพาะของเครื่องมือแต่ละประเภทด้วย

SCPI ไม่ได้กำหนดลิงก์การสื่อสารฮาร์ดแวร์ทางกายภาพ (เลเยอร์ทางกายภาพ) [ 5 ]แม้ว่าเดิมทีจะถูกสร้างขึ้นสำหรับ บัส IEEE-488.1 (GPIB) [ 5 ] SCPI ยังสามารถใช้กับRS-232 , RS-422 , RS-485 , USB , Ethernet , VXIbus , HiSLIPเป็นต้น[ 5 ]

คำสั่ง SCPI เป็นสตริงข้อความASCII [ 5 ]ซึ่งส่งไปยังเครื่องมือผ่านเลเยอร์ทางกายภาพ[ 5 ]คำสั่งประกอบด้วยคำหลักหนึ่งคำขึ้นไป ซึ่งหลายคำรับพารามิเตอร์ ในข้อกำหนด คำหลักจะเขียนดังนี้CONFigure: สามารถใช้คำหลักทั้งหมด หรือย่อให้เหลือเพียงส่วนที่เป็นตัวพิมพ์ใหญ่ก็ได้ การตอบสนองต่อคำสั่งสอบถามโดยทั่วไปจะเป็นสตริง ASCII อย่างไรก็ตาม สำหรับข้อมูลจำนวนมาก สามารถใช้รูปแบบไบนารีได้[ 3 ]

ข้อกำหนด SCPI ประกอบด้วยสี่เล่ม: เล่มที่ 1: "ไวยากรณ์และรูปแบบ", เล่มที่ 2: "คู่มืออ้างอิงคำสั่ง", เล่มที่ 3: "รูปแบบการแลกเปลี่ยนข้อมูล", เล่มที่ 4: "คลาสเครื่องมือ" ข้อกำหนดนี้เดิมทีเผยแพร่เป็นคู่มือพิมพ์ที่ไม่ฟรี จากนั้นจึงเผยแพร่เป็น ไฟล์ PDF ฟรีไฟล์เดียว ที่รวมทั้งสี่เล่มไว้ด้วยกัน[ 3 ]

ประวัติ SCPI

SCPI เปิดตัวครั้งแรกในปี พ.ศ. 2533 [ 3 ] [ 6 ]โดยมีต้นกำเนิดมาจากเลเยอร์เพิ่มเติมสำหรับIEEE-488 IEEE-488.1 ระบุบัสทางกายภาพและไฟฟ้า และ IEEE-488.2 ระบุโปรโตคอลและรูปแบบข้อมูล แต่ทั้งสองมาตรฐานไม่ได้ระบุคำสั่งเครื่องมือ ผู้ผลิตที่แตกต่างกัน หรือแม้แต่รุ่นที่แตกต่างกันของเครื่องมือประเภทเดียวกัน ก็จะใช้ชุดคำสั่งที่แตกต่างกัน SCPI สร้างมาตรฐานที่สามารถใช้ร่วมกันได้กับผู้ผลิตและรุ่นทั้งหมด โดยกำหนดให้ใช้รูปแบบข้อมูล IEEE-488.2 แต่ไม่ได้บังคับใช้บัส IEEE-488.1 [ 7 ]

ในปี พ.ศ. 2545–2546 กลุ่มSCPI Consortiumได้ลงมติให้เป็นส่วนหนึ่งของมูลนิธิ IVI (Interchangeable Virtual Instruments) [ 7 ]

ประวัติความเป็นมาของ IEEE 488.2

ในปี พ.ศ. 2530 IEEEได้นำเสนอข้อกำหนด IEEE  488.2-1987 " รหัสมาตรฐาน รูปแบบ โปรโตคอล และคำสั่งทั่วไป " ซึ่งต่อมาได้รับการแก้ไขในปี พ.ศ. 2535 เป็นIEEE  488.2-1992 [ 8 ]

แม้ว่า IEEE  488.2 จะมีไวยากรณ์ที่ไม่ขึ้นกับอุปกรณ์ แต่ก็ยังไม่มีมาตรฐานสำหรับคำสั่งเฉพาะเครื่องมือ คำสั่งในการควบคุมเครื่องมือประเภทเดียวกัน เช่น มัลติมิเตอร์ จะแตกต่างกันไปตามผู้ผลิตและแม้แต่รุ่น กองทัพอากาศสหรัฐฯ[ 9 ]และต่อมาคือ Hewlett-Packard ตระหนักถึงปัญหานี้ ในปี 1989 HP ได้พัฒนาภาษา TML [ 10 ]ซึ่งเป็นต้นแบบของ SCPI

IEC ได้พัฒนามาตรฐานของตนเองควบคู่ไปกับ IEEE โดยใช้มาตรฐาน IEC 60625-2-1993  (IEC  625) ในปี 2004 IEEE และ IEC ได้รวมมาตรฐานของตนเข้าด้วยกันเป็นมาตรฐาน IEEE/IEC "โลโก้คู่" IEC  60488-2-2004 ส่วนที่ 2 : รหัส รูปแบบ โปรโตคอล และคำสั่งทั่วไป [ 11 ] ซึ่งแทนที่ IEEE  488.2-1992 และ IEC  60625-2-1993 [ 12 ]

ไวยากรณ์คำสั่ง

คำสั่ง SCPI ที่ส่งไปยังเครื่องมือวัดอาจเป็นการดำเนิน การ ตั้งค่า (เช่น การเปิดปิดแหล่งจ่ายไฟ) หรือ การดำเนินการ สอบถาม (เช่น การอ่านค่าแรงดันไฟฟ้า) การสอบถามจะทำได้โดยการเติมเครื่องหมายคำถามไว้ท้ายคำสั่ง คำสั่งบางคำสั่งสามารถใช้ได้ทั้งในการตั้งค่าและการสอบถามเครื่องมือวัด ตัวอย่างเช่น โหมดการเก็บข้อมูลของเครื่องมือวัดสามารถตั้งค่าได้โดยใช้ACQuire:MODeคำสั่ง หรือสามารถสอบถามได้โดยใช้ACQuire:MODe?คำสั่ง คำสั่งบางคำสั่งสามารถตั้งค่าและสอบถามเครื่องมือวัดได้พร้อมกัน ตัวอย่างเช่น*CAL?คำสั่ง จะทำการปรับเทียบตัวเองบนอุปกรณ์บางชนิด แล้วส่งคืนผลลัพธ์ของการปรับเทียบ

คำสั่งที่คล้ายกันจะถูกจัดกลุ่มเป็นโครงสร้างลำดับชั้นหรือ "ต้นไม้" [ 3 ] ตัวอย่างเช่น คำสั่งใดๆ ที่จะอ่านค่าการวัดจากเครื่องมือจะเริ่มต้นด้วย " MEASure" คำสั่งย่อยเฉพาะภายในลำดับชั้นจะถูกซ้อนด้วย:อักขระโคลอน ( ) ตัวอย่างเช่น คำสั่ง "วัดแรงดันไฟฟ้ากระแสตรง" จะอยู่ในรูปแบบMEASure:VOLTage:DC?และคำสั่ง "วัดกระแสไฟฟ้ากระแสสลับ" จะอยู่ในรูปMEASure:CURRent:AC?แบบ

 :วัด แรงดันไฟฟ้า :DC? :AC? :ปัจจุบัน :DC? :AC? ...

กรณี

แม้ว่าไวยากรณ์คำสั่งข้างต้นจะแสดงคำสั่งในรูปแบบตัวพิมพ์ใหญ่และตัวพิมพ์เล็กผสมกัน แต่SCPI ไม่คำนึงถึงตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก

ตัวอย่างเช่น สำหรับVOLTageตัวเลือกต่อไปนี้ทั้งหมดถือเป็นการแสดงผลที่ถูกต้อง: VOLTAGE, voltage, Voltage, VoLtAgE.

การย่อคำสั่ง

ไวยากรณ์คำสั่งแสดงอักขระบางตัวในรูปแบบตัวพิมพ์ใหญ่และตัวพิมพ์เล็กผสมกัน การย่อคำสั่งให้ส่งเฉพาะตัวพิมพ์ใหญ่จะมีความหมายเหมือนกับการส่งคำสั่งที่มีทั้งตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก[ 3 ]

ตัวอย่างเช่น คำสั่ง “ SYSTem:COMMunicate:SERial:BAUD 2400” จะตั้งค่าอินเทอร์เฟซการสื่อสารแบบอนุกรม RS-232 เป็น 2400 บิต/วินาทีหรืออาจย่อเป็น “ SYST:COMM:SER:BAUD 2400” ก็ได้ คำสั่งสอบถาม “ SYSTem:COMMunicate:SERial:BAUD?” หรือ “ SYST:COMM:SER:BAUD?” จะสั่งให้เครื่องมือรายงานอัตราการส่งข้อมูลปัจจุบัน

คำสั่งที่ถูกต้องมีเพียงรูปแบบย่อและรูปแบบเต็มของแต่ละคำสั่งเท่านั้น รูปแบบย่อยอื่นๆ ทั้งหมดไม่ถูกต้อง

ตัวอย่างเช่น สำหรับCOMMunicateเฉพาะCOMM(รูปแบบสั้น) และCOMMUNICATE(รูปแบบยาว) เท่านั้นที่ถูกต้อง แต่COM, COMMUN, เซตย่อยไม่ถูกต้อง นอกจากนี้ตัวอักษรที่ต่อท้ายก็ไม่ถูกต้องเช่น กันCOMMUNICเช่นCOMMUNICATED

การรวมคำสั่งเข้าด้วยกัน

สามารถออกคำสั่งหลายคำสั่งให้กับเครื่องดนตรีได้ในสายเดียว โดยคำสั่งเหล่านั้นประกอบด้วยคำสั่งง่ายๆ ที่คั่นด้วยเครื่องหมายเซมิโคลอน ( ;)

ตัวอย่างเช่น คำสั่ง "วัดแรงดันไฟฟ้ากระแสตรง จากนั้นวัดกระแสไฟฟ้ากระแสสลับ" จะถูกออกในรูปแบบMEASure:VOLTage:DC?;:MEASure:CURRent:AC?.

คำสั่งง่ายๆ ที่ขึ้นต้นด้วยเครื่องหมายโคลอน ( :) จะถูกตีความโดยอ้างอิงจากรากของโครงสร้างคำสั่ง ส่วนคำสั่งอื่นๆ จะอ้างอิงถึงโหนดสุดท้ายของคำสั่งก่อนหน้าโดยปริยาย (เว้นแต่ว่าคำสั่งนั้นจะขึ้นต้นด้วยเครื่องหมายดอกจันอยู่แล้ว) ตัวอย่างเช่น

 :แหล่งที่มา:ความถี่:เริ่มต้น 100;หยุด 200

เป็นคำย่อสำหรับข้อความ

 :SOURce:FREQuency:START 100;:SOURce:FREQuency:STOP 200

เส้นทางปัจจุบันจะถูกรีเซ็ตเป็นเส้นทางหลักโดย: อักขระขึ้นบรรทัดใหม่, คำสั่ง *RST และเมื่อเปิดเครื่องครั้งแรก

ข้อโต้แย้ง

คำสั่งบางคำสั่งยอมรับหรือต้องการอาร์กิวเมนต์เพิ่มเติมอย่างน้อยหนึ่งรายการ อาร์กิวเมนต์จะระบุไว้หลังคำสั่ง และคั่นด้วยช่องว่างระหว่างคำสั่ง[ 11 ] ตัวอย่างเช่น คำสั่งในการตั้งค่าโหมดทริกเกอร์ของเครื่องมือเป็น "ปกติ" อาจระบุเป็น " TRIGger:MODe NORMal" โดยที่คำว่า " NORMal" ถูกใช้เป็นอาร์กิวเมนต์ของTRIGger:MODeคำสั่ง " " เมื่อมีการระบุอาร์กิวเมนต์หลายรายการ อาร์กิวเมนต์จะถูกเขียนเป็นรายการที่คั่นด้วยเครื่องหมายจุลภาค ตัวอย่างเช่น คำสั่งสอบถามที่ทำการวัดแรงดันไฟฟ้ากระแสสลับบนมัลติมิเตอร์ดิจิทัล โดยใช้ช่วงการวัด 10 VRMS ของมิเตอร์ และแสดงค่าแรงดันไฟฟ้าที่วัดได้ด้วยความละเอียด 4-1/2 หลัก จะเขียนเป็น " "MEASure:VOLTage:AC? 10,4

อาร์กิวเมนต์จำนวนเต็ม

สำหรับคำสั่งที่ยอมรับ อาร์กิวเมนต์ จำนวนเต็มค่าอาจถูกระบุในรูปแบบตัวเลขคอมพิวเตอร์ หลายรูปแบบ ได้แก่ เลขฐานสิบ เลขฐานสิบหก เลขฐานแปด และเลขฐานสอง รูปแบบสามรูปแบบสุดท้ายถูกกำหนดโดย IEEE 488.2 [ 11 ]ซึ่ง SCPI ใช้เป็นพื้นฐาน[ 3 ] ตัวเลข ฐานสิบ ( ฐาน 10) จะไม่มีคำนำหน้า ตัวเลข ฐานสิบหก ( ฐาน 16) จะมีคำนำหน้าเป็นหรือ ตัวเลข ฐานแปด (ฐาน 8) จะมีคำนำหน้า เป็นหรือและ ตัวเลข ฐานสอง (ฐาน 2) จะมีคำนำ หน้าเป็น หรือ ตัวเลขฐานสิบหกอาจใช้ ตัวพิมพ์ ใหญ่ (ABCDEF) หรือ ตัวพิมพ์ เล็ก (abcdef) หรือ ตัวพิมพ์ ผสม (aBcDeF) สำหรับเลขฐานแปด เลือกใช้ตัวอักษร " Q " แทนตัวอักษร " O " เพื่อลดความสับสนทางสายตากับตัวเลข " 0 " (ศูนย์) [ 11 ]#H#h#Q#q#B#b

ตัวอย่างข้อโต้แย้งต่อไปนี้มีค่าเท่ากันในเชิงตัวเลข:

  • ทศนิยม:26
  • เลขฐานสิบหก: #H1Aหรือ#h1a
  • เลขฐานแปด: #Q32หรือ#q32
  • ไบนารี: #B11010หรือ#b11010

คำสั่ง 488.2

เนื่องจาก SCPI ถูกกำหนดให้เป็นเลเยอร์เพิ่มเติมบนข้อกำหนด IEEE 488.2 อุปกรณ์ที่สอดคล้องกับ SCPI จึงควรรับรู้คำสั่ง 488.2 ต่างๆ ด้วยเช่นกัน[ 3 ] คำสั่งเหล่านี้อาจเรียกกันอย่างไม่เป็นทางการว่าคำสั่งดอกจัน (หรือคำสั่งดาว) เพราะขึ้นต้นด้วยอักขระดอกจัน*

ตามมาตรา 4.1.1 ของเล่ม 1 ของ SCPI อุปกรณ์ SCPI ทั้งหมดต้องใช้งานคำสั่ง 488.2 ต่อไปนี้[ 3 ] ในโลกแห่งความเป็นจริง อุปกรณ์ทดสอบระดับล่างบางตัวอาจรองรับเฉพาะคำสั่ง 488.2 เหล่านี้บางส่วน หรืออาจยอมรับคำสั่งแต่ไม่ดำเนินการใดๆ ผู้ใช้ควรตรวจสอบคู่มือโปรแกรมเมอร์อย่างเป็นทางการสำหรับแต่ละอุปกรณ์ก่อนที่จะสรุปว่าคำสั่ง 488.2 เหล่านี้ได้รับการสนับสนุนทั้งหมด

  • *CLS
  • *ESE
  • *ESE?
  • *ESR?
  • *IDN?
  • *OPC
  • *OPC?
  • *RST
  • *SRE
  • *SRE?
  • *STB?
  • *TST?
  • *WAI

ตามมาตรา 4.1.2 ของเล่ม 1 ของ SCPI คำสั่ง 488.2 อื่นๆ ทั้งหมดที่ไม่ได้ระบุไว้ข้างต้นถือเป็นทางเลือกและไม่จำเป็นสำหรับ SCPI [ 3 ]

  • *AAD
  • *CAL?
  • *DDT
  • *DDT?
  • *DLF
  • *DMC
  • *EMC
  • *EMC?
  • *GMC?
  • *IST?
  • *LMC?
  • *LRN?
  • *OPT?
  • *PCB
  • *PMC
  • *PRE
  • *PRE?
  • *PSC
  • *PSC?
  • *PUD
  • *PUD?
  • *RCL
  • *RDT
  • *RDT?
  • *SAV
  • *TRG
  • *RMC
  • *SDS

ดูเพิ่มเติม

  • เว็บไซต์อย่างเป็นทางการขององค์กร SCPI
ข้อกำหนด
  • SCPI-1999 เล่ม 1-4ไฟล์ PDF จำนวน 819 หน้าดาวน์โหลดฟรี(ไม่รวมคำสั่งที่มีเครื่องหมายดอกจัน (*) เนื่องจากระบุไว้ใน IEEE 488.2 และ IEC 60488-2 แล้ว)
  • IEEE 488.2-1992ไฟล์ PDF จำนวน 254 หน้า ราคา56 ดอลลาร์สหรัฐในปี 2026 (ถูกแทนที่ด้วย IEEE/IEC 60488-2-2004)
  • เอกสาร IEEE/IEC 60488-2-2004ไฟล์ PDF จำนวน 264 หน้า ราคา404 ดอลลาร์สหรัฐในปี 2026

ตัวอย่างคู่มือการเขียนโปรแกรม

มัลติมิเตอร์
  • เอกสาร PDF เกี่ยวกับเครื่องวัดพิกัดสามมิติ Tektronix DMM6500จำนวน 1202 หน้า
ออสซิลโลสโคป
  • เอกสาร PDF จำนวน 1896 หน้า เกี่ยวกับตระกูลผลิตภัณฑ์ Keysight InfiniiVision
  • Rohde-Schwarz MXO ซีรี่ส์ 4 , ไฟล์ PDF 848 หน้า
  • เอกสาร PDF จำนวน 2050 หน้า เกี่ยวกับตระกูล Tektronix MSO 4/5/6

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ คำสั่งมาตรฐานสำหรับเครื่องมือที่ตั้งโปรแกรมได้

คำสั่งมาตรฐานสำหรับเครื่องมือที่ตั้งโปรแกรมได้ ( SCPI ; มักออกเสียงว่า "skippy") กำหนดมาตรฐานสำหรับไวยากรณ์และคำสั่งที่จะใช้ในการควบคุมอุปกรณ์ทดสอบและวัดที่ตั้งโปรแกรมได้

ภาพรวม

SCPI ถูกกำหนดให้เป็นเลเยอร์เพิ่มเติมบน ข้อกำหนด IEEE 488.2-1987 "รหัสมาตรฐาน รูปแบบ โปรโตคอล และคำสั่งทั่วไป" [ 4 ] มาตรฐานนี้ระบุ ไวยากรณ์ ทั่วไป โครงสร้าง คำสั่ง และ รูปแบบข้อมูล เพื่อใช้กับเครื่องมือทั้งหมด โดยได้แนะนำคำสั่งทั่วไป (เช่น CONFigure และ...

ประวัติ SCPI

SCPI เปิดตัวครั้งแรกในปี พ.ศ. 2533 [ 3 ] [ 6 ] โดยมีต้นกำเนิดมาจากเลเยอร์เพิ่มเติมสำหรับ IEEE-488 IEEE-488.1 ระบุบัสทางกายภาพและไฟฟ้า และ IEEE-488.

ประวัติความเป็นมาของ IEEE 488.2

ในปี พ.ศ. 2530 IEEE ได้นำเสนอข้อกำหนด IEEE 488.2-1987 " รหัสมาตรฐาน รูปแบบ โปรโตคอล และคำสั่งทั่วไป " ซึ่งต่อมาได้รับการแก้ไขในปี พ.ศ. 2535 เป็น IEEE 488.2-1992 [ 8 ]