0591-88263940
西门子MM440变频器通过Profibus-DP与PLC通讯的实现
来源:网络 | 作者:鸿飞达 | 发布时间: 2026-10-27 | 45 次浏览 | 🔊 点击朗读正文 ❚❚ ▶ | 分享到:

1、必备条件 

软件Step7 V5.2SP1 

PLC 中具有Profibus -DP 通讯口:S7-315 2DP 

Profibus 通讯电缆(6XV1830-0AH10)

Profibus 总线联结器(6ES7972-0BB10-0XA0, 带PG 接口;

6ES7972-0BA10-0XA0 不带PG 接口) 

MM440变频器1台

Drive 中有Profibus 通讯模板(6SE6400-1PB00-0AA0) 

2、 组态主站系统

打开 SIMATIC MANAGER, 通过 FILE 菜单选择 NEW 新建一个项目,在 NAME

栏中输入项目名称,将其命名为 DP_MM440,在下方的 Storage Location 中设置其存储位置。


项目屏幕的左侧选中该项目,在右键弹出的快捷菜单中选择 Insert New Object插入 SIMATIC 300 Station;可以看到选择的对象出现在右侧的屏幕上。


打开SIMATIC 300 Station,然后双击右侧生成的hardware图标,在弹出的HW config 中进行组态,在菜单栏中选择“View”选择“Catalog”打开硬件目录,按订货号和硬件安装次序依次插入机架、电源、CPU。插入CPU时会同时弹出组态PROFIBUS 画面,如下图所示:

选择“New”新建一条PROFIBUS(1),组态PROFIBUS站地址,点击“Properties”键组态网络属性如下图:

在本例中主站的传输速率为“1.5Mbps”,“DP”行规,无中继器、OBT等网络元件,点击“OK”键确认并存盘;然后组态S7-315 2DP本地模块,结果如下图:

3、组态从站:

在DP网上挂上MM440, 并组态MM440的通讯区,通讯区与应用有关,在组态之前应确认通信的PPO类型(见下图显示PPO类型),本例选择PPO1,由4PKW/2PZD组成;MM440仅支持PPO1和PPO3 

在本例中,采用4PKW,2PZD,选用PPO1类型;MM440地址为4。

组态步骤如下:

①、打开硬件组态,在右侧”Profi(standard)” Profibus-DP SIMOVERT 

双击MICROMASTER 440; 

②、弹出 profibus interface Properties: 输入从站地址:4

 

③、选择PPO类型1,双击4PKW/2PZD (PPO1);

④、从站组态完成,地址分配从4PKW/2PZD(256 – 267)。4 MM440硬件及参数设置 

4.1  PROFIBUS地址

下面介绍两种PROFIBUS总线地址的方法:

借助通讯模块的七个DIP开关(如下图所示)或借助P0918;

①、 PROFIBUS 地址开关 (DIP 开关) 

②、 (仅西门子内部使用) 

PROFIBUS地址能够设置从1到125,如下表所示:

4.2 通讯板参数 

为了让总线板运行,下面的参数必须设置:

5 程序的编写 

5.1 对PZD (过程数据)的读写: 

a. 在Step7 中对PZD (过程数据)读写参数时调用SFC14和SFC15;

b. SFC14(“DPRD_DAT”)用于读Profibus 从站(MM440)的数据; 

c. SFC15(“DPWR_DAT”)用于将数据写入Profibus 从站(MM440); 

d. 硬件组态时PZD的起始地址:W#16#108(即264);

5.1.1建立数据块DB1 

将数据块中的数据地址与从站(MM440)中的PZD、PKW数据区相对应

5.1.2 数据分配 

在OB1中调用特殊功能块SFC14和SFC15,完成从站(MM440)数据的读和写:

其中:          

