www.pyramid.tech
FX4
Ръководство за програмист FX4
Идент. № на документа: 2711715845
Версия: v3
Програматор FX4
Идент. № на документа: 2711715845
FX4 – Ръководство за FX4 програмист
ID на документа: 2711650310
| Автор | Матю Никълс |
| Собственик | Ръководител на проекта |
| Цел | Обяснете концепциите за програмиране, необходими за използване на API и разширяване на продукта чрез външни приложения. |
| Обхват | Концепции за програмиране, свързани с FX4. |
| Предназначена публика | Разработчици на софтуер, които се интересуват от използването на продукта. |
| Процес | https://pyramidtc.atlassian.net/wiki/pages/createpage.action? spaceKey=PQ&title=Стандартен%20Ръчен%20Процес%20На%XNUMXСъздаване |
| обучение | НЕ Е ПРИЛОЖИМО |
Контрол на версиите
| Версия | Описание | Запазено от | Запазено на | Статус |
| v3 | Добавен прост надview и още бившиampлес. | Матю Никълс | 6 март 2025 г. 10:29 ч | ОДОБРЕНО |
| v2 | Добавени цифрови IO интерфейси и препратки към IGX. | Матю Никълс | 3 май 2024 г. 7:39 ч | ОДОБРЕНО |
| v1 | Първоначално издание, все още се работи. | Матю Никълс | 21 февруари 2024 г., 11:25 ч | ОДОБРЕНО |
Контрол на документи Не Reviewed
Текуща версия на документа: v.1
Няма повторноviewers назначени.
1.1 Подписи
за най-новата версия на документа
Петък, 7 март 2025 г., 10:33 ч. UTC
Матю Никълс подписа ; значение: Review
Референции
| Документ | ID на документа | Автор | Версия |
| IGX – Ръководство за програмист | 2439249921 | Матю Никълс | 1 |
Програмирането на FX4 приключиview
Процесорът FX4 работи в среда, наречена IGX, която е изградена върху високонадеждната операционна система за реално време QNX от BlackBerry (QNX Webсайт¹). IGX предоставя гъвкав и всеобхватен интерфейс за приложно програмиране (API) за потребители, които искат да напишат собствен софтуер за хост компютър.
Средата IGX се споделя между други продукти на Pyramid, което позволява софтуерни решения, разработени за един продукт, да бъдат лесно прехвърлени към други.
Програмистите могат да направят справка с пълната документация за IGX, налична в Pyramid webсайт на: IGX | Модерна рамка за модулна система за управление за Web-активирани приложения²
Този раздел предоставя въведение в тестването на два от API методите: HTTP, използващ JSON формат, и EPICS. За опростяване, Python (Python Webсайт³) се използва като примерample хост компютърен език, който е достъпен и лесен за използване от непрофесионални програмисти.
3.1 Използване на Python и HTTP
Като бившample, приемете, че искате да прочетете сумата от измерените токове с Python. Имате нужда от URL за този конкретен IO. FX4 web GUI предоставя лесен начин да намерите това: просто щракнете с десния бутон върху полето и изберете „Копиране на HTTP“. URL', за да копирате низа в клипборда.

