↖戳上方蓝字 "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通信已编写完成,大家都理解并且掌握了吗?可以在上述文章找答案!