[台达] 【智】S7-200PLC与台达变频器MODBUS轮询实时读取详解

[复制链接]
查看31714 | 回复0 | 2024-9-1 21:08:06 | 显示全部楼层 |阅读模式
今天小智再次分享有关S7-200PLC与台达VFD_M变频器Modbus通讯案例程序,这次是用非常简单的写法,如果是单独写入或者读取操作,可以用SM0.5时钟脉冲接通MODBUS指令,简单易懂。

有关Modbus地址方便对照:

00001 - 09999:数字量输出(线圈)

10001 - 19999:数字量输入(触点)

30001 - 39999:输入数据寄存器(通常为模拟量输入)

40001 - 49999:数据保持寄存器

MODBUS地址根据功能码的不同,可以把上面的MODBUS地址分为0XXXX、1XXXX、3XXXX、4XXXX四种类型,是按10进制来分配,但需要注意的是四种类型MODBUS首地址都是从1开始的,像台达VFD_M的变频器是间接给出MODBUS地址定义,需要把通讯参数地址转换成对应的modbus地址。

台达变频器Modbus地址定义如下图示:



通讯案例:编写S7-200PLC与台达变频器Modbus通讯程序,PLC作为主站设备,台达变频器作为从站设备,通讯连接方式如下图所示:



控制要求:S7-200PLC与台达变频器Modbus通讯,控制变频器启动频率为30.00HZ,按钮I0.0控制变频器正转启动,按钮I0.1控制变频器反转启动,按钮I0.2控制变频器停止运行。这次取消了读取电压和电流操作,主要是把程序简单化。

案例分析:控制变频器30.00HZ运行以及控制变频器正转反转停止都是PLC向变频器写入操作,而监控变频器的电流和电压是PLC向变频器读取操作,而台达变频器Modbus地址定义当中没有直接给出Modbus地址,而给出的16进制(H代表16进制)地址形式,在编写程序前,需要把16进制地址形式转换成Modbus统一地址形式,程序中我们需要的Modbus地址为:

频率命令:2001H或2102H,转换为10进制后为8193或8450,而上面提供的统一Modbus地址形式四类当中都是从1开始,所以转换10进制后的数据还要加1为8194或8451,Modbus地址中又都是5位数字,首数字代表四类数据类型,而写入变频器频率属于第四类,所以加入类型后Modbus地址为48194或48451;这两个Modbus地址是保持寄存器地址是16位的地址,而我们写入的频率却是30.00HZ是一个实数,16位的寄存器不可能写入一个实数,由于2102H频率指令是带2位小数的,所以我们可以用PLC的两个字地址VW100和VW102分别填入数字3000和小数点位数2,实际上小数位数已经固化在变频器里面了,把3000写入到变频器后,有两位是小数点后面的位数,实际写入到变频器里得到的是30.00HZ。

正反启停命令:2000H转换为10进制后为8192,加1并且属于第四类,Modbus地址为48193,向其地址中分别写入2#10010、2#100010和2#1控制变频器正转、反转和停止。

读取电流地址:2104H转换为10进制后为8452,加1并且属于第四类,Modbus地址为48453,PLC读取该地址的值即可(保留)

读取电压地址:2106H转换为10进制后为8454,加1并且属于第四类,Modbus地址为48455,PLC读取该地址的值即可(保留)

通讯之前,变频器的站地址、波特率、奇偶校验需与PLC端设置一致,变频器的通讯参数设置如下图所示:



S7-200PLC与台达变频器Modbus通讯采用SM0.5给变频器写入频率方法如下图所示:



实践出真知,没有实践,理论就是纸上谈兵;学习中需要多加测试和验证。

复杂的事情简单做,你就是专家;

简单的事情重复做,你就是行家;

重复的事情用心做,你就是赢家。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则