回复:想弄懂PLC与变频器的通讯?

追求极限2010

  • 帖子

    187
  • 精华

    3
  • 被关注

    7

论坛等级:侠客

注册时间:2010-11-09

普通 普通 如何晋级?

发布于 2010-12-01 13:01:20

11楼

关于PLC与变频器通讯的例子很多的,找一个仔细研究一下就可以了。其中关键是搞懂PPO通讯协议。下面是个例子供参考(只可惜没有图片):
S7-300C与MM440 PROFIBUS-DP通讯
1 示例系统的体系结构
本例中选用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:参数值
A:常用值:1、2、3、6、7、8
其中:1:读请求(无数据分组) 6:读请求(有数据分组)
2:写请求(无数据分组、单字) 7:写请求(有数据分组、单字)
3:写请求(无数据分组、双字) 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 1为读请求
PLC PKW 输入=12BC,0000,0000,0006 返回1为单字长,值为0006
如读P1082, 1082=43A(HEX)
PLC PKW输出 =143A,0000,0000,0000 1为读请求
PLC PKW 输入=243A,0000,4248,0000 返回2为双字长。
值为42480000(HEX)=50.0(REAL)
如写P1082, 1082=43A(HEX)
PLC PKW输出 =343A,0000,41F0,0000 3为写双字请求
41F00000(HEX)=30.0(REAL)
PLC PKW 输入=243A,0000,41F0,0000 返回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手册
工控人生
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

MicroMaster

共有6821条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

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