Pickering switch นั้นรองรับการพัฒนาหลากหลายโปรแกรม เช่น C, .NET, Python, LabVIEW และ CVI เป็นต้น โดยในที่นี้เราจะพูดถึง C และ LabVIEW เป็นหลัก ทั้งนี้แนวทางการพัฒนาโปรแกรมเพื่อควบคุม Pickering Switch จะมี 2 แนวทางหลัก ได้แก่
1. การพัฒนาด้วยไดรเวอร์: การโปรแกรมในลักษณะนี้จำเป็นต้องเข้าใจโครงสร้างของ Pickering switch เสียก่อน Pickering switch แต่ละตัวนั้นจะมี SubUnit ย่อย ๆ อยู่ภายใน ยกตัวอย่างดัง switch ด้านล่างมี 2 SubUnit ส่วนของ matrix คือ SubUnit แรกซึ่งมีขนาด 16 บิต อีกส่วนคือ relay 4 ตัวด้านบนซึ่งมีขนาด 4 บิต ซึ่งในการเขียนโปรแกรมเราจำเป็นต้องทราบว่า relay แต่ละตัวเป็นบิตที่เท่าไรของ SubUnit
ทั้งนี้เราสามารถหาข้อมูล SubUnit ของ switch แต่ละตัวได้จาก PDF manual ของ switch รุ่นนั้น ๆ ในส่วนของโปรแกรมนั้นจะเริ่มจากเปิดการติดต่อกับ switch หลังจากนั้นจึงควบคุมการเชื่อมต่อแล้วปิดการติดต่อกับ switch เมื่อหยุดใช้งาน โดยฟังก์ชั่นที่เรียกใช้จะแตกต่างกันไปตามแนวทางการพัฒนาทั้ง 3 แบบ ได้แก่
1.1 Direct I/O: การพัฒนาลักษณะนี้จะใช้งานไลบรารี่ pilpxi โดยเราสามารถเชื่อมต่อกับ switch ด้วยฟังก์ชั่น PIL_Init(CHAR *Alias, CHAR *Storage, DWORD Access, DWORD* CardNum); โดยปกติเราจำเป็นต้องใส่เฉพาะค่า Alias ซึ่งเป็นชื่อของ switch ที่ตั้งไว้ใน NI MAX และ CardNum ซึ่งเป็นตัวแปรสำหรับเรียกใช้งาน switch นี้ในภายหลัง อีกสองตัวแปรตั้งค่าเป็น NULL หลังจากนั้นเราจึงใช้ฟังก์ชั่นต่าง ๆ ในการควบคุม switch (สำหรับ LabVIEW VI จะอยู่ใน Instrument I/O>Instr Drivers>Pickering PIL PXI>General purpose output) สุดท้ายจึงเรียกใช้ฟังก์ชั่น PIL_CloseSpecifiedCard(DWORD CardNum);
เพื่อปิดการทำงานของ switch นั้น ทั้งนี้สามารถหาข้อมูลเพิ่มเติมสำหรับฟังก์ชั่น C ได้จากหน้า Visual C++ ใน Pickering Interfaces Programming Manual และ PIPLX LabVIEW Function Reference สำหรับ LabVIEW
1.2 VISA: การพัฒนาลักษณะนี้จะใช้ไลบรารี่ pipx40 โดยเราสามารถเชื่อมต่อกับ switch ด้วยฟังก์ชั่น pipx40_init(ViRsrc rsrcName, ViBoolean id_query, ViBoolean reset_instr, ViPSession vi); โดยปกติเราจำเป็นต้องใส่เฉพาะค่า rsrcName ซึ่งเป็นชื่อของ switch ที่ตั้งไว้ใน NI MAX และ vi ซึ่งเป็นตัวแปรสำหรับเรียกใช้งาน switch นี้ในภายหลัง หลังจากนั้นเราจึงใช้ฟังก์ชั่นต่าง ๆ ในการควบคุม switch (สำหรับ LabVIEW VI จะอยู่ใน Instrument I/O>Instr Drivers>Pickering PXI VISA>General purpose output) สุดท้ายจึงเรียกใช้ฟังก์ชั่น pipx40_close(ViPSession vi);
เพื่อปิดการทำงานของ switch นั้น ทั้งนี้สามารถหาข้อมูลเพิ่มเติมสำหรับฟังก์ชั่น C ได้จาก Pickering Interfaces Programming Manual และ PIPX40 LabVIEW Function Reference สำหรับ LabVIEW
1.3 IVI: การพัฒนาลักษณะนี้จะใช้ไลบรารี่ pi40iv โดยเราสามารถเชื่อมต่อกับ switch ด้วยฟังก์ชั่น pi40iv_init(ViRsrc rsrcName, ViBoolean id_query, ViBoolean reset_instr, ViPSession vi); โดยปกติเราจำเป็นต้องใส่เฉพาะค่า rsrcName ซึ่งเป็นชื่อของ switch ที่ตั้งไว้ใน NI MAX และ vi ซึ่งเป็นตัวแปรสำหรับเรียกใช้งาน switch นี้ในภายหลัง หลังจากนั้นเราจึงใช้ฟังก์ชั่นต่าง ๆ ในการควบคุม switch (สำหรับ LabVIEW VI จะอยู่ใน Instrument I/O>Instr Drivers>Pickering PXI IVI>General purpose output) สุดท้ายจึงเรียกใช้ฟังก์ชั่น pi40iv_close(ViPSession vi);
เพื่อปิดการทำงานของ switch นั้น ทั้งนี้สามารถหาข้อมูลเพิ่มเติมสำหรับฟังก์ชั่น C ได้จาก Pickering Software User Manual และ PI40IV LabVIEW Function Reference สำหรับ LabVIEW
2. การพัฒนาโดยทำงานร่วมกับ Switch Path Manager (SPM): การพัฒนาในลักษณะนี้เราจะใช้ Switch Path Manager ในการตั้งค่าทางเดินของสัญญาณ หลังจากนั้นเราจึงใช้ API ในการควบคุม relay, route หรือ sequence ทั้งนี้ก่อนเริ่มต้นใช้งานใน LabVIEW ให้ก๊อปปี้โฟลเดอร์ใน C:\Program Files\Pickering Interfaces Ltd\Switch Path Manager\LabVIEW\instr.lib ไปยังโฟลเดอร์ instr.lib ของ LabVIEW รุ่นที่ใช้งาน สำหรับการเขียนโปรแกรมต้องเริ่มต้นจากฟังก์ชั่น int SPM_StartSequence (int disableNotification, char *projectFilePath, int reset, int bootOnline, int showEndMessage, int openCloseIDE, int reLoadProject); ซึ่งทำหน้าที่เริ่มต้นการทำงานของ SPM Server และ SPM Client โดยเราสามารถตั้งค่าต่าง ๆ ดังต่อไปนี้
– disableNotification: ปิดการแจ้งเตือน
– projectFilePath: ไฟล์ project ของ SPM ที่จะเรียกใช้งาน
– reset: รีเซ็ท SPM Server และ SPM Client
– bootOnline: ทำการเชื่อมต่อกับระบบที่เชื่อมต่ออยู่
– showEndMessage: แสดงข้อความเมื่อทำงานเสร็จสิ้น
– openCloseIDE: เปิด/ปิดซอฟต์แวร์ Switch Path Manager
– reloadProject: เปิด project ใหม่อีกครั้ง
หลังจากนั้นจึงใช้ฟังก์ชั่นต่าง ๆ เช่น Switch Connect Endpoints, Switch Disconnect Endpoints, Switch Connect Route, Switch Disconnect Route, Switch Connect Relay Group, Switch Disconnect Relay Group, Switch Connect Sequence หรือ Switch Disconnect Sequence เพื่อเชื่อมต่อทางเดินสัญญาณในแบบที่ต้องการ สุดท้ายจึงเรียกใช้ฟังก์ชั่น int SPM_StopSequence (int reset, int stopServer); เพื่อปิดการทำงานโดยเราสามารถตั้งค่าต่าง ๆ ดังต่อไปนี้
– reset: รีเซ็ท SPM Server และ SPM Client
– stopServer: หยุดการทำงาน SPM Server
สำหรับข้อมูลเพิ่มเติมในการโปรแกรม Pickering switch ด้วย Switch Path Manager สามารถดูได้จากเมนู Help ของ Switch Path Manager เลือก API
หวังว่าบทความนี้จะให้ความรู้ที่จำเป็นในการเขียนโปรแกรมเพื่อควบคุม Pickering switch หากผู้อ่านต้องการทราบข้อมูลเพิ่มเติมสามารถติดต่อทีมงาน ติดต่อ ทีมงาน เทคสแควร์ ได้ครับ
บทความที่เกี่ยวข้อง
เริ่มต้นใช้งาน switch แบบ PXI จาก Pickering
เริ่มต้นใช้งาน switch แบบ LXI/USB จาก Pickering
การใช้งานทริกเกอร์บนอุปกรณ์ Pickering