返回
梯形图举例说明欧姆龙CPM2HA PLC中PID指令如何使用
发布

梯形图举例说明欧姆龙CPM2HA PLC中PID指令如何使用

296阅读 1 回复 2023-03-23 18:18发布
关注Ta

15676857083520普通会员楼主

电话/手机:联系客服


以下内容回复后可见

优质评论内容

  • 明扬工控技术客服

    明扬工控技术客服2025-09-04 22:01:58

    梯形图举例说明欧姆龙CPM2A系列PLC(注:CPM2HA是其中的一个型号)中PID指令的使用方法。
    欧姆龙CPM2A的PID指令非常经典,它通过一个指定的参数表来工作,而不是在指令中直接填写参数。理解这个参数表的结构是成功使用的关键。

    1. PID指令介绍
    • 指令符:PID
    • 操作数:PID S C D
    ◦ S:输入字,存放设定值(SV)的通道地址。
    ◦ C:参数首字,这是一个连续的数据区域(从C到C+32),用于存放PID的所有参数,包括设定值、比例带、积分时间等,以及指令工作用的内部参数。
    ◦ D:输出字,存放PID计算结果的输出值(MV)的通道地址。
    2. PID参数表结构
    这是最关键的部分。参数表占用33个通道(从C到C+32),您必须在执行PID指令前,预先在程序中(通常是在第一个扫描周期用FIRST CYCle位)将必要的参数写入这些通道。


    通道地址
    参数说明
    含义
    设置范围
    举例值
    C
    设定值 (SV)
    您希望达到的目标值
    取决于您的量程
    600
    C+1
    比例带 (P)
    比例作用的范围
    0-9999 (0.1-999.9%)
    300 (即30.0%)
    C+2
    积分时间 (Tik)
    积分作用的速度
    0-9999 (0.1-999.9秒)
    100 (即10.0秒)
    C+3
    微分时间 (Tdk)
    微分作用的强度
    0-9999 (0.1-999.9秒)
    50 (即5.0秒)
    C+4
    采样周期 (Ts)
    PID运算的间隔时间
    0-9999 (0.01-99.99秒)
    10 (即0.10秒)
    C+5
    2-PID参数 α
    微分增益
    0-9999 (0.00-0.99)
    通常设为0
    C+6
    输入范围
    模拟量输入信号的范围
    0000-FFFF
    0000 (0-4000)
    C+7
    输出范围
    PID输出值的范围
    0000/0001
    0000 (0-4000)
    C+8 至 C+32
    工作区
    PLC内部使用,切勿写入数据
    -
    -
    注意:C+6和C+7的设置非常关键。0000通常代表0-4000,对应模拟量模块的4-20mA或0-10V信号转换后的数字量范围。

    3. 应用举例
    控制要求:用一个温度传感器(4-20mA输入到模拟量输入通道010),控制一个加热器(通过模拟量输出通道011输出4-20mA)。我们将温度稳定在 60.0°C。温度变送器量程为0-100°C。
    1. 计算设定值 (SV):
    ◦ 量程0-100°C对应数字量0-4000。
    ◦ 目标值60°C对应的数字量 = (60 / 100) * 4000 = 2400。
    ◦ 因此,我们将SV设置为2400。
    2. 分配参数区:
    ◦ 我们选择DM区作为参数表,因为它断电保持。假设从DM100开始。
    ◦ S -> 2400 (存放在DM100)
    ◦ C -> D100 (参数表从D100开始)
    ◦ D -> 011 (输出通道,直接控制模拟量输出)
    3. 初始化参数:
    ◦ 在第一个扫描周期,用MOV指令将参数写入参数表。
    4. 梯形图程序:
    ladder

    复制

    下载
    |    | First Cycle Flag  |                 |
    |    |    P_First_Cycle  |                 |
    |    |-------| |---------| [MOV #02400 ]   | 将设定值2400送入DM100
    |    |                   |        D100     |
    |    |                   |                 |
    |    | First Cycle Flag  |                 |
    |    |    P_First_Cycle  |                 |
    |    |-------| |---------| [MOV #00300 ]   | 设置比例带P=30.0% -> DM101
    |    |                   |        D101     |
    |    |                   |                 |
    |    | First Cycle Flag  |                 |
    |    |    P_First_Cycle  |                 |
    |    |-------| |---------| [MOV #00100 ]   | 设置积分时间Ti=10.0秒 -> DM102
    |    |                   |        D102     |
    |    |                   |                 |
    |    | First Cycle Flag  |                 |
    |    |    P_First_Cycle  |                 |
    |    |-------| |---------| [MOV #00050 ]   | 设置微分时间Td=5.0秒 -> DM103
    |    |                   |        D103     |
    |    |                   |                 |
    |    | First Cycle Flag  |                 |
    |    |    P_First_Cycle  |                 |
    |    |-------| |---------| [MOV #00010 ]   | 设置采样周期Ts=0.10秒 -> DM104
    |    |                   |        D104     |
    |    |                   |                 |
    |    | First Cycle Flag  |                 |
    |    |    P_First_Cycle  |                 |
    |    |-------| |---------| [MOV #00000 ]   | 设置α=0 -> DM105
    |    |                   |        D105     |
    |    |                   |                 |
    |    | First Cycle Flag  |                 |
    |    |    P_First_Cycle  |                 |
    |    |-------| |---------| [MOV #00000 ]   | 设置输入范围0-4000 -> DM106
    |    |                   |        D106     |
    |    |                   |                 |
    |    | First Cycle Flag  |                 |
    |    |    P_First_Cycle  |                 |
    |    |-------| |---------| [MOV #00000 ]   | 设置输出范围0-4000 -> DM107
    |    |                   |        D107     |
    |    |                   |                 |
    |    |   Always ON Flag  |                 |
    |    |       P_On        |                 |
    |    |-------| |---------| [  PID   ]      | 每扫描周期执行一次PID运算
    |    |                   |  010  D100  011 |
    |    |                   | (S)   (C)   (D) |


    梯形图解释:
    • 上半部分:利用首次扫描标志P_First_Cycle,在程序运行的第一时间将PID参数写入到从D100开始的参数表中。
    • 下半部分:利用常通标志P_On,在每个PLC扫描周期都执行一次PID指令。
    ◦ S是010,即从模拟量输入通道010读取当前的过程值(PV)。
    ◦ C是D100,指定参数表从DM100开始。
    ◦ D是011,将计算出的输出值(MV)直接写入模拟量输出通道011,从而控制加热器功率。
    4. PID调试步骤
    1. 初步设定:先将积分时间Tik(C+2)和微分时间Tdk(C+3)设为0,即关闭积分和微分作用,只使用比例控制(P)。
    2. 调整P:逐渐减小比例带P(C+1)的数值,直到系统开始出现等幅振荡。此时的比例带称为“临界比例带Pu”,振荡周期称为“临界周期Tu”。
    3. 设置PID参数:根据齐格勒-尼科尔斯整定法,参考以下经验公式设置:
    ◦ P = 0.6 * Pu
    ◦ Ti = 0.5 * Tu (积分时间)
    ◦ Td = 0.125 * Tu (微分时间)
    4. 微调:将计算出的参数填入参数表,观察系统响应(超调量、稳定时间等),根据实际情况进行细微调整,直到达到最佳控制效果。
    总结:使用CPM2A的PID指令,核心是正确建立和初始化参数表,然后使用一条简单的PID指令即可完成复杂的控制。调试则需要根据实际系统的响应来整定P、I、D三个参数。