www.pyramid.tech
FX4
FX4 程序员手册
文档编号:2711715845
版本:v3
FX4 编程器
文档编号:2711715845
FX4 – FX4 程序员手册
文件编号: 2711650310
| 作者 | 马修·尼科尔斯 |
| 所有者 | 项目主管 |
| 目的 | 解释使用 API 和通过外部应用程序扩展产品所需的编程概念。 |
| 范围 | FX4 相关的编程概念。 |
| 目标读者 | 对使用该产品感兴趣的软件开发人员。 |
| 过程 | https://pyramidtc.atlassian.net/wiki/pages/createpage.action? spaceKey=PQ&title=标准%20手册%20创建%20流程 |
| 训练 | 不适用 |
版本控制
| 版本 | 描述 | 保存者 | 保存于 | 地位 |
| v3 | 添加了一个简单的view 以及更多amp莱斯。 | 马修·尼科尔斯 | 6 年 2025 月 10 日下午 29:XNUMX | 得到正式认可的 |
| v2 | 添加了数字 IO 接口并引用回 IGX。 | 马修·尼科尔斯 | 3 年 2024 月 7 日下午 39:XNUMX | 得到正式认可的 |
| v1 | 初始版本,仍在进行中。 | 马修·尼科尔斯 | 21 年 2024 月 11 日下午 25:XNUMX | 得到正式认可的 |
文档控制 不重新viewed
当前文档版本: v.1
没有重新view已分配。
1.1 签名
最新文档版本
7 年 2025 月 10 日星期五,晚上 33:XNUMX(UTC)
马修·尼科尔斯签名;含义:回复view
参考
| 文档 | 文档编号 | 作者 | 版本 |
| IGX – 程序员手册 | 2439249921 | 马修·尼科尔斯 | 1 |
FX4 编程结束view
FX4 处理器在名为 IGX 的环境中运行,该环境基于 BlackBerry 的 QNX 高可靠性实时操作系统构建(微软 Web地点¹)IGX为想要编写自己的主机软件的用户提供了灵活、全面的应用程序编程接口(API)。
IGX 环境与其他 Pyramid 产品共享,允许为一种产品开发的软件解决方案轻松转移到其他产品。
程序员可以参考 Pyramid 上提供的 IGX 完整文档 web网站位于: IGX | 现代模块化控制系统框架 Web的应用程序²
本节介绍如何测试两种 API 方法:使用 JSON 格式的 HTTP 和 EPICS。为简单起见,Python (Python Web地点³) 用作前ample主机语言,非专业程序员也可以轻松理解和使用。
3.1 使用 Python 和 HTTP
作为前任amp例如,假设你想用 Python 读取测量电流的总和。你需要 URL 针对该特定 IO。FX4 web GUI 提供了一种简单的方法来找到它:只需在字段中单击鼠标右键,然后选择“复制 HTTP URL' 将字符串复制到剪贴板。

