datasheet
超过460,000+ 应用技术资源下载
pdf

S7-300C与MM440 PROFIBUS-DP通讯

  • 1星
  • 日期: 2015-04-29
  • 大小: 427.52KB
  • 所需积分:5分
  • 下载次数:0
  • favicon收藏
  • rep举报
  • 分享
  • free评论
标签: PLC

超级好用的工控技术,还等什么

S7-300C 与 MM440 PROFIBUS-DP 通讯 1 示例系统的体系结构 S7-300C CPU316-2DP MM440 本例中选用 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 中设置其存储位置。 项目屏幕的左侧选中该项目,在右键弹出的快捷菜单中选择 Insert New Object 插入 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) 在本例中,采用 4PKW,2PZD ;MM440 地址为 4。 5 MM440 参数设置 要使变频器能够用 PLC 通过 Profibus 来控制,变频器也需要一定的参数设置 才能实现: P700 命令源 6 (从 CB 来) P918 站号 4 (必需要与硬件组态时保持一致) P1000 频率设定源 6 (从 CB 来) 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) 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 PWE PNU A PKE:参数表示符 C B IND:索引 PWE:参数值 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 实例: 1, 读写 0002~1999 的参数。 如读 P0700, 700=2BC(HEX) PLC PKW 输出 =12BC,0000,0000,0000 PLC PKW 输入=12BC,0000,0000,0006 1 为读请求 返回 1 为单字长,值为 0006 如读 P1082, 1082=43A(HEX) PLC PKW 输出 =143A,0000,0000,0000 PLC PKW 输入=243A,0000,4248,0000 值为 42480000(HEX)=50.0(REAL) 1 为读请求 返回 2 为双字长。 如写 P1082, 1082=43A(HEX) PLC PKW 输出 =343A,0000,41F0,0000 41F00000(HEX)=30.0(REAL) PLC PKW 输入=243A,0000,41F0,0000 3 为写双字请求 返回 2 为双字长,确认修改完毕。 2,读写 2000~3999 的参数。 如读 P2010, 10=A(HEX) PLC PKW 输出 =100A,0180,0000,0000 1 为读请求; 1 为数组中第一个参数;8 为参数 2000~3999; PLC PKW 输入=100A,0180,0000,0006 返回 1 为单字长。 值为 6(HEX) 具体传送命令参考 MM440 手册 S7-300C 与 MM440 PROFIBUS-DP 通讯 1 示例系统的体系结构 S7-300C CPU316-2DP MM440 本例中选用 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 中设置其存储位置。 项目屏幕的左侧选中该项目,在右键弹出的快捷菜单中选择 Insert New Object 插入 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) 在本例中,采用 4PKW,2PZD ;MM440 地址为 4。 5 MM440 参数设置 要使变频器能够用 PLC 通过 Profibus 来控制,变频器也需要一定的参数设置 才能实现: P700 命令源 6 (从 CB 来) P918 站号 4 (必需要与硬件组态时保持一致) P1000 频率设定源 6 (从 CB 来) 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) 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 PWE PNU A PKE:参数表示符 C B IND:索引 PWE:参数值 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 实例: 1, 读写 0002~1999 的参数。 如读 P0700, 700=2BC(HEX) PLC PKW 输出 =12BC,0000,0000,0000 PLC PKW 输入=12BC,0000,0000,0006 1 为读请求 返回 1 为单字长,值为 0006 如读 P1082, 1082=43A(HEX) PLC PKW 输出 =143A,0000,0000,0000 PLC PKW 输入=243A,0000,4248,0000 值为 42480000(HEX)=50.0(REAL) 1 为读请求 返回 2 为双字长。 如写 P1082, 1082=43A(HEX) PLC PKW 输出 =343A,0000,41F0,0000 41F00000(HEX)=30.0(REAL) PLC PKW 输入=243A,0000,41F0,0000 3 为写双字请求 返回 2 为双字长,确认修改完毕。 2,读写 2000~3999 的参数。 如读 P2010, 10=A(HEX) PLC PKW 输出 =100A,0180,0000,0000 1 为读请求; 1 为数组中第一个参数;8 为参数 2000~3999; PLC PKW 输入=100A,0180,0000,0006 返回 1 为单字长。 值为 6(HEX) 具体传送命令参考 MM440 手册
更多简介内容

评论

下载专区


TI最新应用解决方案

工业电子 汽车电子 个人消费电子

$(function(){ var appid = $(".select li a").data("channel"); $(".select li a").click(function(){ var appid = $(this).data("channel"); $('.select dt').html($(this).html()); $('#channel').val(appid); }) })