# C_RTD_PT100 功能块分析报告

## 基本信息

| 项目 | 内容 |
|------|------|
| 功能块名称 | C_RTD_PT100 |
| 功能描述 | RTD Input（PT100热电阻输入） |
| 最后修改 | 2016.01.06 |
| 作者 | Zhang Xiao Liang |
| 页数 | 1页 |

## 功能概述

C_RTD_PT100 是一个PT100热电阻输入处理功能块，用于处理PT100热电阻温度传感器的输入信号。该功能块包含错误检测、温度转换、滤波处理和报警检测功能。

## 思维导图

```mermaid
graph TD
    A[C_RTD_PT100 PT100热电阻输入] --> B[输入模块]
    A --> C[处理模块]
    A --> D[输出模块]
    
    B --> B1[IN]
    B --> B2[BOC]
    B --> B3[T1]
    B --> B4[TMPH]
    B --> B5[TMPHH]
    B --> B6[TMPL]
    B --> B7[SCN]
    
    C --> C1[错误检测]
    C --> C2[温度转换]
    C --> C3[滤波处理]
    C --> C4[高报警检测]
    C --> C5[高高报警检测]
    C --> C6[低报警检测]
    C --> C7[正常状态检测]
    
    D --> D1[OUT]
    D --> D2[ERR]
    D --> D3[ALMH]
    D --> D4[ALMHH]
    D --> D5[ALML]
    D --> D6[NOR]
    
    B1 --> C1
    B2 --> C1
    C1 --> D2
    B1 --> C2
    C2 --> C3
    B3 --> C3
    B7 --> C3
    C3 --> D1
    D1 --> C4
    B4 --> C4
    C4 --> D3
    D1 --> C5
    B5 --> C5
    C5 --> D4
    D1 --> C6
    B6 --> C6
    C6 --> D5
    D3 --> C7
    D5 --> C7
    D2 --> C7
    C7 --> D6
    
    style A fill:#e1f5ff
    style B fill:#fff4e1
    style C fill:#e1ffe1
    style D fill:#ffe1e1
```

## 流程路径描述

### 错误检测路径：
开始 → IN > BOC → 错误标志 → ERR输出
**功能**: 检测传感器断线错误

### 温度转换路径：
开始 → IN输入 → 除以10 → 滤波处理 → OUT输出
**功能**: 将输入值转换为温度值

### 报警检测路径：
开始 → OUT值 → 与阈值比较 → 报警输出
**功能**: 检测温度报警状态

## 逐帧功能分析

### Rung 7: 错误检测使能

**功能描述**: 错误检测使能控制

**输入条件**:
| 信号名称 | 信号描述 | 信号类型 | 触发值 |
|----------|----------|----------|--------|
| ALW_OFF | 常闭信号 | BOOL | FALSE |

**输出功能**:
| 信号名称 | 信号描述 | 信号类型 |
|----------|----------|----------|
| ERR_CHK | 错误检测使能 | BOOL |

**触发逻辑**:
- ERR_CHK = NOT ALW_OFF

**功能实现**: 
使用常闭触点控制错误检测使能。

### Rung 8: 错误检测

**功能描述**: 检测传感器断线错误

**输入条件**:
| 信号名称 | 信号描述 | 信号类型 | 触发值 |
|----------|----------|----------|--------|
| IN | 输入值 | INT | 数值 |
| BOC | 断线检测阈值 | INT | 设定值 |
| ERR_CHK | 错误检测使能 | BOOL | TRUE |

**输出功能**:
| 信号名称 | 信号描述 | 信号类型 |
|----------|----------|----------|
| ERR | 错误标志 | BOOL |

**触发逻辑**:
- IF IN > BOC AND ERR_CHK = TRUE THEN ERR = TRUE

**功能实现**: 
当输入值超过断线检测阈值且错误检测使能时，产生错误标志。

### Rung 9: 温度转换

**功能描述**: 将输入值转换为温度值

**输入条件**:
| 信号名称 | 信号描述 | 信号类型 | 触发值 |
|----------|----------|----------|--------|
| IN | 输入值 | INT | 数值 |

**输出功能**:
| 信号名称 | 信号描述 | 信号类型 |
|----------|----------|----------|
| OUT_TEMP | 温度值 | REAL |

**触发逻辑**:
- OUT_TEMP = IN / 10.0

**功能实现**: 
将整数输入值转换为实数并除以10，得到温度值。

### Rung 10: 滤波处理

**功能描述**: 对温度值进行滤波处理

**输入条件**:
| 信号名称 | 信号描述 | 信号类型 | 触发值 |
|----------|----------|----------|--------|
| OUT_TEMP | 温度值 | REAL | 数值 |
| T1 | 滤波时间常数 | DINT | 设定值 |
| SCN | 扫描时间 | INT | 设定值 |
| ERR | 错误标志 | BOOL | FALSE |

**输出功能**:
| 信号名称 | 信号描述 | 信号类型 |
|----------|----------|----------|
| OUT | 输出温度 | REAL |

**触发逻辑**:
- IF ERR = FALSE THEN OUT = C_LDLG(OUT_TEMP, T1)