Сега можете да използвате Python, за да тествате връзката с потребителския софтуер чрез HTTP и JSON. Може да се наложи да импортирате заявките и json библиотеките, за да обработвате HTTP заявките и анализирането на данни.
1 Simple Python HTTP Example
3.2 Използване на EPICS
Процесът за свързване на FX4 чрез EPICS (Experimental Physics and Industrial Control System) е подобен. EPICS е набор от софтуерни инструменти и приложения, използвани за разработване и внедряване на разпределени системи за управление, широко използвани в научни съоръжения.
- Вземете името на променливата на процеса (PV) на EPICS за желания входно-изходен процес.
- Импортирайте библиотеката EPICS и прочетете стойността.
2 Вземете EPICS PV име
3 Simple Python EPICS Прample
Освен това, Pyramid създаде помощна програма (EPICS Connect⁴), който ви позволява да наблюдавате променливите на процеса на EPICS в реално време. Този инструмент е полезен за проверка дали името на фотоволтаичния модул на EPICS е правилно и дали FX4 обслужва фотоволтаичния модул правилно във вашата мрежа.
4 PTC EPICS Connect
FX4 програмен API
Концепциите и методите, описани в това ръководство, се основават на концепциите, установени в IGX – Наръчник на програмиста. Моля, вижте този документ за обяснение и прampописва как работят основното IGX програмиране и интерфейси. Това ръководство ще обхваща само специфичните за устройството IO и функционалността, която е уникална за FX4.
4.1 Аналогов вход IO
Тези IO се отнасят до конфигуриране и събиране на данни за аналоговите токови входове на FX4. Единиците на входовете на канала са базирани на конфигурируема от потребителя настройка, наречена „Sample Units”, валидните опции включват pA, nA, uA, mA и A.
Всичките 4 канала използват един и същ интерфейс IO и се управляват независимо. Заменете канал_x съответно с канал_1, канал_2, канал_3 или канал_4.
| IO път | Описание |
| /fx4/adc/канал_x | САМО ЗА ЧЕТЕНЕ НОМЕР Измерен токов вход. |
| /fx4/adc/channel_x/скалар | НОМЕР Прост безмерен скалар, приложен към канала, 1 по подразбиране. |
| /fx4/adc/channel_x/zero_offset | НОМЕР Текущо отместване в nA за канала. |
Следните IO не са независими от канала и се прилагат към всички канали едновременно.
| IO път | Описание |
| /fx4/channel_sum | ЧИСЛО САМО ЗА ЧЕТЕНЕ Сума на текущите входни канали. |
| /fx4/adc_unit | STRING Задава текущите потребителски мерни единици за всеки канал и сума. Опции: „pa“, „na“, „ua“, „ma“, „a“ |
| /fx4/диапазон | СТРИНГ Задава диапазона на текущия вход. Вижте графичния потребителски интерфейс за това как всеки код на диапазона съответства на максималните граници на входния ток и ширината на лентата (BW). Опции: “0”, “1”, “2”, “3”, “4”, “5”, “6”, “7” |
| /fx4/adc/sample_честота | ЧИСЛО Честотата в Hz, която sample данните ще бъдат усреднени до. Това контролира съотношението сигнал/шум и скоростта на данни за всички канали. |
| /fx4/adc/conversion_frequency | ЧИСЛО Честотата в Hz, на която аналогово-цифровият преобразувател (ADC) ще преобразува аналогови в цифрови стойности. По подразбиране това е 100 kHz и рядко ще се налага да променяте тази стойност. |
| /fx4/adc/offset_correction | ЧИСЛО САМО ЗА ЧЕТЕНЕ Сума от текущите отмествания на всички канали. |
4.2 Аналогов изход IO
Тези IO се отнасят до конфигурацията на аналоговите изходи с общо предназначение на FX4, намиращи се под аналоговите входове на предния панел. Всичките 4 канала използват един и същ интерфейс IO и се управляват независимо. Заменете канал_x съответно с канал_1, канал_2, канал_3 или канал_4.
| IO път | Описание |
| /fx4/dac /channel_x | NUMBER Команда томtage изход. Тази стойност може да бъде записана само когато изходният режим е зададен на ръчен. |
| /fx4/dac/channel_x/readback | САМО ЗА ЧЕТЕНЕ НОМЕР Измерен обемtage изход. Това е най-полезно, когато се използва режим на изход на изрази. |
| /fx4/dac/channel_x/output_mode | STRING Задава изходния режим за канала. Опции: „ръчно“, „израз“, „контрол_на_процеса“ |
| /fx4/dac/channel _ x/slew_control_enable | BOOL Активира или деактивира ограничаването на скоростта на нарастване. |
| /fx4/dac/channel_ x/скорост_на_навигация | НОМЕР Скорост на промяна на честотата (Slew) в V/s за канала. |
| /fx4/dac/channel_x/upper_limit | НОМЕР Максималният допустим обем на командатаtage за канала. Важи за всички режими на работа. |
| /fx4/dac/channel _ x/lower_limit | НОМЕР Минималният разрешен обем на командатаtage за канала. Важи за всички режими на работа. |
| /fx4/dac/channel _ x/ изходен _ израз | СТРИНГ Задава низа на израза, използван от канала, когато е в режим на изход на изрази. |
| /fx4/dac/channel _ x/бутон за нулиране | БУТОН Нулира силата на звука на командатаtage до 0. |
4.3 Цифрови входове и изходи
Тези IO се отнасят до управлението на различни цифрови входове и изходи с общо предназначение, намиращи се на FX4.
| IO път | Описание |
| /fx4/fr1 | САМО ЗА ЧЕТЕНЕ BOOL Оптичен приемник 1. |
| /fx4/ft1 | BOOL оптичен предавател 1. |
| /fx4/fr2 | САМО ЗА ЧЕТЕНЕ BOOL Оптичен приемник 2. |
| /fx4/ft2 | BOOL оптичен предавател 2. |
| /fx4/fr3 | САМО ЗА ЧЕТЕНЕ BOOL Оптичен приемник 3. |
| /fx4/ft3 | BOOL оптичен предавател 3. |
| /fx4/digital_expansion/d1 | BOOL D1 двупосочно цифрово разширение IO. |
| /fx4/digital_expansion/d2 | BOOL D2 двупосочно цифрово разширение IO. |
| /fx4/digital_expansion/d3 | BOOL D3 двупосочно цифрово разширение IO. |
| /fx4/digital_expansion/d4 | BOOL D4 двупосочно цифрово разширение IO. |
4.3.1 Цифрова IO конфигурация
Всички дигитални устройства имат дъщерен IO за конфигуриране на тяхното поведение, включително режим на работа, който контролира как ще работи това цифрово устройство. Всеки цифров ще има различен набор от налични опции. Вижте GUI за подробности относно това какви опции са налични за какъв IO.
| Дъщерен IO път | Описание |
| …/режим | Режим на работа STRING за цифровия режим. Опции: „вход“, „изход“, „pwm“, „таймер“, „енкодер“, „заснемане“, „uart_rx“, „uart_tx“, „can_rx“, „can_tx“, „pru_input“ или „pru_output“ |
| …/процес_сигнал | НИЗ Името на сигнала за управление на процеса, ако има такъв. |
| …/pull_mode | STRING Режим на издърпване нагоре/надолу за цифров вход. Опции: „нагоре“, „надолу“ или „деактивиране“ |
4.4 Релейно управление
И двете релета се управляват независимо и споделят един и същи тип интерфейс. Заменете relay_x съответно с relay_a или relay_b.
| IO път | Описание |
| /fx4/relay _ x/permit / user _ command | BOOL Командва релето да се отвори или затвори. Команда „true“ ще се опита да затвори релето, ако са разрешени блокировки, а команда „false“ винаги ще отваря релето. |
| /fx4/relay _ x/state | САМО ЗА ЧЕТЕНЕ НИЗ Текущото състояние на релето. Заключените релета са отворени, но не могат да бъдат затворени поради блокировка. Състояния: „отворено“, „затворено“ или „заключено“ |
| /fx4/relay _ x/автоматично _ затваряне | BOOL Когато е зададено на „true“, релето ще се затвори автоматично, когато блокировките са разрешени. По подразбиране е „False“. |
| /fx4/relay _ x/ брой цикли | ЧИСЛО САМО ЗА ЧЕТЕНЕ Броят цикли на релето от последното нулиране. Полезно за проследяване на живота на релето. |
4.5 Високо обtage Модул
Вижте IGX – Ръководство на програмиста за подробности относно FX4 high voltage интерфейс. Пътят на родителя на компонента е /fx4/high_votlage.
4.6 Контролер на дозата
Вижте ръководството на IGX – програмист за подробности относно интерфейса на контролера на дозата FX4. Пътят на родителския компонент е /fx4/dose_controller.
FX4 Python Exampлес
5.1 Data Logger, използващ HTTP
Този бившample демонстрира как да заснемете определен брой показания и да ги запишете в CSV file. Като изберете голямо забавяне между показанията, можете да извършвате дългосрочно регистриране на данни, дори ако FX4 sampскоростта на линг е зададена по-висока. Това ви позволява непрекъснато да събирате и съхранявате измервания за продължителни периоди, без да претоварвате системата, като гарантирате, че данните се улавят на интервали, подходящи за вашия анализ. Забавянето между отчитанията помага за регулиране на скоростта, с която се регистрират данните, позволявайки ефективно съхранение и намалявайки риска от липсващи точки от данни, като същевременно се възползвате от високоскоростните sampлинг за измервания в реално време.




