www.pyramid.tech
เอฟเอ็กซ์4
คู่มือโปรแกรม FX4
รหัสเอกสาร: 2711715845
เวอร์ชัน: v3
โปรแกรมเมอร์ FX4
รหัสเอกสาร: 2711715845
FX4 – คู่มือโปรแกรมเมอร์ FX4
รหัสเอกสาร: 2711650310
ผู้เขียน | แมทธิว นิโคลส์ |
เจ้าของ | หัวหน้าโครงการ |
วัตถุประสงค์ | อธิบายแนวคิดการเขียนโปรแกรมที่จำเป็นต่อการใช้ API และขยายผลิตภัณฑ์ผ่านแอปพลิเคชันภายนอก |
ขอบเขต | แนวคิดการเขียนโปรแกรมที่เกี่ยวข้องกับ FX4 |
กลุ่มเป้าหมาย | นักพัฒนาซอฟต์แวร์ที่สนใจใช้งานผลิตภัณฑ์ |
กระบวนการ | https://pyramidtc.atlassian.net/wiki/pages/createpage.action? spaceKey=PQ&title=มาตรฐาน%20คู่มือ%20กระบวนการสร้าง |
การฝึกอบรม | ไม่สามารถใช้ได้ |
การควบคุมเวอร์ชัน
เวอร์ชัน | คำอธิบาย | บันทึกโดย | บันทึกไว้ใน | สถานะ |
v3 | เพิ่มความเรียบง่ายview และอีกมากมายampเลส. | แมทธิว นิโคลส์ | 6 มี.ค. 2025 10:29 น. | ที่ได้รับการอนุมัติ |
v2 | เพิ่มอินเทอร์เฟซ IO ดิจิทัลและการอ้างอิงกลับไปยัง IGX | แมทธิว นิโคลส์ | 3 พฤษภาคม 2024 7:39 น. | ที่ได้รับการอนุมัติ |
v1 | เผยแพร่ครั้งแรก ยังอยู่ในระหว่างดำเนินการ | แมทธิว นิโคลส์ | 21 ก.พ. 2024 11:25 น. | ที่ได้รับการอนุมัติ |
การควบคุมเอกสาร ไม่ใช่เรviewed
เวอร์ชันเอกสารปัจจุบัน: เวอร์ชัน 1
ไม่มีอีกครั้งviewที่ได้รับมอบหมาย
1.1 ลายเซ็น
สำหรับเอกสารเวอร์ชันล่าสุด
วันศุกร์ที่ 7 มีนาคม 2025 เวลา 10:33 น. UTC
แมทธิว นิโคลส์ ลงนาม ; หมายความว่า: เรview
อ้างอิง
เอกสาร | รหัสเอกสาร | ผู้เขียน | เวอร์ชัน |
IGX – คู่มือโปรแกรมเมอร์ | 2439249921 | แมทธิว นิโคลส์ | 1 |
การเขียนโปรแกรม FX4 เสร็จสิ้นview
โปรเซสเซอร์ FX4 ทำงานบนสภาพแวดล้อมที่เรียกว่า IGX ซึ่งสร้างขึ้นบนระบบปฏิบัติการเรียลไทม์ที่มีความน่าเชื่อถือสูง QNX จาก BlackBerry (คิวเอ็นเอ็กซ์ Webเว็บไซต์¹) IGX มอบอินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชัน (API) ที่ยืดหยุ่นและครอบคลุมสำหรับผู้ใช้ที่ต้องการเขียนซอฟต์แวร์โฮสต์คอมพิวเตอร์ของตนเอง
สภาพแวดล้อม IGX จะถูกใช้ร่วมกันระหว่างผลิตภัณฑ์ Pyramid อื่นๆ ช่วยให้สามารถโอนโซลูชันซอฟต์แวร์ที่พัฒนาขึ้นสำหรับผลิตภัณฑ์หนึ่งไปยังผลิตภัณฑ์อื่นๆ ได้อย่างง่ายดาย
โปรแกรมเมอร์สามารถดูเอกสารประกอบทั้งหมดของ IGX ได้ที่ Pyramid webเว็บไซต์อยู่ที่: IGX | กรอบระบบควบคุมโมดูลาร์ที่ทันสมัยสำหรับ Webแอปพลิเคชั่นที่เปิดใช้งาน²
ในส่วนนี้จะแนะนำการทดสอบสองวิธีของ API: HTTP โดยใช้รูปแบบ JSON และ EPICS เพื่อความเรียบง่าย Python (งูหลาม Webเว็บไซต์³) ใช้เป็น exampภาษาโฮสต์คอมพิวเตอร์ซึ่งเข้าถึงได้และใช้งานง่ายสำหรับโปรแกรมเมอร์ที่ไม่ใช่มืออาชีพ
3.1 การใช้ Python และ HTTP
ในฐานะอดีตampสมมติว่าคุณต้องการอ่านผลรวมของกระแสที่วัดได้ด้วย Python คุณต้องใช้ URL สำหรับ IO เฉพาะนั้น FX4 web GUI มีวิธีง่ายๆ ในการค้นหาสิ่งนี้: เพียงคลิกขวาในฟิลด์และเลือก 'คัดลอก HTTP URL' เพื่อคัดลอกสตริงไปยังคลิปบอร์ด
ตอนนี้คุณสามารถใช้ Python เพื่อทดสอบการเชื่อมต่อกับซอฟต์แวร์ของผู้ใช้ผ่าน HTTP และ JSON คุณอาจต้องนำเข้าคำขอและไลบรารี JSON เพื่อจัดการคำขอ HTTP และการแยกวิเคราะห์ข้อมูล
1 ตัวอย่าง HTTP Python ง่าย ๆample
3.2 การใช้ EPICS
กระบวนการเชื่อมต่อ FX4 ผ่าน EPICS (Experimental Physics and Industrial Control System) นั้นคล้ายคลึงกัน EPICS คือชุดเครื่องมือซอฟต์แวร์และแอปพลิเคชันที่ใช้ในการพัฒนาและนำระบบควบคุมแบบกระจายมาใช้ ซึ่งใช้กันอย่างแพร่หลายในสถานประกอบการทางวิทยาศาสตร์
- รับชื่อตัวแปรกระบวนการ EPICS (PV) สำหรับ IO ที่ต้องการ
- นำเข้าไลบรารี EPICS และอ่านค่า
2 รับชื่อ PV ของ EPICS
3 ตัวอย่าง EPICS ของ Python ง่ายๆample
นอกจากนี้ Pyramid ยังได้สร้างยูทิลิตี้ (การเชื่อมต่อ EPICs⁴) ช่วยให้คุณตรวจสอบตัวแปรกระบวนการ EPICS ได้แบบเรียลไทม์ เครื่องมือนี้มีประโยชน์ในการยืนยันว่าชื่อ EPICS PV ถูกต้องหรือไม่ และ FX4 กำลังให้บริการ PV บนเครือข่ายของคุณอย่างถูกต้องหรือไม่
4 PTC EPICS เชื่อมต่อ
API การเขียนโปรแกรม FX4
แนวคิดและวิธีการที่อธิบายไว้ในคู่มือนี้สร้างขึ้นจากแนวคิดที่กำหนดไว้ใน IGX – คู่มือโปรแกรมเมอร์ โปรดดูเอกสารนั้นสำหรับคำอธิบายและตัวอย่างampกล่าวถึงวิธีการทำงานของการเขียนโปรแกรมและอินเทอร์เฟซ IGX ขั้นพื้นฐาน คู่มือนี้จะครอบคลุมเฉพาะ IO เฉพาะอุปกรณ์และฟังก์ชันการทำงานที่เป็นเอกลักษณ์ของ FX4
4.1 อินพุตแบบอะนาล็อก IO
IO เหล่านี้เกี่ยวข้องกับการกำหนดค่าและการรวบรวมข้อมูลบนอินพุตกระแสแอนะล็อกของ FX4 หน่วยของอินพุตช่องสัญญาณจะขึ้นอยู่กับการตั้งค่าที่ผู้ใช้กำหนดได้ที่เรียกว่า “Sample Units” ตัวเลือกที่ถูกต้อง ได้แก่ pA, nA, uA, mA และ A
ทั้ง 4 ช่องใช้อินเทอร์เฟซ IO เดียวกันและควบคุมอย่างอิสระ แทนที่ channel_x ด้วย channel_1 , channel_2 , channel_3 หรือ channel_4 ตามลำดับ
เส้นทางไอโอ | คำอธิบาย |
/fx4/adc/channel_x | อ่านจำนวนอินพุตกระแสไฟฟ้าที่วัดได้แบบอ่านทันที |
/fx4/adc/channel_x/สเกลาร์ | หมายเลข สเกลาร์ไร้หน่วยแบบง่ายที่นำไปใช้กับช่องสัญญาณ โดยค่าเริ่มต้นคือ 1 |
/fx4/adc/ช่อง_x/ศูนย์_ออฟเซ็ต | หมายเลข ออฟเซ็ตปัจจุบันในหน่วย nA สำหรับช่องสัญญาณ |
IO ต่อไปนี้ไม่เป็นอิสระจากช่องสัญญาณและใช้กับทุกช่องพร้อมกัน
เส้นทางไอโอ | คำอธิบาย |
/fx4/channel_sum | READONLY NUMBER ผลรวมของช่องอินพุตปัจจุบัน |
/fx4/adc_unit | STRING กำหนดหน่วยผู้ใช้ปัจจุบันสำหรับแต่ละช่องและผลรวม ตัวเลือก: “pa”, “na”, “ua”, “ma”, “a” |
/fx4/ช่วง | STRING กำหนดช่วงอินพุตปัจจุบัน ดู GUI เพื่อดูว่ารหัสช่วงแต่ละช่วงสอดคล้องกับขีดจำกัดอินพุตกระแสไฟสูงสุดและ BW อย่างไร ตัวเลือก: “0”, “1”, “2”, “3”, “4”, “5”, “6”, “7” |
/fx4/adc/sample_ความถี่ | NUMBER ความถี่เป็นเฮิรตซ์ที่ampข้อมูลจะถูกเฉลี่ยไปที่ ซึ่งจะควบคุมอัตราสัญญาณต่อเสียงรบกวนและข้อมูลสำหรับทุกช่องสัญญาณ |
/fx4/adc/การแปลงความถี่ | หมายเลข ความถี่เป็นเฮิรตซ์ที่ ADC จะแปลงค่าอนาล็อกเป็นค่าดิจิทัล โดยค่าเริ่มต้นคือ 100kHz และคุณแทบจะไม่ต้องเปลี่ยนค่านี้เลย |
/fx4/adc/offset_correction | ผลรวมของค่าออฟเซ็ตปัจจุบันของทุกช่องสัญญาณ |
4.2 IO เอาท์พุตอนาล็อก
IO เหล่านี้เกี่ยวข้องกับการกำหนดค่าเอาต์พุตอะนาล็อกทั่วไปของ FX4 ซึ่งอยู่ใต้อินพุตอะนาล็อกที่แผงด้านหน้า ทั้ง 4 ช่องใช้อินเทอร์เฟซ IO เดียวกันและควบคุมอย่างอิสระ แทนที่ channel_x ด้วย channel_1 , channel_2 , channel_3 หรือ channel_4 ตามลำดับ
เส้นทางไอโอ | คำอธิบาย |
/fx4/dac /ช่อง_x | คำสั่ง NUMBERtagอีเอาท์พุท ค่านี้สามารถเขียนได้เฉพาะเมื่อโหมดเอาท์พุตถูกตั้งค่าเป็นแบบแมนนวลเท่านั้น |
/fx4/dac/channel_x/readback | อ่านจำนวนที่วัดได้tagอีเอาท์พุท สิ่งนี้มีประโยชน์มากที่สุดเมื่อใช้โหมดเอาท์พุตนิพจน์ |
/fx4/dac/channel_x/output_mode | STRING ตั้งค่าโหมดเอาต์พุตสำหรับช่องสัญญาณ ตัวเลือก: “คู่มือ”, “การแสดงออก”, “การควบคุมกระบวนการ” |
/fx4/dac/ช่อง_x/slew_control_enable | BOOL เปิดใช้งานหรือปิดใช้งานการจำกัดอัตราการเปลี่ยนแปลง |
/fx4/dac/ช่อง_x/อัตราสลูว์ | หมายเลข อัตราการเปลี่ยนแปลงเป็น V/s สำหรับช่องสัญญาณ |
/fx4/dac/channel_x/upper_limit | หมายเลข จำนวนคำสั่งสูงสุดที่อนุญาตtage สำหรับช่อง ใช้ได้กับทุกโหมดการทำงาน |
/fx4/dac/ช่อง_x/ขีดจำกัดล่าง | หมายเลข คำสั่งขั้นต่ำที่อนุญาต voltage สำหรับช่อง ใช้ได้กับทุกโหมดการทำงาน |
/fx4/dac/channel _ x/ เอาต์พุต _ นิพจน์ | STRING ตั้งค่าสตริงนิพจน์ที่ใช้โดยช่องเมื่ออยู่ในโหมดเอาต์พุตนิพจน์ |
/fx4/dac/ช่อง_x/ปุ่มรีเซ็ต | ปุ่ม รีเซ็ตคำสั่ง voltagอีถึง 0 |
4.3 อินพุตและเอาต์พุตดิจิตอล
IO เหล่านี้เกี่ยวข้องกับการควบคุมอินพุตและเอาต์พุตดิจิทัลวัตถุประสงค์ทั่วไปต่างๆ ที่พบใน FX4
เส้นทางไอโอ | คำอธิบาย |
/เอฟเอ็กซ์4/ฟร1 | READONLY BOOL ตัวรับไฟเบอร์ 1. |
/เอฟเอ็กซ์4/ฟุต1 | เครื่องส่งสัญญาณไฟเบอร์ BOOL 1. |
/เอฟเอ็กซ์4/ฟร2 | READONLY BOOL ตัวรับไฟเบอร์ 2. |
/เอฟเอ็กซ์4/ฟุต2 | เครื่องส่งสัญญาณไฟเบอร์ BOOL 2. |
/เอฟเอ็กซ์4/ฟร3 | READONLY BOOL ตัวรับไฟเบอร์ 3. |
/เอฟเอ็กซ์4/ฟุต3 | เครื่องส่งสัญญาณไฟเบอร์ BOOL 3. |
/fx4/การขยายตัวทางดิจิตอล/d1 | BOOL D1 การขยายดิจิตอลแบบสองทิศทาง IO |
/fx4/การขยายตัวทางดิจิตอล/d2 | BOOL D2 การขยายดิจิตอลแบบสองทิศทาง IO |
/fx4/การขยายตัวทางดิจิตอล/d3 | BOOL D3 การขยายดิจิตอลแบบสองทิศทาง IO |
/fx4/การขยายตัวทางดิจิตอล/d4 | BOOL D4 การขยายดิจิตอลแบบสองทิศทาง IO |
4.3.1 การกำหนดค่า IO ดิจิทัล
ดิจิทัลทั้งหมดมี IO ย่อยสำหรับกำหนดค่าพฤติกรรมของดิจิทัล รวมถึงโหมดการทำงานที่ควบคุมวิธีการทำงานของดิจิทัล ดิจิทัลแต่ละตัวจะมีชุดตัวเลือกที่ใช้ได้แตกต่างกัน ดูรายละเอียดเกี่ยวกับตัวเลือกที่ใช้ได้สำหรับ IO ใด ๆ ได้ที่ GUI
เส้นทาง IO ของเด็ก | คำอธิบาย |
…/โหมด | STRING โหมดการทำงานสำหรับดิจิตอล ตัวเลือก: “อินพุต”, “เอาต์พุต”, “pwm”, “ตัวจับเวลา”, “ตัวเข้ารหัส”, “จับภาพ”, “uart_rx”, “uart_tx”, “can_rx”, “can_tx”, “pru_input” หรือ “pru_output” |
…/สัญญาณกระบวนการ | STRING ชื่อสัญญาณการควบคุมกระบวนการ ถ้ามี |
…/โหมดดึง | โหมดดึงขึ้น/ลง STRING สำหรับอินพุตดิจิทัล ตัวเลือก: “ขึ้น”, “ลง” หรือ “ปิดใช้งาน” |
4.4 การควบคุมรีเลย์
รีเลย์ทั้งสองได้รับการควบคุมแยกกันและใช้อินเทอร์เฟซประเภทเดียวกัน แทนที่ relay_x ด้วย relay_a หรือ relay_b ตามลำดับ
เส้นทางไอโอ | คำอธิบาย |
/fx4/relay_x/permit/user_คำสั่ง | BOOL สั่งให้รีเลย์เปิดหรือปิด คำสั่ง true จะพยายามปิดรีเลย์หากได้รับอนุญาตในการล็อก และคำสั่ง false จะเปิดรีเลย์เสมอ |
/fx4/รีเลย์_x/สถานะ | READONLY STRING สถานะปัจจุบันของรีเลย์ รีเลย์ที่ล็อคจะเปิดอยู่แต่ไม่สามารถปิดได้เนื่องจากมีการล็อค สถานะ: "เปิด", "ปิด" หรือ "ล็อค" |
/fx4/relay_x/ปิด_อัตโนมัติ | BOOL เมื่อตั้งค่าเป็น true รีเลย์จะปิดโดยอัตโนมัติเมื่อได้รับอนุญาตการล็อค ค่าเริ่มต้นคือ False |
/fx4/relay_x/ รอบ_นับ | จำนวนรอบการทำงานของรีเลย์ตั้งแต่การรีเซ็ตครั้งล่าสุด มีประโยชน์สำหรับการติดตามอายุการใช้งานของรีเลย์ |
4.5 ปริมาณสูงtagอี โมดูล
ดู IGX – คู่มือโปรแกรมเมอร์สำหรับรายละเอียดเกี่ยวกับ FX4 ที่มีปริมาณสูงtagอินเทอร์เฟซอิเล็กทรอนิกส์ พาธพาเรนต์ของคอมโพเนนต์คือ /fx4/high_votlage
4.6 ตัวควบคุมปริมาณ
ดูรายละเอียดเกี่ยวกับอินเทอร์เฟซตัวควบคุมปริมาณ FX4 ได้จาก IGX – Programmer Manual เส้นทางหลักของส่วนประกอบคือ /fx4/dose_controller
FX4 Python เวอร์ชันใหม่ampเลส
5.1 เครื่องบันทึกข้อมูลโดยใช้ HTTP
อดีตนี้ampสาธิตวิธีการบันทึกค่าอ่านจำนวนหนึ่งและบันทึกลงใน CSV fileการเลือกระยะเวลาหน่วงเวลานานระหว่างการอ่านค่า ช่วยให้คุณสามารถบันทึกข้อมูลระยะยาวได้ แม้ว่า FX4ampอัตราการส่งข้อมูลถูกตั้งให้สูงขึ้น ช่วยให้คุณสามารถรวบรวมและจัดเก็บการวัดค่าได้อย่างต่อเนื่องเป็นระยะเวลานานโดยไม่ทำให้ระบบทำงานหนักเกินไป ทำให้มั่นใจได้ว่าข้อมูลจะถูกบันทึกในช่วงเวลาที่เหมาะสมกับการวิเคราะห์ของคุณ ความล่าช้าระหว่างการอ่านค่าช่วยควบคุมความเร็วในการบันทึกข้อมูล ทำให้จัดเก็บข้อมูลได้อย่างมีประสิทธิภาพและลดความเสี่ยงของจุดข้อมูลที่หายไป ในขณะที่ยังคงได้รับประโยชน์จากความเร็วสูงampลิงสำหรับการวัดแบบเรียลไทม์
5.2 GUI ของ Python ที่เรียบง่าย
อดีตที่สองample ใช้เครื่องมือ GUI Tkinter ซึ่งสร้างขึ้นสำหรับ Python เพื่อสร้างการแสดงผลของกระแสไฟฟ้าที่วัดได้ อินเทอร์เฟซนี้ช่วยให้คุณมองเห็นค่าที่อ่านได้ในรูปแบบกราฟิกที่ใช้งานง่าย จอภาพสามารถปรับขนาดให้ใหญ่พอที่จะอ่านได้จากทั่วห้อง ทำให้เหมาะสำหรับสถานการณ์ที่จำเป็นต้องมีการตรวจสอบแบบเรียลไทม์ในพื้นที่ขนาดใหญ่ Tkinter มอบวิธีง่ายๆ ในการสร้างอินเทอร์เฟซแบบโต้ตอบ และด้วยการผสานรวมกับ FX4 คุณสามารถสร้างการแสดงผลของกระแสไฟฟ้าที่วัดได้อย่างรวดเร็ว ซึ่งสามารถปรับแต่งให้เหมาะกับความต้องการเฉพาะของคุณได้
5.3 ง่าย ๆ Webซ็อกเก็ตเอ็กซ์ample
อดีตนี้ampเลแสดงให้เห็นถึง Webอินเทอร์เฟซซ็อกเก็ตซึ่งเป็นวิธีการที่ต้องการสำหรับการอ่านข้อมูลจาก FX4 เมื่อต้องการแบนด์วิดท์สูงสุด Webซ็อกเก็ตให้ช่องทางการสื่อสารแบบฟูลดูเพล็กซ์แบบเรียลไทม์ ซึ่งช่วยให้ถ่ายโอนข้อมูลได้เร็วขึ้นและมีประสิทธิภาพมากกว่าเมื่อเปรียบเทียบกับวิธีการอื่นๆ
อดีตampเลอ่านซีรีส์ของ sampรายงานเวลาเฉลี่ยต่อวินาทีampและความหน่วงสูงสุด และบันทึกข้อมูลลงใน CSV file สำหรับการวิเคราะห์ในภายหลัง การตั้งค่านี้ช่วยให้สามารถตรวจสอบแบบเรียลไทม์ได้อย่างมีประสิทธิภาพและจัดเก็บข้อมูลได้ง่ายสำหรับการประมวลผลภายหลัง
ประสิทธิภาพเฉพาะที่สามารถทำได้ด้วย Webซ็อกเก็ตขึ้นอยู่กับความน่าเชื่อถือของอินเทอร์เฟซอีเทอร์เน็ตของคุณและลำดับความสำคัญของแอปพลิเคชันของคุณ สำหรับผลลัพธ์ที่ดีที่สุด โปรดตรวจสอบให้แน่ใจว่าเครือข่ายของคุณเสถียรและให้ความสำคัญกับการส่งข้อมูลของ FX4 หากจำเป็น
เวอร์ชัน: v3
FX4 Python เวอร์ชันใหม่ampเล: 21
เอกสาร / แหล่งข้อมูล
![]() |
โปรแกรมเมอร์ PYRAMID FX4 [พีดีเอฟ] คู่มือการใช้งาน โปรแกรมเมอร์ FX4, FX4, โปรแกรมเมอร์ |