• 【案例】S7-200SMART PLC与台达变频器MODBUS通信


    ↖戳上方蓝字 "PLC发烧友” 关注我们哦!


    1、控制要求

    I0.0启动变频器正转,I0.1启动变频器反转,I0.2停止变频器,PLC通过MODBUS通讯读取台达变频器当前电流和当前电压。




    2、变频器参数

    图片

    图片

    变频器参数的通信地址是2000H,Modbus通信功能码是0(离散量输出)1(离散量输入)、3(输入寄存器)、4(保持寄存器)。而这里的2000H指的就是4(保持寄存器)同时这个2000H是十六进制数2000,在软件中输入的是十进制数,故需要将十六制数2000 转换为十进制数,得到8192。另外Modbus 的通信地址都是从1开始的。故还要将8192加上1为8193,最终得到的变频器地址为“48193”。

    在控制命令2000H 的地址中,每个位置的含义已经定义好了,Bit2-3和Bit6-15保留,即为0,Bit0-1和Bit4-5表示启动及运行方向,若电动机以反向点动运行,则Bit0-1设置为11,1, Bit4-5设置为10,最终得到2#10011。将2#10011 通过通信传输到变频器的2000H中,变频器将会按照设定的方式工作。

    图片

    上表中的2102H频率指令(F)( 小数2位)中,小数2位的含义是指:频率范围是00.00 -50.00Hz, 频率是一个实数,但是一个实数占用32位,Modbus通信的保持寄存器区每次通信的单位是字,并不能直接传输小数。因此在通信过程中我们读到的频率信息是放在两个字里边的,第一个字中存储的是一个 4位十进制数,例如0612,但是我们都知道,频率并没有0612Hz,我们还要读取第二个字中的值,第二个字中的值表示小数点的位数,例如2,表示小数的位数为2位,,因此当前的运行频率表示为06.12Hz,这才是我们真正读到的频率值。




    3、PLC程序I/O分配表

    图片

    图片




    4、编写程序

    第一步:(上电初始化将完成标志位M点全部复位,同时将运行频率30HZ传送给VW100)

    图片

    第二步:(按下I0.0命令值写入VW200变频器电机正转、按下I0.1命令值写入VW200变频器电机反转、按下I0.2命令值写入VW200变频器电机停止)

    图片

    第三步:(通信初始化指令,设置通信波特率9600,偶校验,通信端口0,通信超时100MS)

    图片

    第四步:(SM0.1首次接通写入变频器频率指令,M0.4用轮询方式循环写入频率,VW100的频率值写入变频器当中,写入完成后M0.1接通)

    图片

    第五步:(M0.1接通后,复位M0.4断开写入频率指令)

    图片

    第六步:(M0.1接通写入变频器运行指令,VW200中频率值写入变频器当中,写入完成后M0.2接通)

    图片

    第七步:(M0.2接通后,复位M0.1断开写入运行指令)

    图片

    第八步:(M0.2接通读取变频器频率指令,读取变频器频率值存放在VW300当中,读取完成后M0.3接通)

    图片

    第九步:(M0.3接通后,复位M0.2断开读取频率指令)

    图片

    第十步:(M0.3接通读取变频器电流指令,读取变频器电流值存放在VW400当中,读取完成后M0.4接通)

    图片

    第十一步:(M0.4接通后,复位M0.3断开读取电流指令)

    图片



    此时此刻S7-200SMART PLC与台达变频器MODBUS通信已编写完成,大家都理解并且掌握了吗?可以在上述文章找答案!

  • 相关阅读:
    损失函数 代价函数 评分函数 目标函数
    python目录索引
    机器学习/深度学习资料合集
    Git笔记
    目标检测中的正负样本分配
    map计算
    nms
    08shell脚本
    07makefile文件
    05-STL
  • 原文地址:https://www.cnblogs.com/shuimuqingyang/p/14356231.html
Copyright © 2020-2023  润新知