5.2 Прост GUI на Python
Вторият ексample използва GUI инструмента Tkinter, който е създаден за Python, за да създаде дисплей на измерените токове. Този интерфейс ви позволява да визуализирате текущите показания в удобен за потребителя графичен формат. Дисплеят може да бъде преоразмерен, за да стане достатъчно голям за четене от другата страна на стаята, което го прави идеален за сценарии, при които е необходимо наблюдение в реално време в по-големи пространства. Tkinter предоставя лесен начин за създаване на интерактивни интерфейси и като го интегрирате с FX4, можете бързо да създадете визуален дисплей на измерените токове, който може да бъде персонализиран, за да отговаря на вашите специфични нужди.







5.3 Просто WebГнезда Example
Този бившample демонстрира WebSockets интерфейс, който е предпочитаният метод за четене на данни от FX4, когато се изисква максимална честотна лента. WebСокетите осигуряват канал за комуникация в пълен дуплекс в реално време, което позволява по-бърз и по-ефективен трансфер на данни в сравнение с други методи.
Бившиятample чете поредица от samples, отчита средното време за sample и максимално забавяне и записва данните в CSV file за по-късен анализ. Тази настройка позволява ефективно наблюдение в реално време и лесно съхранение на данни за последваща обработка.
Специфичното представяне, което може да се постигне с WebСокетите зависят от надеждността на вашия Ethernet интерфейс и относителния приоритет на вашето приложение. За оптимални резултати се уверете, че вашата мрежа е стабилна и че предаването на данни на FX4 е с приоритет, ако е необходимо.



Версия: v3
FX4 Python Exampлес: 21
Документи / Ресурси
![]() |
Програматор PYRAMID FX4 [pdf] Ръководство за употреба Програматор FX4, FX4, Програматор |
