适用机型: AK96, AK200, AK98 (及 AK100, AK95, ASTRID)
主题: 金宝透析机的外部通信
最后更新: 2007年1月11日 (Mikael Lindhult - 增加 AKxalis 块和条件)
透析机被划分为多个逻辑节点,每个节点由一个字符标识:
| 节点代码 | 名称 | 描述 |
|---|---|---|
| 'O' | 操作员通信 (OPCOM) | 处理与用户交互的功能。 |
| 'B' | 血液控制 (BLOOD) | 控制血液流路及相关测量(血流量、夹管器、静脉压等)。 |
| 'F' | 液体控制 (FLUID) | 控制透析液流路及相关测量(跨膜压 TMP、超滤 UF、消毒等)。 |
| 'C' | CAM 节点 | 仅适用于 AK100/AK200。 |
| 'E' | 外部预设处理 | 仅适用于 AK95。 |
| 'P' | 外部 PC 预设 | 适用于 AK95, AK100, AK200。 |
| 'R' | 远程控制 | 仅适用于 AK100。 |
| 'S' | SDT 生成代码 | 功能取决于机型。AK90/AK100 无此节点;AK95 中用于保护系统;ASTRID 机器仅有此节点。 |
所有节点支持以下基本类型:
* Logical (逻辑型): 8位字节。偶数=FALSE,奇数=TRUE。
* Byte (字节): 8位值 (0-255)。
* Word (字): 16位值 (0-65535)。**低位字节在前 (Little-Endian)**。
* Integer (整数): 16位有符号值 (-32768 到 32767),处理方式同 Word,仅符号位不同。
'O', 'B', 'F' 节点特有类型:
* Float (浮点型): 32位 IEEE 标准浮点数。存储顺序为:字节1(低8位) -> 字节2 -> 字节3 -> 字节4(高8位/符号位)。
'S' 节点特有类型:
* Time (时间): 8字节结构。前4字节为秒数,后4字节为纳秒数。传输顺序反转(同 Word 和 Float)。
数组存储: 'O', 'B', 'F' 节点的数据存储在数组中。
xRL: 逻辑型数组xRB: 字节型数组xRW: 字型数组xRI: 整型数组xRR: 实型 (Float) 数组x 为节点标识符,如 ORI 表示 OPCOM 的整型数组)'S' 节点寻址: 必须提供完整的作用域路径,例如:AK95.PROTECTIVE.BLOOD_FLOW_CONTROL.State。
变量索引通过 .LIT 文件中的字面名称定义。命名规则如下:
* Xvariable$name: xRL 数组索引名
* xBvariable$name: xRB 数组索引名
* xWvariable$name: xRW 数组索引名
* xI_variable$name: xRI 数组索引名
* xR_variable$name: xRR 数组索引名
版本验证:.LIT 文件包含 PROM_VERS (程序版本) 和 VAR_VERS (变量文件版本)。发送特殊请求可获取这两个版本的拼接字符串,用于验证文件兼容性。
PC 通过发送**控制块**来初始化日志记录。控制块包含四个区域:**头区**、**条件区**、**规范区**和**CRC 校验**。
| 位置 | 内容 | 说明 |
|---|---|---|
| 0-1 | 序列号 (Word) | 当前程序不检查此项。 |
| 2-3 | 块长度 | 包含 CRC 在内的总长度。 |
| 4 | 源/目的节点 | 新控制块的目的地址,或回显块的源地址。有效值:'B', 'F', 'O', 'C', 'P', 'E', 'S' |
| 5 | 块类型 | 00H: 日志控制块01H: 日志数据块02H: 信号日志数据块 ('S' 节点)03H: 状态转换日志数据块 ('S' 节点)04H: AKxalis 块 |
| 6 | 块标识 (Block ID) | 系统内唯一的标识符。 |
| 7 | 日志通道规范 | 保留,设为 0。 |
| 8 | 状态 (Status) | 位0: CRC 错误**位1**: 语法错误**位2**: 条件计算栈溢出**位3**: 数据缓冲区太小**位4**: 删除错误 (块不存在)**位5**: 加载拒绝 (内存已满)**位6**: 重复标识错误**位7**: SDT 错误 ('S' 节点) |
| 位置 | 内容 | 说明 |
|---|---|---|
| 9 | 条件码 (Condition Code) | 0: 删除控制块**1**: 时间条件 (定期记录)**2**: 上升沿触发 (FALSE→TRUE)**3**: 下降沿触发 (TRUE→FALSE)**4**: TRACO 记录器**5**: 记录程序和变量文件版本 (**重要:读取版本用**)**6**: 单次记录变量数据**7**: 本地记录 (仅 AK100)**8-18**: 特殊功能 (TRACO预设, SDT信号, GSS控制, AKxalis命令等) |
| 10-(10+n-1) | 条件数据 | 根据条件码不同,长度和含义不同。例如:条件码 1 (时间条件) 后跟 2 字节的时间间隔 (Tick 或 秒)。 |
(适用于 TRACO 节点,条件码 1, 2, 3, 4, 5, 6)
每个要记录的数据由 1字节类型信息 + 1或2个字节的索引/地址信息 组成。
* 类型信息编码:
* 低4位 (数据类型):
* 0: Real (xRR)
* 1: Integer (xRI)
* 2: Word (xRW)
* 3: Byte (xRB)
* 4: Boolean (xRL)
* 5: 进程 (xP)
* 6: 函数 (xF)
* 7-A: 内存直接寻址 (MR, MI, MW, MB)
* 高4位 (节点来源):
* 0: Opcom (Oxx)
* 1: Blood (Bxx)
* 4: Fluid (Fxx)
* (其他代码适用于特定机型)
* 结束标志: FFH 表示数据规范结束。
当条件满足时,机器发送数据块。结构如下:
1. 头部: 同控制块头部 (序列号, 长度, 源节点, 类型 01H, ID, 状态)。
2. 数据区:
* 条件码 5: 返回 PROM_VERS 和 VAR_VERS 的拼接字符串。
* 条件码 6: 返回一次性的变量快照数据。
* 条件码 1: 返回按时间间隔记录的变量数据。
3. 校验和: 块末尾。
(文档中提供了详细的 Hex 示例,展示了如何构建一个每 10 Tick 记录一次 ORL(122), ORI(5), BRI(16) 的控制块)
| 位置 | 内容 |
|---|---|
| 0 | 块类型描述符: 'D' (44H, 数据块) 或 'O' (4FH, 溢出块) |
| 1 | 序列号 (Byte) |
| 2 ~ (2+n-1) | 数据负载 (即上述的日志控制块或数据块) |
| 3+n-1 | 字节校验和 (位置 0 到 2+n-1 的和) |
协议使用了5个特殊 ASCII 字符,如果在数据负载中出现,必须进行转义:
* STX: 02H (帧头)
* EOT: 04H (帧尾)
* ACK: 06H (确认)
* NAK: 15H (否认)
* ESC: 1BH (转义前缀)
转义方法:
如果数据字节等于上述任一特殊字符:
1. 插入 ESC (1BH)。
2. 将该字节值加上 20H。
例如: 数据中的 02H 变为 1B 22H;06H 变为 1B 26H。
02H)。04H)。06H): 成功。15H): 失败 (校验错或格式错),需重发。部分参数为**必填 (Mandatory)**,部分为**可选 (Optional)**。
| # | 参数描述 | 状态 | 备注 |
|---|---|---|---|
| 1 | 患者姓名字符集 (Code Page) | 必填 | 0=西欧, 1=东欧, 2=日文等 |
| 2 | 患者姓名 | 必填 | 最多32字符 |
| 3 | 超滤量 (UF Volume) | 可选 | |
| 4 | 治疗时间 (分钟) | 可选 | |
| 5 | 浓缩液类型 (A=醋酸盐, B=碳酸氢盐) | 可选 | |
| 6 | 浓缩液替代名称 | 可选 | 依赖 #5 |
| 7 | UF 曲线类型 | 可选 | 'L'=线性 (依赖 #8) |
| 8 | UF 曲线起始值 | 若 #7 存在则必填 | |
| 9 | Na+ 曲线类型 | 可选 | 'L'/'P'/'D' (依赖 #10,11,12) |
| ... | (详见文档原文) | ||
| 26 | 患者 ID | 必填 | |
| 27 | 压力/容量控制模式 | 可选 | 'V'=容量, 'T'=压力 |
机器解析下载参数后返回的状态码:
| 代码 | 描述 |
|---|---|
| 0 | 无错误,状态列表结束 |
| 9 | UF 参数超出限制 |
| 12 | 透析液流量无效 |
| 23 | 下载的治疗参数 CRC 错误 |
| 28 | 浓缩液类型错误 (非 'A' 或 'B') |
| 36 | HCO3- 曲线起始值超限 |
| 38 | 治疗模式错误 (非 'H', 'F', 'D') |
| 49 | 用户手动拒绝 或 功能检查结束但未接受参数 |
| 50 | 用户接受数据 |
| 54 | 切换到 HDF 模式失败 |
| 60-62 | Na+ 或 HCO3- 浓度超限 |
---
注:本文档为技术参考,实际操作请遵循医疗设备安全规范。