QQ登录

只需一步,快速开始

MM440与S7-300通过DP通讯实现读取和修改参数例程

[ 复制链接 ]
MM440与S7-300通过DP通讯实现读取和修改参数例程

1、MM440的DP通讯功能简介
MM440变频器既支持和主站的周期性数据通讯,也支持和主站的非周期性数据通讯,即S7-300可以使用功能块SFC14/SFC15读取和修改MM440参数值,调用一次可以读取或者修改一个参数。同时也可以使用功能块SFC58/SFC59或者SFB52/SFB53读取和修改MM440参数值,一次最多可以读取或者修改39个参数。

2、MM440周期性数据通讯的报文说明
MM440周期性数据通讯报文有效 数据区域由两部分构成,即PKW区(参数识别ID-数值区)和PZD区(过程数据),见表1。PKW区最多占用4个字,即PKE(参数标识符值:占用一个字)、IND(参数的下标:占用一个字)、PWE1和PWE2(参数数值:共占用两个字)。S7-300使用功能块SFC14/SFC15读取和修改参数需要占用4个PKW,即调用一次功能块可以修改一个参数。PKW区的说明见表2。下面分别介绍一下PKW区的四个字。

MM440与S7-300通过DP通讯实现读取和修改参数例程

MM440与S7-300通过DP通讯实现读取和修改参数例程

表1

MM440与S7-300通过DP通讯实现读取和修改参数例程

MM440与S7-300通过DP通讯实现读取和修改参数例程

表2

(1)第一个字PKE:参数识别标识ID,见表3。

MM440与S7-300通过DP通讯实现读取和修改参数例程

MM440与S7-300通过DP通讯实现读取和修改参数例程
表3

参数识别标记ID(PKE)总是一个16位的值,位0~10(PNU)包括所请求的参数号码,位11(SPM)用于参数变更报告的触发位,位12~15(AK)包括任务识别标记ID(见表4)和应答识别标记ID(见表5)。

MM440与S7-300通过DP通讯实现读取和修改参数例程

MM440与S7-300通过DP通讯实现读取和修改参数例程
表4

MM440与S7-300通过DP通讯实现读取和修改参数例程

MM440与S7-300通过DP通讯实现读取和修改参数例程
表5

(2)第二个字IND:参数的下标
完整的参数号码是由基本参数号码和下标(PNU页号)中的位12-15产生,见表6。因为MM440参数号码没有超过4000,所以在读取和修改参数号为2000到3999时位15-12中必须为1。

MM440与S7-300通过DP通讯实现读取和修改参数例程

MM440与S7-300通过DP通讯实现读取和修改参数例程
表6

(3)第三个字PWE1和第四个字PWE2:参数数值,见表7。
总是以双字(32位)来传送参数值(PWE)。在PPO报文中,仅一个参数值能被传送。由PWE1(高位有效字:第三个字)和PWE2(低位有效字:第四个字)组成一个32位参数值。用PWE2(低位有效字:第四个字)传送一个16位参数值,这种情况下,必须在PROFIBUS-DP主站中,设定PWE1(高位有效字:第三个字)为零。

MM440与S7-300通过DP通讯实现读取和修改参数例程

MM440与S7-300通过DP通讯实现读取和修改参数例程

表7

  • 位0到15(PWE2):用于16位参数的参数值或用于32位参数的低位部分。
  • 位16到31(PWE1):用于等于零的1位参数或用于32位参数的高位部分。


3、MM440非周期性数据通讯的报文说明
MM440支持非周期通讯方式,即扩展的PROFIBUS DP(DPV1)功能,一次最多可以传送240个字节,传输数据块的内容应遵照 PROFIdrive Profile, version 4.0(with data block 47 (DS47))非周期参数通道结构。它包括参数请求和参数应答两部分。

(1)参数请求包括请求标题、参数地址和参数值,见表8。

