技术论坛

 S7-1200与MM4变频器PROFIBUS通讯-周期通讯读写参数实例

返回主题列表
作者 主题
驱动草根
侠士

经验值:1878
发帖数:125
精华帖:5
楼主    2019-08-20 09:10:10
主题:S7-1200与MM4变频器PROFIBUS通讯-周期通讯读写参数实例

 

1、MM440周期性数据通讯的报文说明

MM440周期性数据通讯报文有效 数据区域由两部分构成,即PKW区(参数识别ID-数值区)和PZD区(过程数据),见图1。

PKW区最多占用4个字,即PKE(参数标识符值:占用一个字)、IND(参数的下标:占用一个字)、PWE1和PWE2(参数数值:共占用两个字)。

S7-1200使用功能块DPRD_DAT/DPWR_DAT读取和修改参数需要占用4个PKW,即调用一次功能块可以修改一个参数。PKW区的说明见表2。下面分别介绍一下PKW区的四个字。

 

图1

 

图2

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

 

图3

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

 

图4

 

图5

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

 

图6

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

 

图7

位0到15(PWE2):用于16位参数的参数值或用于32位参数的低位部分。

位16到31(PWE1):用于等于零的1位参数或用于32位参数的高位部分。

2、1200PLC硬件组态和站地址设置
本例中主站选用的是1214C+CM1243-5 DP通讯模块,从站MM440的DP地址为3,选择的报文结构是PPO1,即含有4个PKW和2个PZD。也可以选择其他报文类型,只要含有4个PKW就可以,如下图:

 

 

3、周期性DP通讯读取和修改参数例程
首先在主程序OB1块中调用使用功能块DPRD_DAT/DPWR_DAT读取和修改参数,功能块中LADDR管脚直接同一选择地址277,读写两个块LADDR管脚地址必须设置一致,否则可能会出现读写不统一的情况。

(备注:1200/1500定义LADDR管脚直接可以在管脚下标选项中直接选择,300/400在STEP7或TIA环境中需要手动输入,例如:W#16#100)

 

因为参数2000以下和2000以上的报文中IND不同,本文则以实例分别介绍如何读取和修改MM440的单字、双字和浮点数的三种参数类型。

(1) 单字:修改参数P2013[0]为4,如图:

修改参数请求报文
PKE=MW200=200D
IND=MW202=0080
PWE1= MW204=0000
PWE2= MW206=0004
实际应答报文
PKE= MW300=100D
IND= MW302=0080
PWE1= MW304=0
PWE2= MW306=4

 

(2) 双字:修改参数P2200[1]为1,如下图。
修改参数请求报文
PKE= MW200=80C8
IND= MW202=0080
PWE1= MW204=0001
PWE2= MW206=0000

实际应答报文
PKE= MW300=50C8
IND= MW3002=0080
PWE1= MW304=0001
PWE2= MW306=0000

 

(3) 浮点数:修改参数P2240[1]为30.0,如下图。

修改参数请求报文
PKE= MW200=80F0
IND= MW202=0080
PWE1+PWE2= MD204=30.0

实际应答报文
PKE= MW300=50F0
IND= MW302=0080
PWE1+PWE2= MD304=30.0

 

您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。