LADDR   表示:硬件组态时PZD的起始地址(W#16#108即264);

RECORD 表示:数据块(DB1)中定义的PZD数据区相对应的数据地址; 

RET_VAL 表示:程序块的状态字,可以以编码的形式反映出程序的错误等状态。 

①. W#16#108(即263)是硬件组态时PZD 的起始地址 

② .将从站数据读入DB1.DBX8.0 开始的4 个字节(P#DB1.DBX8.0 BYTE 4)

PZD1 -> DB1.DBW8 (状态字) 

PZD2 -> DB1.DBW10 (实际速度) 

③ .将DB1.DBX20.0 开始的4 个字节写入从站(P#DB1.DBX20.0 BYTE 4) 

DB1.DBW20 -> PZD1 (控制字) 

DB1.DBW22 -> PZD2 (给定速度) 

5.1.3 控制实现

在本例中设定值和控制字可以从数据块 DB1 中传送,DB1.DBW20 设为 047E 再变

为 047F 后 DB1.DBW22 中的频率值将输出;状态字和实际值可从 DB1.DBW8, DB1.DBW10

读出。 

①、控制命令 W#16#47F(含义见附录 1),启动变频器运行; 

②、给定速度 5000 含义是 500.0rpm。 

5.2 对PKW (参数区)读写

5.2.1 数据传送规则 

对 PKW 区数据的访问是同步通讯,即发一条信息,得到返回值后才能发第二条信

息。 

PKW 一般为 4 个字,定义如下:

5.2.2 应用举例: 

a.在Step7 中对PKW (参数区)读写参数时同样调用SFC14和SFC15 

b. SFC14(“DPRD_DAT”)用于读Profibus从站的数据 

c. SFC15(“DPWR_DAT”)用于将数据写入Profibus从站 

d. 硬件组态时 PKW 的起始地址:W#16#100(即 256)

①. W#16#100(即256)是硬件组态时PKW 的起始地址 

② .将从站数据读入DB1.DBX0.0 开始的8 个字节(P#DB1.DBX0.0 BYTE 8)

PKE -> DB1.DBW0 

IND -> DB1.DBW2 

PWE1 -> DB1.DBW4 参数值的高字位 

PWE2 -> DB1.DBW6 参数值的低字位

③ .将DB1.DBX12.0 开始的8 个字节写入从站(P#DB1.DBX20.0 BYTE 8) 

DB1.DBW12 -> PKE 

DB1.DBW14 -> IND 

参数值的高字位 DB1.DBW16 -> PWE1 

参数值的低字位 DB1.DBW18 -> PWE2 

1, 读写 0002~1999 的参数。 

 

如读 P0700, 700=2BC(HEX) 

PLC PKW 输出 =12BC,0000,0000,0000 1 为读请求 

PLC PKW 输入=12BC,0000,0000,0006 返回 1 为单字长,值为 0006 

如读 P1082, 1082=43A(HEX) 

PLC PKW 输出 =143A,0000,0000,0000 1 为读请求 

PLC PKW 输入=243A,0000,4248,0000 返回 2 为双字长。 

值为 42480000(HEX)=50.0(REAL) 

如写 P1082, 1082=43A(HEX) 

PLC PKW 输出 =343A,0000,41F0,0000 3 为写双字请求 

41F00000(HEX)=30.0(REAL) 

PLC PKW 输入=243A,0000,41F0,0000 返回 2 为双字长,确认修改完毕。 

2,读写 2000~3999 的参数。 

如读 P2010, 10=A(HEX) 

PLC PKW 输出 =100A,0180,0000,0000 

1 为读请求; 1 为数组中第一个参数; 8 为参数 2000~3999; 

PLC PKW 输入=100A,0180,0000,0006 返回 1 为单字长。 

值为 6(HEX)

附录 1: MM440 变频器 PROFIBUS-DP 通讯控制字定义

控制字、状态字由本人整理,错误难免,请批评指正,仅供各位参

考,使用时建议按说明书设置,谢谢!(特别指出MM440控制字、状态字

的与其他变频器不同,甚至MM420、MM430都不一定相同)

附录 2:MM440 变频器 PROFIBUS-DP 通讯状态字定义

状态字的各位可以用来指示变频器的运行状态。