项目
数据类型
数值
注释
请求参考
无符号8 位数
0x01 … 0xFF
每一次新的请求主站改变“请求参考“,从站在其应答时镜像“请求参考“
请求ID
无符号8位数
0x01
读请求
  
  
0x02
写请求
设备ID
无符号8位数
0x00 … 0xFF
对于多个驱动单元设定相应设备ID
参数数量
无符号8位数
0x01 … 0x27
No.1…39,对于请求多个参数时的参数数量,=1为请求一个参数
属性
无符号8位数
0x10
数值型
  
  
0x20
描述型
  
  
0x30
文本型(不可能)
元素数量
无符号8位数
0x00
特定功能
  
  
0x01 … 0x75
No. 1 … 117,数组数量
参数值
无符号16位数
0x0001 … 0xFFFF
No. 1 … 65535
下标
无符号16位数
0x0001 … 0xFFFF
No. 1 … 65535
格式
无符号8位数
0x02
8位整形数
  
  
0x03
16位整形数
  
  
0x04
32位整形数
  
  
0x05
无符号8位数
  
  
0x06
无符号16位数
  
  
0x07
无符号32位数
  
  
0x08
浮点数
  
  
Other values
PROFIdrive Profile
  
  
0x40
0
  
  
0x41
字节
  
  
0x42
  
  
0x43
双字
  
  
0x44
错误
数值号
无符号8位数
0x00 … 0xEA
0..234
数值
无符号16位数
0x0000 … 0x00FF
读或写的参数值

表8


(2)参数应答描述见表9:

错误值
含义
注释
0X00
无效的参数号
获取不存在的参数
0X01
参数值不能被改变
修改了一个不允许修改的参数
0X02
超出上下限
修改的数值超限
0X03
无效的下标
获取不存在的下标
0X04
没有数组
用下标获取不存在下标的参数
0X05
数据类型不正确
  
