13.1.5 程序的编写
1.对PZD(过程数据)的读写
1)在STEP7中对PZD(过程数据)读写参数时调用SFC14和SFC15;
2)SFC14(“DPRD_DAT”)用于读Profibus从站(MM440)的数据;
3)SFC15(“DPWR_DAT”)用于将数据写入Profibus从站(MM440);
4)硬件组态时PZD的起始地址:W#16#108(即264)。
(1)建立数据块DB1
如图13-15所示,将数据块中的数据地址与从站(MM440)中的PZD、PKW数据区相对应。
图13-15 建立DB1
(2)数据分配
如图13-16所示,在OB1中调用特殊功能块SFC14和SFC15,完成从站(MM440)数据的读和写。
图13-16 调用SFC14和SFC15
在图13-16中,LADDR表示硬件组态时PZD的起始地址(W#16#108即264);RE-CORD表示数据块(DB1)中定义的PZD数据区相对应的数据地址;RET_VAL表示程序块的状态字,可以以编码的形式反映出程序的错误等状态。
1)W#16#108(即263)是硬件组态时PZD的起始地址
2)将从站数据读入DB1.DBX8.0开始的4个字节(P#DB1.DBX8.0 BYTE 4)
PZD1→DB1.DBW8(状态字)
PZD2→DB1.DBW10(实际速度)
3)将DB1.DBX20.0开始的4个字节写入从站(P#DB1.DBX20.0 BYTE 4)
DB1.DBW20→PZD1(控制字)
DB1.DBW22→PZD2(给定速度)
(3)控制实现
如图13-17所示,在本例中设定值和控制字可以从数据块DB1中传送,DB1.DBW20设为047E再变为047F后DB1.DBW22中的频率值将输出;状态字和实际值可从DB1.DBW8,DB1.DBW10读出。
图13-17 控制实现的程序
1)控制命令W#16#47F(含义见表13-5),启动变频器运行。
表13-5 MM440变频器PROFIBUS-DP通信控制字定义
(续)
2)给定速度5000含义是500.0r/min。
2.对PKW(参数区)读写
(1)数据传送规则
对PKW区数据的访问是同步通信,即发一条信息,得到返回值后才能发第二条信息。PKW一般为4个字,定义如下:
A为常用值:1、2、3、6、7、8。
其中1:读请求(无数据分组);2:写请求(无数据分组、单字);3:写请求(无数据分组、双字);6:读请求(有数据分组);7:写请求(有数据分组、单字);8:写请求(有数据分组、双字)。
PNU为参数号:当读写0002~1999的参数时,直接将数值转换为十六进制即可;当读写2000~3999的参数时,将数值减去2000再转换为十六进制。
B为数据分组编号,常用值为0、1、2。
C为参数选择位,常用值为0、8。当读写0002~1999的参数时,该位为0;当读写2000~3999的参数时,该位为8。
(2)应用举例(如图13-18所示)
1)在Step7中对PKW(参数区)读写参数时同样调用SFC14和SFC15;
2)SFC14(“DPRD_DAT”)用于读PROFIBUS从站的数据;
3)SFC15(“DPWR_DAT”)用于将数据写入PROFIBUS从站;
4)硬件组态时PKW的起始地址:W#16#100(即256)。
图13-18 应用举例
在图13-18中,具体的参数解释如下:
1)W#16#100(即256)是硬件组态时PKW的起始地址。
2)将从站数据读入DB1.DBX0.0开始的8个字节(P#DB1.DBX0.0 BYTE 8)。
PKE→DB1.DBW0
IND→DB1.DBW2
PWE1→DB1.DBW4参数值的高字位
PWE2→DB1.DBW6参数值的低字位
3)将DB1.DBX12.0开始的8个字节写入从站(P#DB1.DBX20.0 BYTE 8)。
DB1.DBW12→PKE
DB1.DBW14→IND
参数值的高字位DB1.DBW16→PWE1
参数值的低字位DB1.DBW18→PWE2
3.参数读写总结
(1)读写0002~1999的参数
1)如读P0700,700=2BC(HEX):
2)如读P1082,1082=43A(HEX):
3)如写P1082,1082=43A(HEX):
(2)读写2000~3999的参数
如读P2010,10=A(HEX):
4.MM440变频器PROFIBUS-DP通信状态字定义
表13-6为MM440变频器PROFIBUS-DP通信状态字定义。
表13-6 MM440变频器PROFIBUS-DP通信状态字定义
5.MM440变频器通信编程指令的选择
图13-19所示为MM4系列变频器(包括MM440)的所有组态类型,这些组态类型的不同,其含义也不同,所对应的编程语言也有所区别。具体如下:
图13-19 MM4系列变频器的硬件组态类型
(1)Standard Telegram 1
标准报文1:2个字输出/2个字输入,用MOVE指令(L/T指令)编程。
(2)4 PKW,2 PZD(PPO1)
PPO1,4个字参数数据,用SFC14/15编程;2个字过程数据,用MOVE指令(L/T指令)编程。
(3)0 PKW,2 PZD(PPO 3)
PPO3,没有参数数据,2个字过程数据,用MOVE指令(L/T指令)编程。
(4)4 PKW,4 PZD whole cons
4个字参数数据,用SFC14/15编程;4个字过程数据,整体连续,用SFC14/15编程。
(5)4 PKW,4 PZD word cons
4个字参数数据,用SFC14/15编程;4个字过程数据,字连续,用MOVE指令编程。
(6)0 PKW,4 PZD whole cons
没有参数数据;4个字过程数据,整体连续,用SFC14/15编程。
(7)0 PKW,4 PZD word cons
没有参数数据;4个字过程数据,字连续,用MOVE指令(L/T指令)编程。
(8)MM430/440 only:PZD>4
仅对MM430/440:PZD大于4个字。
(9)4 PKW,6 PZD(PPO2)
PPO2,4个字参数数据,用SFC14/15编程;6个字过程数据,用SFC14/15编程。
(10)4 PKW,6 PZD word cons
4个字参数数据,用SFC14/15编程;6个字过程数据,字连续,用MOVE指令编程。
(11)0 PKW,6 PZD(PPO4)
PPO4,没有参数数据;6个字过程数据,用SFC14/15编程。
(12)0 PKW,6 PZD word cons
没有参数数据;6个字过程数据,字连续,用MOVE指令(L/T指令)编程。
(13)4 PKW,8 PZD whole cons
4个字参数数据,用SFC14/15编程;8个字过程数据,整体连续,用SFC14/15编程。
(14)4 PKW,8 PZD word cons
4个字参数数据,用SFC14/15编程;8个字过程数据,字连续,用MOVE指令(L/T指令)编程。
(15)0 PKW,8 PZD whole cons
没有参数数据;8个字过程数据,整体连续,用SFC14/15编程。
(16)0 PKW,8 PZD word cons
没有参数数据;8个字过程数据,字连续,用MOVE指令(L/T指令)编程。