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