轮询并将实验室仪器数据记录到 PostgreSQL
从 RS232 实验室仪器读取数据并将解析后的数值直接导出到 PostgreSQL 数据库的完整指南,支持自定义数据库结构。
1. 协议配置:实验室仪器
通信类型: 被动监听 / 双向(RS232或USB虚拟串口)
分光光度计、滴定仪和血液分析仪通常使用专有的ASCII格式或ASTM E1381/E1394协议。如果仪器输出原始ASCII,请使用“ASCII数据解析器”。如果使用ASTM,您必须使用专用的“ASTM数据解析器”插件,以正确解包标头(H)、患者(P)、申请单(O)和结果(R)记录。
应用此基础配置进行串行连接:
{
"port": "COM4",
"baud_rate": 9600,
"data_bits": 8,
"stop_bits": 1,
"parity": "none",
"parser_type": "astm_e1381",
"ack_nak_handshake": true
}
实验室仪器数据解析器

ASTM协议解析器设置
准备好将 实验室仪器 连接到 PostgreSQL 了吗?
2. 数据库设置:PostgreSQL
在运行 Advanced Serial Data Logger 的服务器上安装 PostgreSQL ODBC 驱动程序(psqlODBC)。创建系统 DSN 或在 SQL Database Professional 插件中使用直接连接字符串,如 192.168.1.100:mydatabase。
使用以下 SQL 脚本创建目标表。 确保您的用户角色对目标架构具有 INSERT 权限。使用 NUMERIC 数据类型以防止原始传感器数据的浮点精度损失。
CREATE TABLE rs232_logs ( id SERIAL PRIMARY KEY, log_timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP, device_name VARCHAR(50), extracted_value NUMERIC(10, 2) );

PostgreSQL 数据库连接器选择。

PgSQL 数据库连接设置。

用于将数据插入表的 SQL 队列。
3. 协议特定故障排除
- 仪器完全不发送数据: 有些仪器仅在您按下其上的“打印”按钮时才发送数据,或者需要主机发送特殊命令。
- 仪器发送一条记录后停止传输: 许多实验室仪器在接收数据块后需要ACK(确认应答)字符。请在数据记录器中启用“ACK/NAK握手”功能,以便其回复并提示仪器发送下一批数据。
- 程序未提取所有数据。某些字段遗漏: 默认情况下,记录器仅提取重要数据。您可以使用ASCII数据解析器插件创建自己的解析器,或联系我们的支持团队。
4. 数据库特定故障排除
- 致命错误:密码认证失败: 验证您的 pg_hba.conf 文件是否允许来自 Data Logger IP 地址的连接(如果是远程),以及认证方法是否设置为 md5 或 scram-sha-256。
- 我的数据库中每个记录都有两条时间戳相同的相似记录: 验证您没有同时使用两个数据导出插件。例如 ODBC Database 和 SQL Database Pro,因为它们可以并行导出您的数据。
- 我已安装 ODBC 驱动程序并创建了 DSN,但您的软件不允许我选择它。: 我们的软件需要 32 位 ODBC 驱动程序。因此,您应该安装此版本的驱动程序以在 32 位 ODBC 管理器中创建 DSN。您可以使用「ODBC Database」插件中的「Setup」按钮来执行此操作。