**功能实现**: 
调用C_LDLG超前/滞后滤波器功能块，对温度值进行滤波处理。

### Rung 11: 高报警检测

**功能描述**: 检测温度高报警

**输入条件**:
| 信号名称 | 信号描述 | 信号类型 | 触发值 |
|----------|----------|----------|--------|
| OUT | 输出温度 | REAL | 数值 |
| TMPH | 高报警阈值 | REAL | 设定值 |

**输出功能**:
| 信号名称 | 信号描述 | 信号类型 |
|----------|----------|----------|
| ALMH | 高报警 | BOOL |

**触发逻辑**:
- IF OUT <= TMPH THEN ALMH = TRUE

**功能实现**: 
使用LE比较器检测温度是否低于高报警阈值。

### Rung 12: 高高报警检测

**功能描述**: 检测温度高高报警

**输入条件**:
| 信号名称 | 信号描述 | 信号类型 | 触发值 |
|----------|----------|----------|--------|
| OUT | 输出温度 | REAL | 数值 |
| TMPHH | 高高报警阈值 | REAL | 设定值 |

**输出功能**:
| 信号名称 | 信号描述 | 信号类型 |
|----------|----------|----------|
| ALMHH | 高高报警 | BOOL |

**触发逻辑**:
- IF OUT <= TMPHH THEN ALMHH = TRUE

**功能实现**: 
使用LE比较器检测温度是否低于高高报警阈值。

### Rung 13: 低报警检测

**功能描述**: 检测温度低报警

**输入条件**:
| 信号名称 | 信号描述 | 信号类型 | 触发值 |
|----------|----------|----------|--------|
| OUT | 输出温度 | REAL | 数值 |
| TMPL | 低报警阈值 | REAL | 设定值 |

**输出功能**:
| 信号名称 | 信号描述 | 信号类型 |
|----------|----------|----------|
| ALML | 低报警 | BOOL |

**触发逻辑**:
- IF OUT >= TMPL THEN ALML = TRUE

**功能实现**: 
使用GE比较器检测温度是否高于低报警阈值。

### Rung 14: 正常状态检测

**功能描述**: 检测温度正常状态

**输入条件**:
| 信号名称 | 信号描述 | 信号类型 | 触发值 |
|----------|----------|----------|--------|
| ALMH | 高报警 | BOOL | TRUE |
| ALML | 低报警 | BOOL | TRUE |
| ERR | 错误标志 | BOOL | FALSE |

**输出功能**:
| 信号名称 | 信号描述 | 信号类型 |
|----------|----------|----------|
| NOR | 正常状态 | BOOL |

**触发逻辑**:
- IF ALMH = TRUE AND ALML = TRUE AND ERR = FALSE THEN NOR = TRUE

**功能实现**: 
当高报警和低报警都有效且无错误时，输出正常状态。

## 触发条件总结

### 检测条件
- **错误检测**: IN > BOC
- **高报警**: OUT <= TMPH
- **高高报警**: OUT <= TMPHH
- **低报警**: OUT >= TMPL
- **正常状态**: ALMH = TRUE AND ALML = TRUE AND ERR = FALSE

## 实现功能总结

### 主要功能
1. **错误检测**: 检测传感器断线错误
2. **温度转换**: 将输入值转换为温度值
3. **滤波处理**: 对温度值进行滤波处理
4. **高报警检测**: 检测温度高报警
5. **高高报警检测**: 检测温度高高报警
6. **低报警检测**: 检测温度低报警
7. **正常状态检测**: 检测温度正常状态

## 关键信号说明

| 信号名称 | 信号描述 | 信号类型 | 用途 |
|----------|----------|----------|------|
| IN | 输入值 | INT | PT100输入值 |
| BOC | 断线检测阈值 | INT | 断线检测 |
| T1 | 滤波时间常数 | DINT | 滤波参数 |
| TMPH | 高报警阈值 | REAL | 高报警设定 |
| TMPHH | 高高报警阈值 | REAL | 高高报警设定 |
| TMPL | 低报警阈值 | REAL | 低报警设定 |
| OUT | 输出温度 | REAL | 温度输出 |
| ERR | 错误标志 | BOOL | 错误状态 |
| ALMH | 高报警 | BOOL | 高报警状态 |
| ALMHH | 高高报警 | BOOL | 高高报警状态 |
| ALML | 低报警 | BOOL | 低报警状态 |
| NOR | 正常状态 | BOOL | 正常状态 |

## 调试技巧

### 调试步骤
1. 检查IN值，确认PT100输入正常
2. 检查BOC值，确认断线检测阈值设置
3. 监控OUT值，观察温度输出
4. 检查TMPH、TMPHH、TMPL值，确认报警阈值设置
5. 监控ERR、ALMH、ALMHH、ALML、NOR信号，确认报警状态

### 常见问题
1. **错误标志常亮**: 检查BOC值和IN值
2. **温度输出不准确**: 检查IN值和滤波参数
3. **报警不工作**: 检查报警阈值设置

### 监控信号列表
- IN（输入值）
- OUT（温度输出）
- ERR（错误标志）
- ALMH、ALMHH、ALML（报警状态）
- NOR（正常状态）
