西门子PLC S7-300与 MM440 PROFIBUS-DP 通讯
S7-300C 与 MM440 PROFIBUS-DP 通讯
1 示例系统的体系结构
本例中选用 S7-300 CPU316-2DP 作为 PROFIBUS-DP 主站, 连接一个 MM440变频器,连接多个MM440 时与之相同。
2 软件版本描述
需要软件:
STEP7 V5.2
需要硬件:
1:S7-300 CPU316-2DP
2: MM440
3: PROFIBUS-DP 接口模块,用于安装在MM440 上, 使之成为PROFIBUS-DP 从站。
3 组态主站系统
打开SIMATIC MANAGER, 通过FILE 菜单选择 NEW 新建一个项目, 在NAME 栏中输入项目名称, 将其命名为 DRIVERS, 在下方的 Storage Location中设置其存储位置。
S7-300C
CPU316-2DP
MM440
项目屏幕的左侧选中该项目,在右键弹出的快捷菜单中选择 Insert NewObject 插入 SIMATIC 300 Station,可以看到选择的对象出现在右侧的屏幕上。
双击右侧生成的hardware图标,在弹出的HW config 中进行组态, 在菜单栏中选择“View” 选择“Catalog” 打开硬件目录, 按订货号和硬件安装次序依次插入机架、电源、CPU。
插入CP时会同时弹出组态PROFIBUS画面, 选择新建一条PROFIBUS(1) ,
组态 PROFIBUS 站地址, 点击“Properties” 键组态网络属性如下图:
在CP 属性的 Operating Mode 中, 将其设为 DP Master
在本例中主站的传输速率为“1.5Mbps” , “DP” 行规, 无中继器、 OBT 等网络元件,点击“OK” 键确认并存盘。
4 组态从站:
在DP网上挂上MM440, 并组态MM440的通讯区,通讯区与应用有关,如果需要读写MM440参数,则需4PKW区,如果除设定值和控制字以外,还需传送其他数据,则要选择PZD。
在选相中有 1,WHOLE CONS.(PZD,PKW 数据是连续的,都有调用SFC14,15)
2,WORD CONS. (只有PKW数据是连续的,不需要调用SFC14, 15)
在本例中,采用PPO3,2PZD ;MM440地址为4。
5 MM440 参数设置
要使变频器能够用 PLC 通过 Profibus 来控制, 变频器也需要一定的参数设置才能实现:
P700 命令源 6 (从 CB 来)
P918 站号 4 (必需要与硬件组态时保持一致)
P1000 频率设定源 6 (从 CB 来)
P2041 配置通讯板: PPO3 时设置为 3
6 程序的编写
对PZD (过程数据) 的读写:
a. 在Step7 中对PZD (过程数据)读写参数时调用SFC14和SFC15。
b SFC14(“DPRD_DAT”)用于读Profibus 从站(MM440) 的数据
c. SFC15(“DPWR_DAT”)用于将数据写入Profibus 从站(MM440)
d. 硬件组态时PZD的起始地址: W#16#108(即264)
e. 准备启动047E(控制字) 给QW264,0000( 50频率)给QW266
开始正转运行047F(控制字) 给QW264,4000( 50频率)给QW266
开始反装运行0C7F(控制字) 给QW264,4000( 50频率)给QW266
f.接收状态数值:
准备启动047E(状态字) 给IW264,0000( 50频率)给IW266
开始正转运行047F(状态字) 给IW264,4000( 50频率)给IW266
开始反装运行0C7F(状态字) 给IW264,4000( 50频率)给IW266
g.若要使变频器运行,必须先传047E控制字后再传O47F控制字。
h. 控制字说明: ( 从低位开始)
第一位( 0) : 1=ON 准备运行, 方向由第十二位( 11) 控制
0=OFF1
第二位( 1) : 1=ON 运行条件
0=OFF2
第三位( 2) : 1=ON 运行条件
0=OFF3
第四位( 3) : 1=ON 运行条件( 脉冲使能)
0=停止脉冲使能
第五位( 4) : 1=ON 运行条件
0=停止 RFG
第六位( 5) : 1=ON 运行条件( RFG 使能)
0=停止 RFG 使能( RFG 为斜坡发生器)
第七位( 6) : 1=ON 设置使能, 激活 RFG 输入。
0=停止 RFG 输入。
第八位( 7) : 1=ON 故障复位。
0=无意义。
第九位( 8) : 1=正向点动。
0=无意义。
第十位( 9) : 1=反向点动。
0=无意义。
第十一位( 10) : 1=PLC 控制。
0=无意义。
第十二位( 11) : 1=反转控制。
0=无意义。
第十三位( 12) : 本例无用 。
第十四位( 13) : 本例无用 。
第十五位( 14) : 本例无用 。
第十六位( 15) : 本例无用 。
7 其它情况
1. 建立数据块DB1,将数据块中的数据地址与从站(MM440)中的PZD、PKW数据区相对应.
2. 在OB1中调用特殊功能块SFC14和SFC15,完成从站(MM440)数据的读和写:
其中:
LADDR 表示: 硬件组态时PZD的起始地址(W#16#108即264) ;
RECORD 表示: 数据块(DB1) 中定义的PZD数据区相对应的数据地址;
RET_VAL 表示: 程序块的状态字,可以以编码的形式反映出程序的错误等状态。
在本例中设定值和控制字可以从数据块DB1中传送, DB1. DBW20 设为 047E再变为 047F 后 DB1. DBW22 中的频率值将输出。状态字和实际值可从 DB1. DBW8,DB1. DBW10 读出。
要对变频器其他不同项目的参数进行设置, 只要编程改变RECORD地址里的数值即可。
对PKW (参数区) 读写
a. 在Step7 中对PKW (参数区) 读写参数时同样调用SFC14和SFC15
b. SFC14(“DPRD_DAT” ) 用于读Profibus 从站的数据
c. SFC15(“DPWR_DAT” ) 用于将数据写入Profibus 从站
d. 硬件组态时PKW的起始地址:W#16#108(即264)
读写过程和对PZD (过程数据)的读写相同, 只要编程改变RECORD地址里的数值即可, 具体数据传送规则后面介绍。
7 数据传送规则
对PKW区数据的访问是同步通讯,即发一条信息,得到返回值后才能发第二条信息。
PKW一般为4个字,定义如下:
PKE: 参数表示符 IND: 索引 PWE: 参数值
A: 常用值: 1、 2、 3、 6、 7、8
其中:1:读请求(无数据分组) 6:读请求(有数据分组)
2:写请求(无数据分组、单字) 7:写请求(有数据分组、单字)
3:写请求(无数据分组、双字) 8:写请求(有数据分组、双字)
PNU: 参数号:
当读写0002~1999的参数时,直接将数值转换为十六进制即可;
当读写2000~3999的参数时,将数值减去2000再转换为十六进制
B: 数据分组编号, 常用值: 0、 1、 2
C: 参数选择位, 常用值: 0、 8
当读写0002~1999的参数时,该位为:0
当读写2000~3999的参数时,该位为:8
实例:
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
PKE PWE PWE IND
A
PNU C
B
1为读请求; 1 为数组中第一个参数;8为参数2000~3999;
PLC PKW 输入=100A,0180,0000,0006 返回 1 为单字长。
值为6(HEX)
具体传送命令参考 MM440手册
参数设定记录: P918=变频器站号一致。
P0300=3 为专家级
P700=6 命令源
P1000=6 通讯板
P1120=0。 5S 斜坡上升时间
P1120=0。 5S 斜坡上升时间
P2041=3 配置通讯板
上一篇:VB实现与西门子变频器通讯
下一篇:OTIS奥的斯电梯故障解决