返回主站|会员中心|保存桌面

AB罗克韦尔服务商    

PLC、变频器、人机界面、传感器

联系方式
  • 联系人:吴经理
  • 电话:18576370666
新闻分类
  • 暂无分类
首页 > 新闻中心 > 风速仪配PLC,程序怎么编?
新闻中心
风速仪配PLC,程序怎么编?
发布时间:2025-12-28        浏览次数:2        返回列表

风速仪与 PLC 配合时的程序编写方法,核心是根据风速仪的信号类型(如 4-20mA、0-10V、脉冲 / RS485)完成 PLC 的模拟量 / 数字量采集、数据换算、逻辑处理,最终得到实际风速值并实现报警 / 控制等功能。

以下是基于最常用的 4-20mA 电流型风速仪 + 西门子 S7-200/1200/1500 PLC 的完整程序示例,包含核心换算逻辑、异常处理和实用功能,你可直接适配到自己的 PLC 型号。


一、前期准备(编程前必确认)

1. 关键参数确认

参数项说明(以常见风速仪为例)
风速仪量程如 0-30m/s(对应 4-20mA 输出)
PLC 模拟量模块类型如 S7-1200 的 SM1231 AI 模块(4-20mA,16 位分辨率)
模拟量地址如 SM1231 的 AIW0(S7-200)或 PIW256(S7-1200)
换算公式实际风速 = (采集值 - 4mA 对应值) × (量程上限 - 量程下限) / (20mA 对应值 - 4mA 对应值) + 量程下限

2. 模拟量采集值对应关系(16 位 PLC)

  • 4mA(最小信号)→ 对应 PLC 采集值:6553(16 位分辨率下,4mA=20%×32767≈6553)

  • 20mA(最大信号)→ 对应 PLC 采集值:32767

  • 0mA(故障)→ 对应 PLC 采集值:0


二、核心程序编写(以西门子 S7-1200/1500 为例,TIA Portal)

1. 变量定义(DB 块)

先创建数据块,定义采集和换算所需变量:

plc

DATA_BLOCK DB_WindSpeed
VAR_GLOBAL
    // 模拟量采集原始值
    AI_RawValue: INT; // 对应PIW256,4-20mA原始采集值
    // 风速仪参数
    WindSpeed_Min: REAL := 0.0; // 风速下限(m/s)
    WindSpeed_Max: REAL := 30.0; // 风速上限(m/s)
    AI_4mA: INT := 6553; // 4mA对应采集值
    AI_20mA: INT := 32767; // 20mA对应采集值
    // 换算后实际风速
    WindSpeed_Actual: REAL; // 实际风速(m/s)
    // 报警阈值
    WindSpeed_Alarm_High: REAL := 20.0; // 高风速报警阈值
    WindSpeed_Alarm_Low: REAL := 0.5; // 低风速(故障)报警阈值
    // 报警标志
    Alarm_HighWind: BOOL; // 高风速报警
    Alarm_WindSensorFault: BOOL; // 风速仪故障(信号异常)
END_VAR
END_DATA_BLOCK

2. 主程序(OB1)

核心逻辑:采集模拟量→数据换算→故障判断→报警输出

plc

// 步骤1:读取模拟量原始值
DB_WindSpeed.AI_RawValue := "PIW256"; // 读取SM1231 AI模块的4-20mA输入值

// 步骤2:风速换算(核心公式)
IF DB_WindSpeed.AI_RawValue >= DB_WindSpeed.AI_4mA AND DB_WindSpeed.AI_RawValue <= DB_WindSpeed.AI_20mA THEN
    // 正常范围:换算实际风速
    DB_WindSpeed.WindSpeed_Actual := (DB_WindSpeed.AI_RawValue - DB_WindSpeed.AI_4mA) 
                                    * (DB_WindSpeed.WindSpeed_Max - DB_WindSpeed.WindSpeed_Min) 
                                    / (DB_WindSpeed.AI_20mA - DB_WindSpeed.AI_4mA) 
                                    + DB_WindSpeed.WindSpeed_Min;
ELSE
    // 信号异常:判定为故障
    DB_WindSpeed.WindSpeed_Actual := 0.0;
    DB_WindSpeed.Alarm_WindSensorFault := TRUE;
END_IF;

