因为变频器本身不具有PROFIBUS-DP通讯的功能,需要外加通讯板卡,这样变频器才能支持PROFIBUS-DP协议
MM440通讯板卡图片:
变频器安装通讯板卡后图片:
第一步:进行S7-300硬件的组态
上图中选择的PKW和PZD是什么?
PKW表示参数区,参数ID,是用来通过PROFIBUS-DP更改变频器参数使用的。
PZD表示控制数据区,主要用来控制变频器的启停,运行频率,读取变频器的状态。
PPO3:0PKW 2PZD 指示的含义:
0PKW:表示没有参数ID
2PZD:表示控制数据区输入有两个字,输出有两个字
即上图中的IW256 IW258 QW256 QW258
在编程时我们使用这四个字需要前面加前缀P后在进行寻址,即PIW256 PIW258 PQW256 PQW258
控制变频器有两个要素:1,启动/停止
2,运行频率设定
第二步:了解怎么去控制一台变频器的启动/停止
硬件组态时的Q地址,第一个字是控制字,控制电机启动停止
给Q地址的一个字传送以下16进制数值,会控制变频器的启动/停止等状态:
047F:电机正转
0C7F:电机反转
047E:电机停止/复位
思考为什么传送这些数据变频器就能运行停止?
答案提示:查看MM440变频器参数r2090
编程案例:
第三步:了解怎么设定变频器的运行频率
硬件组态时的Q地址,第二个字是频率设定字,用来设定变频器的运行频率
给Q地址的第二个字传送一个数值,在变频器内就会对应一个频率
对应关系如下:
编程案例:
第四步:了解怎么去监控变频器的运行状态/故障状态等信息
硬件组态时的I地址,第一个字是状态字,用来监控变频器的运行/停止/故障等状态
下面问题来了,我们读取上来的是第一个字,而我们需要的状态(运行/停止/故障)是一个位(“1“”0“)的信号?
答案:查看变频器的r0052参数
从参数说明上我们可以看出,状态字中的不同位代表着不同的作用,我们需要的运行状态是第2个位
下面问题又来了,我们读到PLC的地址是PIW256,而我们需要的是它的某个位,思考在PLC内能不能使用PI256.0,PI256.1,PI256.2等等这些位????
答案是不能的,因为PLC内位寻址是不能用PI256.0,PI256.1这些方式的
所以我们需要先把PIW的数据传送到一个字里面,然后在提取位
程序案例:
第五步:了解怎么去监控变频器当前运行频率
硬件组态时的I地址,第二个字是当前运行频率,用来监控变频器当前运行的频率
I地址的第二个字读上来的频率是一个16进制的0~~~4000的数字对应变频器0~~~50HZ(变频器设定最大频率)的频率。
对应关系如下:
程序案例:
附录:
变频器PROFIBUS-DP相关参数的设置
P0003=3参数访问级别 专家级
P700=6 启动/停止命令给定源 PROFIBUS-DP
P918=DP地址(这个参数设定的是STEP7内组态变频器是的地址,只有在通讯板卡硬件拨码开关全部为0的时候这个参数才会起作用,否则这个参数不起作用,只能显示硬件拨码开关对应的数值)
P1000=6频率给定源 PROFIBUS-DP
怎么恢复西门系MM440变频器参数的出厂设置
P0010=30
P0970=1
设定后等待一分钟,切断变频器电源重新上电,重新上电后变频器内参数会恢复到出厂设置(注意P918DP地址设定参数不会更改)
拓展学习(在充分的理解以上五步并编程/通讯试验后可以学习一下内容)
怎么去读取变频器的电流/电压等信息
根据前面第五步读取变频的当前频率的方法,我们可以把他改成读取当前的电流/电压等信息
更改西门子MM440变频器参数P2051
P2051=20,读取当前变频器设定频率
P2051=21,读取当前变频器实际运行频率
P2051=25,读取当前变频器实际输出电压
P2051=27,读取当前变频器实际输出电流
P2051=31,读取当前变频器实际转矩
同样读上来的数据是16进制的0---4000,需要对应实际的数字。
列如读取电流:
这里读取的电流16进制的4000对应变频器参数“基准电流“的数值
现在电流的对应关系如图:
如果要读取其他的信息,16进制的0到4000对应实际数值分别是0到下图内容