现在,您可以使用 Python 通过 HTTP 和 JSON 测试与用户软件的连接。您可能需要导入请求和 json 库来处理 HTTP 请求和数据解析。
1 个简单的 Python HTTP 示例ample
3.2 使用 EPICS
通过 EPICS(实验物理和工业控制系统)连接 FX4 的过程类似。EPICS 是一套用于开发和实施分布式控制系统的软件工具和应用程序,广泛应用于科学设施。
- 获取所需 IO 的 EPICS 过程变量 (PV) 名称。
- 导入EPICS库并读取值。
2 获取 EPICS PV 名称
3 个简单的 Python EPICS 示例ample
此外,Pyramid 创建了一个实用程序(EPICS 连接⁴) 可让您实时监控 EPICS 流程变量。此工具有助于确认 EPICS PV 名称是否正确以及 FX4 是否在您的网络上正确为 PV 提供服务。
4 PTC EPICS 连接
FX4 编程 API
本手册中描述的概念和方法建立在 IGX – 程序员手册中建立的概念之上。请参阅该文档以获取解释和示例amp请参阅有关基本 IGX 编程和接口工作原理的文档。本手册仅涵盖 FX4 独有的设备特定 IO 和功能。
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/标量 | NUMBER 应用于通道的简单无单位标量,默认为 1。 |
| /fx4/adc/channel_x/zero_offset | NUMBER 通道的当前偏移量(以 nA 为单位)。 |
以下 IO 不独立于通道,且同时应用于所有通道。
| 输入输出路径 | 描述 |
| /fx4/channel_sum | 只读数字当前输入通道的总和。 |
| /fx4/adc_unit | STRING 设置每个通道和总和的当前用户单位。 选项:“pa”、“na”、“ua”、“ma”、“a” |
| /fx4/范围 | STRING 设置电流输入范围。请参阅 GUI 了解每个范围代码如何与最大电流输入限制和 BW 相对应。 选项:“0”、“1”、“2”、“3”、“4”、“5”、“6”、“7” |
| /fx4/adc/samp频率 | NUMBER 频率(Hz)amp数据将被平均化。这控制所有通道的信噪比和数据速率。 |
| /fx4/adc/转换频率 | NUMBER ADC 将模拟值转换为数字值的频率(单位为 Hz)。默认情况下,此频率为 100kHz,您很少需要更改此值。 |
| /fx4/adc/offset_correction | 只读数字所有通道当前偏移的总和。 |
4.2 模拟输出IO
这些 IO 与前面板上模拟输入下的 FX4 通用模拟输出的配置有关。所有 4 个通道都使用相同的接口 IO 并独立控制。分别将 channel_x 替换为 channel_1 、 channel_2 、 channel_3 或 channel_4 。
| 输入输出路径 | 描述 |
| /fx4/dac /channel_x | NUMBER 命令卷tage 输出。仅当输出模式设置为手动时才可写入此值。 |
| /fx4/dac/channel_x/读回 | 只读数字 测量体积tage 输出。 这在使用表达式输出模式时最有用。 |
| /fx4/dac/channel_x/输出模式 | STRING 设置通道的输出模式。 选项:“manual”、“expression”、“process_control” |
| /fx4/dac/channel _ x/slew_control_enable | BOOL 启用或禁用斜率限制。 |
| /fx4/dac/channel_ x/slew_rate | NUMBER 通道的转换速率(单位为 V/s)。 |
| /fx4/dac/channel_x/upper_limit | NUMBER 允许的最大命令音量tage 为通道。适用于所有操作模式。 |
| /fx4/dac/channel _ x/lower_limit | NUMBER 允许的最小命令音量tage 为通道。适用于所有操作模式。 |
| /fx4/dac/channel _ x/输出_表达式 | STRING 设置通道处于表达式输出模式时使用的表达式字符串。 |
| /fx4/dac/channel _ x/reset_button | 按钮重置命令音量tage 至 0。 |
4.3 数字输入和输出
这些 IO 与控制 FX4 上的各种通用数字输入和输出有关。
| 输入输出路径 | 描述 |
| /fx4/fr1 | READONLY BOOL 光纤接收器 1。 |
| /fx4/ft1 | BOOL 光纤发射器1。 |
| /fx4/fr2 | READONLY BOOL 光纤接收器 2。 |
| /fx4/ft2 | BOOL 光纤发射器2。 |
| /fx4/fr3 | READONLY 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,用于配置其行为,包括控制该数字如何操作的操作模式。每个数字都有一组不同的可用选项。有关每个 IO 可用的选项的详细信息,请参阅 GUI。
| 子 IO 路径 | 描述 |
| …/模式 | STRING 操作模式为数字。 选项:“input”、“output”、“pwm”、“timer”、“encoder”、“capture”、“uart_rx”、“uart_tx”、“can_rx”、“can_tx”、“pru_input”或“pru_output” |
| …/进程信号 | STRING 进程控制信号名称(如果有)。 |
| …/pull_mode | STRING 数字输入的上拉/下拉模式。 选项:“向上”、“向下”或“禁用” |
4.4 继电器控制
两个继电器独立控制,共享相同类型的接口。分别将relay_x替换为relay_a或relay_b。
| 输入输出路径 | 描述 |
| /fx4/relay _ x/permit / 用户 _ 命令 | BOOL 命令继电器打开或关闭。如果联锁被授予,则 true 命令将尝试关闭继电器,false 命令将始终打开继电器。 |
| /fx4/relay _ x/状态 | 只读字符串继电器的当前状态。 锁定的继电器处于打开状态,但是由于联锁而无法关闭。 状态:“打开”、“关闭”或“锁定” |
| /fx4/relay_x/自动关闭 | BOOL 设置为 true 时,继电器将在联锁被授予时自动关闭。默认为 False。 |
| /fx4/relay_x/周期_计数 | 只读数字 自上次重置以来的继电器循环次数。可用于跟踪继电器寿命。 |
4.5 高音量tag电子模块
有关 FX4 高容量的详细信息,请参阅 IGX - 程序员手册tage 接口。组件父路径为 /fx4/high_votlage 。
4.6 剂量控制器
有关 FX4 剂量控制器接口的详细信息,请参阅 IGX – 程序员手册。组件父路径为 /fx4/dose_controller 。
FX4 Python 扩展amp莱斯
5.1 使用 HTTP 的数据记录器
这个前任ample 演示如何捕获多个读数并将其保存为 CSV file。通过选择读数之间的较长延迟,即使 FX4 的amp速率设置得越高,您就越能连续收集和存储较长时间的测量数据,而不会使系统超负荷,从而确保以适合您的分析的间隔捕获数据。读数之间的延迟有助于调节记录数据的速度,从而实现高效存储并降低丢失数据点的风险,同时仍可从高速 s 中获益amp用于实时测量。




5.2 简单的 Python GUI
第二个前任ample 使用为 Python 构建的 Tkinter GUI 工具来创建测量电流的显示。此界面允许您以用户友好的图形格式可视化电流读数。可以调整显示大小,使其足够大,可以从房间的另一边读取,非常适合需要在较大空间进行实时监控的场景。Tkinter 提供了一种创建交互式界面的简单方法,通过将其与 FX4 集成,您可以快速构建测量电流的可视化显示,并可以根据您的特定需求进行自定义。







5.3 简单 Web插座防爆ample
这个前任ample 展示了 Web套接字接口,当需要最大带宽时,这是从 FX4 读取数据的首选方法。 Web套接字提供实时、全双工通信通道,与其他方法相比,可以实现更快、更高效的数据传输。
前任ample 阅读一系列amples,报告每秒的平均时间ample 和最大延迟,并将数据保存为 CSV file 以便日后分析。此设置可实现高效的实时监控,并可轻松存储数据以供后期处理。
可以实现的具体性能 Web套接字取决于以太网接口的可靠性和应用程序的相对优先级。为获得最佳效果,请确保网络稳定,并在必要时优先考虑 FX4 的数据传输。



版本:v3
FX4 Python 扩展amp莱斯:21
文件/资源
![]() |
PYRAMID FX4 编程器 [pdf] 使用说明书 FX4 编程器, FX4, 编程器 |