// 步骤3:故障判断(信号低于4mA或高于20mA)
IF DB_WindSpeed.AI_RawValue < DB_WindSpeed.AI_4mA - 100 OR DB_WindSpeed.AI_RawValue > DB_WindSpeed.AI_20mA + 100 THEN
    DB_WindSpeed.Alarm_WindSensorFault := TRUE;
ELSE
    DB_WindSpeed.Alarm_WindSensorFault := FALSE;
END_IF;

// 步骤4:高风速报警判断
IF DB_WindSpeed.WindSpeed_Actual >= DB_WindSpeed.WindSpeed_Alarm_High AND NOT DB_WindSpeed.Alarm_WindSensorFault THEN
    DB_WindSpeed.Alarm_HighWind := TRUE;
    "Q0.0" := TRUE; // 高风速报警输出(如指示灯/蜂鸣器)
ELSE
    DB_WindSpeed.Alarm_HighWind := FALSE;
    "Q0.0" := FALSE;
END_IF;

// 步骤5:故障报警输出
IF DB_WindSpeed.Alarm_WindSensorFault THEN
    "Q0.1" := TRUE; // 风速仪故障报警输出
ELSE
    "Q0.1" := FALSE;
END_IF;

// 步骤6:数据滤波(可选,消除数值抖动)
DB_WindSpeed.WindSpeed_Actual := ROUND(DB_WindSpeed.WindSpeed_Actual * 10) / 10; // 保留1位小数

3. 适配 S7-200 的程序(梯形图思路)

若你用 S7-200 CPU224,核心逻辑一致,仅地址和指令不同:

plaintext

// 1. 采集原始值
MOVW AIW0, VW100 // AIW0存入VW100
// 2. 换算公式(用数学指令)
LDB>= VW100, 6553
AND<= VW100, 32767
JMP 0
MOVB 1, VB200 // 故障标志置1
JMP 1
LBL 0
MOVW VW100, VW102
SUBW VW102, 6553 // 减去4mA对应值
MOVR VW102, VD104
MULR VD104, 30.0 // 乘以量程30
DIVR VD104, 26214.0 // 除以(32767-6553)
MOVR VD104, VD204 // 实际风速存入VD204
LBL 1
// 3. 报警判断
LDR>= VD204, 20.0
= Q0.0 // 高风速报警
LDB= VB200, 1
= Q0.1 // 故障报警

三、不同信号类型的适配调整

1. 0-10V 电压型风速仪

  • 采集值对应:0V→0,10V→32767

  • 换算公式调整:AI_0V := 0AI_10V := 32767,其余逻辑不变

2. 脉冲 / 频率型风速仪(如霍尔式)

  • 用 PLC 高速计数器(如 HC0)采集脉冲频率

  • 换算公式:风速 = 脉冲频率 × 系数(厂家提供,如 0.1m/s/Hz)

  • 核心代码:

    plc

  • Frequency := HC0 / 100; // 采集1秒内脉冲数(频率)
    WindSpeed_Actual := Frequency × 0.1; // 按厂家系数换算

3. RS485/Modbus 通讯型风速仪

  • 用 PLC 的 Modbus RTU 指令(如 S7-1200 的 MB_CLIENT)读取风速仪寄存器

  • 无需模拟量换算,直接读取风速仪输出的实际值,仅需做报警判断


四、现场调试注意事项

  1. 零点校准:无风时,若采集值不为 6553,微调AI_4mA参数(如 6500),确保风速显示 0m/s。

  2. 满量程校准:用信号发生器输出 20mA,调整AI_20mA参数,确保风速显示 30m/s(对应量程)。

  3. 滤波处理:若风速值抖动,增加平均值滤波(如采集 10 次取平均)。

  4. 故障保护:程序中增加延时判断(如信号异常持续 2 秒再触发报警),避免误报警。


总结

  1. 风速仪 PLC 程序核心是模拟量采集 + 线性换算,关键要匹配风速仪量程与 PLC 采集值的对应关系。

  2. 必须增加故障判断逻辑(信号超出 4-20mA/0-10V 范围),避免无效数据导致控制异常。

  3. 不同信号类型(电流 / 电压 / 脉冲 / 通讯)仅需调整采集方式和换算系数,报警、控制逻辑通用。

收缩
  • 电话咨询

  • 18576370666
  • 添加微信客服