0X06
无效的设定操作(参数只能设定为0
  
0X07
描述的元素不能被修改
修改了不能被修改的元素
0X09
没有描述的数据
获取不存在的参数
0X0B
没有操作权限
  
0X0F
下一个数组不存在
获取下一个不存在的数组
0X11
变频器运行时不能执行请求任务
  
0X14
无效数值
  
0X15
应答长度太长
当前的应答长度超出最大传输长度
0X16
无效的参数地址
  
0X17
无效的数据格式
  
0X18
数据数量不一致
  
0X19
驱动装置不存在
  
0X20
文字类型的参数不能被改变
  

表9

4、硬件组态和站地址设置
本例中主站选用的是CPU319F-3 PN/DP,版本为V2.6,从站MM440的DP地址为5,MM440的版本为V2.09,选择的报文结构是PPO1,即含有4个PKW和2个PZD,见图1。也可以选择其他报文类型,只要含有4个PKW就可以,见图2。本例中PKW的地址范围是256~263,PZD的地址范围是264~267。

MM440与S7-300通过DP通讯实现读取和修改参数例程

MM440与S7-300通过DP通讯实现读取和修改参数例程

图1                                                                                     图2

5、周期性DP通讯读取和修改参数例程
首先在主程序OB块中调用SFC14(读取参数)和SFC15(修改参数),功能块中LADDR为W#16#100,实际就是PKW的起始地址,DB1.DBB 0开始的8个字节是读到的值,DB1.DBB 24开始的8个字节是需要修改的参数值,见图3。M20.0为使能位,同时需要建一个DB1块。因为参数2000以下和2000以上的报文中IND不同,本文则以实例分别介绍如何读取和修改MM440的单字、双字和浮点数的三种参数类型。

MM440与S7-300通过DP通讯实现读取和修改参数例程

MM440与S7-300通过DP通讯实现读取和修改参数例程
图3

修改和读取2000以上参数方法:在下面的图中上部红色框中为实际修改后的值,由功能块SFC14读回来,下部红色框中为希望修改参数值的报文。

(1) 单字:修改参数P2010[1]为6,见图4。

修改参数请求报文
PKE=DB1.DBW 24=200A
IND=DB1.DBW 26=0180
PWE1=DB1.DBW 28=0000
PWE2=DB1.DBW 30=0006
实际应答报文
PKE=DB1.DBW 0=100A
IND=DB1.DBW 2=0180
PWE1=DB1.DBW 4=0
PWE2=DB1.DBW 6=6

MM440与S7-300通过DP通讯实现读取和修改参数例程

MM440与S7-300通过DP通讯实现读取和修改参数例程

图4

(2) 双字:修改参数P2200[1]为1,见图5。
修改参数请求报文
PKE=DB1.DBW 24=80C8
IND=DB1.DBW 26=0180
PWE1=DB1.DBW 28=0001
PWE2=DB1.DBW 30=0000

实际应答报文
PKE=DB1.DBW 0=50C8
IND=DB1.DBW 2=0180
PWE1=DB1.DBW 4=0001
PWE2=DB1.DBW 6=0000

MM440与S7-300通过DP通讯实现读取和修改参数例程

MM440与S7-300通过DP通讯实现读取和修改参数例程
图5

(3) 浮点数:修改参数P2240[1]为40.0,见图6。

修改参数请求报文
PKE=DB1.DBW 24=80F0
IND=DB1.DBW 26=0180
PWE1+PWE2=DB1.DBD 28=40.0

实际应答报文
PKE=DB1.DBW 0=50F0
IND=DB1.DBW 2=0180
PWE1+PWE2=DB1.DBD 4=40.0

MM440与S7-300通过DP通讯实现读取和修改参数例程

MM440与S7-300通过DP通讯实现读取和修改参数例程
图6

修改和读取2000以下参数方法:下面的图中上部红色框中为实际修改后的值,由功能块SFC14读回来,下部红色框中为希望修改参数值的报文。

(1) 单字:修改参数P0701[0]为2,见图7。

修改参数请求报文
PKE=DB1.DBW 24=72BD
IND=DB1.DBW 26=0000
PWE1=DB1.DBW 28=0000
PWE2=DB1.DBW 30=0002

实际应答报文
PKE=DB1.DBW 0=42BD
IND=DB1.DBW 2=0000
PWE1=DB1.DBW 4=0000
PWE2=DB1.DBW 6=0002

MM440与S7-300通过DP通讯实现读取和修改参数例程

MM440与S7-300通过DP通讯实现读取和修改参数例程
图7

(2) 双字:修改参数P1020[0]为1,见图8。

修改参数请求报文
PKE=DB1.DBW 24=83FC
IND=DB1.DBW 26=0000
PWE1=DB1.DBW 28=0001
PWE2=DB1.DBW 30=0000

实际应答报文
PKE=DB1.DBW 0=53FC
IND=DB1.DBW 2=0000
PWE1=DB1.DBW 4=0001
PWE2=DB1.DBW 6=0000

MM440与S7-300通过DP通讯实现读取和修改参数例程

MM440与S7-300通过DP通讯实现读取和修改参数例程
图8

(3) 浮点数:修改参数P1120[1]为40.0,见图9。
修改参数请求报文
PKE=DB1.DBW 24=8460
IND=DB1.DBW 26=0100
PWE1+PWE2=DB1.DBD 28=40.0
实际应答报文
PKE=DB1.DBW 0=5460
IND=DB1.DBW 2=0100
PWE1+PWE2=DB1.DBD 4=40.0

MM440与S7-300通过DP通讯实现读取和修改参数例程

MM440与S7-300通过DP通讯实现读取和修改参数例程

图9

6、非周期DP通讯读取和修改参数例程

方法一:使用SFB52/SFB53对MM440进行非周期DP通讯读取参数时必须要成对出现,即先发送读请求块SFB53,然后发送SFB52块读取参数;而修改参数只需要发送功能块SFB53就可以。功能块中ID的地址可以设置为PZD或者PKW的地址,也可以设置为诊断地址,本例中设为诊断地址W#16#1FFA;功能块中INDEX必须为47;建议功能块中LEN和RECORD的长度一致,或者RECORD的长度大于LEN的长度,只要小于240字节即可,见图10。程序中先置M0.0为1发出读请求,然后程序自动把M0.0复位为0;再置M0.1为1进行读取参数,M0.1也自动复位为0。

MM440与S7-300通过DP通讯实现读取和修改参数例程

MM440与S7-300通过DP通讯实现读取和修改参数例程

读请求                                                                                     读参数
                                                图10

方法二:使用SFC58/SFC59对MM440进行非周期DP通讯读取参数必须要成对出现,即先发送读请求块SFC59,然后发送SFC58块读取参数;而修改参数只需要发送功能块SFC59就可以。功能块中LADDER的地址可以设置为PZD或者PKW的地址,也可以设置为诊断地址,本例中设为诊断地址W#16#1FFA;功能块中IOID必须设置为B#16#54;功能块中RECNUM必须为B#16#2F,即十进制必须为47;程序中先置M2.0为1发出读请求,然后程序自动把M2.0复位为0;再置M2.1为1进行读取参数,M2.1也自动复位为0,见图11和图12。

MM440与S7-300通过DP通讯实现读取和修改参数例程

MM440与S7-300通过DP通讯实现读取和修改参数例程
读请求                                                                                         读参数

                                                                图11

MM440与S7-300通过DP通讯实现读取和修改参数例程

MM440与S7-300通过DP通讯实现读取和修改参数例程

图12

(1)一次读取参数P1120的三个下标值和P1121的三个下标值,报文结构说明见图13,其中DB1.DBB 2(驱动单元ID号码):可以取值为0或1或2。实际设置见图14。

MM440与S7-300通过DP通讯实现读取和修改参数例程

MM440与S7-300通过DP通讯实现读取和修改参数例程

图13

MM440与S7-300通过DP通讯实现读取和修改参数例程

MM440与S7-300通过DP通讯实现读取和修改参数例程
读请求                                                                                     读参数

图14

(2)单字:修改参数P0701的三个下标值均为9,主程序调用功能块SFC59,见图15,M3.1置后则自动复位为0。实际修改参数见图16。STARTER软件中参数P0701的三个下标值均被修改为9,见图17。

MM440与S7-300通过DP通讯实现读取和修改参数例程

MM440与S7-300通过DP通讯实现读取和修改参数例程
图15

MM440与S7-300通过DP通讯实现读取和修改参数例程

MM440与S7-300通过DP通讯实现读取和修改参数例程

图16

MM440与S7-300通过DP通讯实现读取和修改参数例程

MM440与S7-300通过DP通讯实现读取和修改参数例程
图17

(3)双字:把参数P2200的三个下标值都修改为1,实际修改参数见图18,STARTER软件中参数被修改为1,见图19。

MM440与S7-300通过DP通讯实现读取和修改参数例程

MM440与S7-300通过DP通讯实现读取和修改参数例程
图18

MM440与S7-300通过DP通讯实现读取和修改参数例程

MM440与S7-300通过DP通讯实现读取和修改参数例程

图19

(4)浮点数:把参数P1120的三个下标修改为11.0/7.0/30.0,实际修改参数见图20,STARTER软件中参数被修改为11.0/7.0/30.0,见图21。

MM440与S7-300通过DP通讯实现读取和修改参数例程

MM440与S7-300通过DP通讯实现读取和修改参数例程

图20

MM440与S7-300通过DP通讯实现读取和修改参数例程

MM440与S7-300通过DP通讯实现读取和修改参数例程
图21

关键词
S7-300 MM440 周期通讯 非周期通讯 读参数 写参数



回复

使用道具 举报

快速回复 返回列表 客服中心 搜索