www.pyramid.tech
FX4
FX4 Programmer Manual
ID ng Dokumento: 2711715845
Bersyon: v3
FX4 Programmer
ID ng Dokumento: 2711715845
FX4 – FX4 Programmer Manual
ID ng Dokumento: 2711650310
May-akda | Matthew Nichols |
May-ari | Pinuno ng Proyekto |
Layunin | Ipaliwanag ang mga konsepto ng programming na kinakailangan upang magamit ang API at mapalawak ang produkto sa pamamagitan ng mga panlabas na application. |
Saklaw | Mga konsepto ng programming na nauugnay sa FX4. |
Sinasadyang Madla | Mga developer ng software na interesado sa paggamit ng produkto. |
Proseso | https://pyramidtc.atlassian.net/wiki/pages/createpage.action? spaceKey=PQ&title=Standard%20Manual%20Creation%20Process |
Pagsasanay | HINDI MAAARI |
Kontrol sa Bersyon
Bersyon | Paglalarawan | Nai-save ni | Naka-save sa | Katayuan |
v3 | Nagdagdag ng simpleng overview at marami pang examples. | Matthew Nichols | Mar 6, 2025 10:29 PM | APPROVED |
v2 | Nagdagdag ng mga digital na interface ng IO at mga sanggunian pabalik sa IGX. | Matthew Nichols | Mayo 3, 2024 7:39 PM | APPROVED |
v1 | Paunang paglabas, ginagawa pa rin. | Matthew Nichols | Peb 21, 2024 11:25 PM | APPROVED |
Control ng Dokumento Hindi Reviewed
Kasalukuyang bersyon ng dokumento: v.1
Walang reviewitinalaga.
1.1 Mga lagda
para sa pinakabagong bersyon ng dokumento
Biyernes, Mar 7, 2025, 10:33 PM UTC
Pumirma si Matthew Nichols ; ibig sabihin: Review
Mga sanggunian
Dokumento | ID ng Dokumento | May-akda | Bersyon |
IGX – Manwal ng Programmer | 2439249921 | Matthew Nichols | 1 |
Tapos na ang FX4 Programmingview
Ang FX4 processor ay tumatakbo sa isang kapaligiran na tinatawag na IGX, na binuo sa QNX high-reliability realtime operating system mula sa BlackBerry (QNX Website¹). Nagbibigay ang IGX ng nababaluktot at komprehensibong application programming interface (API) para sa mga user na gustong magsulat ng sarili nilang host computer software.
Ang kapaligiran ng IGX ay ibinabahagi sa iba pang mga produkto ng Pyramid, na nagpapahintulot sa mga solusyon sa software na binuo para sa isang produkto na madaling mailipat sa iba.
Maaaring sumangguni ang mga programmer sa kumpletong dokumentasyon para sa IGX na makukuha sa Pyramid website sa: IGX | Modern Modular Control System Framework para sa Web-pinagana ang mga Application²
Nagbibigay ang seksyong ito ng panimula sa pagsubok ng dalawa sa mga pamamaraan ng API: HTTP gamit ang JSON format at EPICS. Para sa pagiging simple, Python (sawa Website³) ay ginagamit bilang example host computer language, na naa-access at madaling gamitin para sa mga di-propesyonal na programmer.
3.1 Paggamit ng Python at HTTP
Bilang isang example, ipagpalagay na gusto mong basahin ang kabuuan ng mga sinusukat na alon gamit ang Python. Kailangan mo ang URL para sa partikular na IO. Ang FX4 web Nagbibigay ang GUI ng madaling paraan upang mahanap ito: i-right click lang sa field at piliin ang 'Kopyahin ang HTTP URL' para kopyahin ang string sa clipboard.
Ngayon ay maaari mong gamitin ang Python upang subukan ang pagkakakonekta sa software ng user sa pamamagitan ng HTTP at JSON. Maaaring kailanganin mong i-import ang mga kahilingan at json library upang mahawakan ang mga kahilingan sa HTTP at pag-parse ng data.
1 Simpleng Python HTTP Halample
3.2 Paggamit ng EPICS
Ang proseso para sa pagkonekta sa FX4 sa pamamagitan ng EPICS (Experimental Physics at Industrial Control System) ay magkatulad. Ang EPICS ay isang hanay ng mga software tool at application na ginagamit upang bumuo at magpatupad ng mga distributed control system, na malawakang ginagamit sa mga pasilidad na pang-agham.
- Kunin ang EPICS process variable (PV) na pangalan para sa gustong IO.
- I-import ang EPICS library at basahin ang halaga.
2 Kumuha ng EPICS PV Name
3 Simple Python EPICS Halample
Bilang karagdagan, ang Pyramid ay lumikha ng isang utility (EPICS Connect⁴) na nagbibigay-daan sa iyong subaybayan ang mga variable ng proseso ng EPICS sa real-time. Nakakatulong ang tool na ito upang kumpirmahin kung tama ang pangalan ng EPICS PV at inihahatid ng FX4 ang PV nang tama sa iyong network.
4 PTC EPICS Connect
FX4 Programming API
Ang mga konsepto at pamamaraan na inilarawan sa manwal na ito ay batay sa mga konseptong itinatag sa IGX – Programmer Manual. Pakitingnan ang dokumentong iyon para sa paliwanag at halamples ng kung paano gumagana ang pangunahing IGX programming at mga interface. Saklaw lang ng manual na ito ang IO na partikular sa device at functionality na natatangi sa FX4.
4.1 Analog Input IO
Ang mga IO na ito ay nauugnay sa pag-configure at pagkolekta ng data sa mga analog na kasalukuyang input ng FX4. Ang mga unit ng mga input ng channel ay batay sa setting na na-configure ng user na tinatawag na “Sample Units", ang mga wastong opsyon ay kinabibilangan ng pA, nA, uA, mA, at A.
Ang lahat ng 4 na channel ay gumagamit ng parehong interface IO at independiyenteng kinokontrol. Palitan ang channel_x ng channel_1 , channel_2 , channel_3 , o channel_4 ayon sa pagkakabanggit.
IO Path | Paglalarawan |
/fx4/adc/channel_x | READONLY NUMBER Sinukat ang kasalukuyang input. |
/fx4/adc/channel_x/scalar | NUMBER Simpleng unitless scalar na inilapat sa channel, 1 bilang default. |
/fx4/adc/channel_x/zero_offset | NUMBER Kasalukuyang offset sa nA para sa channel. |
Ang mga sumusunod na IO ay hindi independiyenteng channel at inilalapat sa lahat ng mga channel nang sabay-sabay.
IO Path | Paglalarawan |
/fx4/channel_sum | READONLY NUMBER Kabuuan ng kasalukuyang mga input channel. |
/fx4/adc_unit | Itinakda ng STRING ang kasalukuyang mga unit ng user para sa bawat channel at kabuuan. Mga Pagpipilian: “pa”, “na”, “ua”, “ma”, “a” |
/fx4/range | Itinakda ng STRING ang kasalukuyang saklaw ng input. Tingnan ang GUI para sa kung paano tumutugma ang bawat code ng hanay sa maximum na kasalukuyang mga limitasyon ng input at BW. Mga Pagpipilian: “0”, “1”, “2”, “3”, “4”, “5”, “6”, “7” |
/fx4/adc/sample_frequency | NUMBER Ang dalas sa Hz na sampang data ay ia-average sa. Kinokontrol nito ang signal-to-noise at data rate para sa lahat ng channel. |
/fx4/adc/conversion_frequency | NUMBER Ang dalas sa Hz kung saan ang ADC ay magko-convert ng analog sa mga digital na halaga sa. Bilang default, ito ay 100kHz, at bihira mo lang kailangang baguhin ang halagang ito. |
/fx4/adc/offset_correction | READONLY NUMBER Kabuuan ng lahat ng kasalukuyang offset ng channel. |
4.2 Analog Output IO
Ang mga IO na ito ay nauugnay sa pagsasaayos ng mga pangkalahatang layunin na analog output ng FX4 na matatagpuan sa ilalim ng mga analog input sa front panel. Ang lahat ng 4 na channel ay gumagamit ng parehong interface IO at independiyenteng kinokontrol. Palitan ang channel_x ng channel_1 , channel_2 , channel_3 , o channel_4 ayon sa pagkakabanggit.
IO Path | Paglalarawan |
/fx4/dac /channel_x | NUMBER Command voltage output. Ang halagang ito ay maaari lamang isulat kapag ang output mode ay nakatakda sa manual. |
/fx4/dac/channel_x/readback | READONLY NUMBER Sinukat voltage output. Ito ay pinaka-kapaki-pakinabang kapag gumagamit ng expression output mode. |
/fx4/dac/channel_x/output_mode | Itinakda ng STRING ang output mode para sa channel. Mga Pagpipilian: “manual”, “expression”, “process_control” |
/fx4/dac/channel _ x/slew_control_enable | BOOL Pinapagana o hindi pinapagana ang paglilimita sa slew rate. |
/fx4/dac/channel_ x/slew_rate | NUMBER Slew rate sa V/s para sa channel. |
/fx4/dac/channel_x/upper_limit | NUMBER Ang maximum na pinapayagang command voltage para sa channel. Nalalapat sa lahat ng mga mode ng operasyon. |
/fx4/dac/channel _ x/lower_limit | NUMBER Ang minimum na pinapayagang command voltage para sa channel. Nalalapat sa lahat ng mga mode ng operasyon. |
/fx4/dac/channel _ x/ output _ expression | STRING Itinatakda ang expression string na ginagamit ng channel kapag ito ay nasa expression output mode. |
/fx4/dac/channel _ x/reset_button | BUTTON Nire-reset ang command voltage hanggang 0. |
4.3 Digital Input at Output
Ang mga IO na ito ay nauugnay sa pagkontrol sa iba't ibang pangkalahatang layunin na digital input at output na makikita sa FX4.
IO Path | Paglalarawan |
/fx4/fr1 | READONLY BOOL Fiber receiver 1. |
/fx4/ft1 | BOOL Fiber transmitter 1. |
/fx4/fr2 | READONLY BOOL Fiber receiver 2. |
/fx4/ft2 | BOOL Fiber transmitter 2. |
/fx4/fr3 | READONLY BOOL Fiber receiver 3. |
/fx4/ft3 | BOOL Fiber transmitter 3. |
/fx4/digital_expansion/d1 | BOOL D1 bidirectional digital expansion IO. |
/fx4/digital_expansion/d2 | BOOL D2 bidirectional digital expansion IO. |
/fx4/digital_expansion/d3 | BOOL D3 bidirectional digital expansion IO. |
/fx4/digital_expansion/d4 | BOOL D4 bidirectional digital expansion IO. |
4.3.1 Digital IO Configuration
Ang lahat ng digital ay may child IO para sa pag-configure ng kanilang gawi kasama ang operating mode na kumokontrol kung paano gagana ang digital na iyon. Ang bawat digital ay magkakaroon ng iba't ibang hanay ng mga available na opsyon. Tingnan ang GUI para sa mga detalye sa kung anong mga opsyon ang available para sa kung anong IO.
Bata IO Landas | Paglalarawan |
…/mode | STRING Operation mode para sa digital. Mga Opsyon: “input”, “output”, “pwm”, “timer”, “encoder”, “capture”, “uart_rx”, “uart_tx”, “can_rx”, “can_tx”, “pru_input”, o “pru_output” |
…/process_signal | STRING Ang pangalan ng signal ng control ng proseso, kung mayroon man. |
…/pull_mode | STRING Pull up/down mode para sa digital input. Mga Pagpipilian: "pataas", "pababa", o "huwag paganahin" |
4.4 Kontrol ng Relay
Ang parehong mga relay ay independiyenteng kinokontrol at nagbabahagi ng parehong uri ng interface. Palitan ang relay_x ng relay_a o relay_b ayon sa pagkakabanggit.
IO Path | Paglalarawan |
/fx4/relay _ x/permit / user _ command | BOOL Nag-uutos sa relay na bukas o sarado. Ang isang tunay na utos ay susubukan na isara ang relay kung ang mga interlock ay ipinagkaloob, at ang maling utos ay palaging magbubukas ng relay. |
/fx4/relay _ x/estado | READONLY STRING Ang kasalukuyang estado ng relay. Ang mga naka-lock na relay ay bukas ngunit hindi maaaring isara dahil sa isang interlock. Estado: “binuksan”, “sarado”, o “naka-lock” |
/fx4/relay _ x/awtomatikong _ malapit | BOOL Kapag nakatakda sa true, awtomatikong magsasara ang relay kapag naibigay ang mga interlock. Mali bilang default. |
/fx4/relay _ x/ cycle _ count | READONLY NUMBER Ang bilang ng mga relay cycle mula noong huling pag-reset. Kapaki-pakinabang para sa pagsubaybay sa buhay ng relay. |
4.5 Mataas na Voltage Modyul
Tingnan ang IGX – Programmer Manual para sa mga detalye sa FX4 high voltage interface. Ang component parent path ay /fx4/high_votlage .
4.6 Dose Controller
Tingnan ang IGX – Programmer Manual para sa mga detalye sa FX4 dose controller interface. Ang path ng magulang ng bahagi ay /fx4/dose_controller .
FX4 Python Halamples
5.1 Data Logger gamit ang HTTP
Itong example ay nagpapakita kung paano kumuha ng isang bilang ng mga pagbabasa at i-save ang mga ito sa isang CSV file. Sa pamamagitan ng pagpili ng mahabang pagkaantala sa pagitan ng mga pagbabasa, maaari kang magsagawa ng pangmatagalang pag-log ng data kahit na ang FX4 sampling rate ay nakatakdang mas mataas. Nagbibigay-daan ito sa iyo na patuloy na mangolekta at mag-imbak ng mga sukat sa mga pinalawig na panahon nang hindi nababalot ang system, na tinitiyak na ang data ay nakukuha sa mga pagitan na angkop para sa iyong pagsusuri. Ang pagkaantala sa pagitan ng mga pagbabasa ay nakakatulong na ayusin ang bilis ng pag-log ng data, na nagbibigay-daan para sa mahusay na pag-iimbak at pagbabawas ng panganib ng mga nawawalang mga punto ng data habang nakikinabang pa rin mula sa mga high-speed na s.ampling para sa real-time na mga sukat.
5.2 Simpleng Python GUI
Ang pangalawang exampGinagamit ni le ang tool na Tkinter GUI, na binuo para sa Python, upang lumikha ng isang pagpapakita ng mga sinusukat na alon. Binibigyang-daan ka ng interface na ito na mailarawan ang kasalukuyang mga pagbabasa sa isang madaling gamitin na graphical na format. Maaaring i-resize ang display upang gawin itong sapat na malaki upang mabasa mula sa kabuuan ng isang silid, na ginagawa itong perpekto para sa mga sitwasyon kung saan kailangan ang real-time na pagsubaybay sa mas malalaking espasyo. Nagbibigay ang Tkinter ng madaling paraan upang lumikha ng mga interactive na interface, at sa pamamagitan ng pagsasama nito sa FX4, mabilis kang makakagawa ng visual na display ng mga sinusukat na alon na maaaring i-customize upang umangkop sa iyong mga partikular na pangangailangan.
5.3 Simple WebSocket Halample
Itong example ay nagpapakita ng WebSockets interface, na siyang gustong paraan para sa pagbabasa ng data mula sa FX4 kapag kinakailangan ang maximum bandwidth. WebNagbibigay ang mga socket ng real-time, full-duplex na channel ng komunikasyon, na nagbibigay-daan para sa mas mabilis at mas mahusay na paglipat ng data kumpara sa iba pang mga pamamaraan.
Ang example reads a series of samples, nag-uulat ng average na oras bawat sample at maximum latency, at sine-save ang data sa isang CSV file para sa pagsusuri sa ibang pagkakataon. Nagbibigay-daan ang setup na ito para sa mahusay na real-time na pagsubaybay at madaling pag-imbak ng data para sa post-processing.
Ang partikular na pagganap na maaaring makamit sa WebAng mga socket ay nakasalalay sa pagiging maaasahan ng iyong Ethernet interface at ang relatibong priyoridad ng iyong aplikasyon. Para sa pinakamainam na resulta, tiyaking matatag ang iyong network at ang pagpapadala ng data ng FX4 ay priyoridad kung kinakailangan.
Bersyon: v3
FX4 Python Halamples: 21
Mga Dokumento / Mga Mapagkukunan
![]() |
PYRAMID FX4 Programmer [pdf] Manwal ng Pagtuturo FX4 Programmer, FX4, Programmer |