(1)通信帧结构
在变频器DP现场总线控制系统中,S7-300与MM440间用户数据交换的帧主要使用的是有可变数据字段长度的帧(SD2),它分为协议头、用户数据和协议尾,如图12-2所示,其中用户数据是我们需要了解的。
图12-2 通信帧的结构
用户数据结构被指定为参数过程数据对象(PPO),有的用户数据带有一个参数区域和一个过程数据区域,而有的用户数据仅由过程数据组成。变频器通信概要定义了5种PPO类型,如图12-3所示。
图12-3 用户数据结构
MM440仅支持PPO型1和型3,此处选取的是通信的PPO1类型,包含4个字的PKW数据和2个字的PZD数据,数据格式如图12-4所示。下面分别介绍数据类型的具体内容。
(2)PKW区
PKW区前两个字PKE和IND的信息是关于主站请求的任务或应答报文,PKW区的第3、第4个字规定报文中要访问的变频器的参数。P2013选择可变长度模式(默认值127),主站只发送PKW区任务所必需的字数,应答报文的长度也只是需要多长就用多长,这里主站只使用4个字PKW。
1)PKE。该字的结构见表12-2。其中AK标识分任务和应答模式,表12-2仅列出常用的表示说明。PNU存放要访问的变频器的参数号,当参数超过一定范围时,还以IND中数据位索引。
图12-4 PPO1类型数据格式
表12-2 PPO1数据格式具体位
2)IND。PNU扩展以2000个参数为单位,当参数号小于2000时,表示PNU扩展的IND第7位为0,当参数号大于或等于2000时,表示PNU扩展的IND第7位为1。下标用来索引参数下标,没有值则取0。
3)PWE。PWE的两个字是被访问参数的数值,它包含有许多不同的类型,包括整数、单字长、双字长、十进制数浮点数以及下标参数,参数存储格式和P2013的设置有关,可参见变频器手册。
4)举例。
①读出参数P0700(700=02BChex)的数值:
PLC→MICROMASTER4(请求):12BC000000000000
MICROMASTER4→PLC(应答):12BC000000000002
应答报文告诉用户P0700是一个单字长的参数数值为0002 hex。
②读出参数P2010[下标1](0010=00A和IND的位7置1)的数值:
PLC→MICROMASTER4(请求):100A018000000000
MICROMASTER4→PLC(应答):200A018042480000
应答报文告诉用户这是一个双字长参数数值为42480000(IEEE浮点数),可以转换为十进制数形式显示。
③把参数P1082的数值修改为40.00(40.00=42200000 IEEE浮点数):
Step1
PLC→MICROMASTER4(请求):143A000000000000
MICROMASTER4→PLC(应答):243A000042480000
应答识别标志2表明这是一个双字参数,所以必须采用任务识别标志3修改双字参数数值。
Step2
PLC→MICROMASTER4(请求):343A000042200000
MICROMASTER4→PLC(应答):243A000042200000
确认这一参数的数值已修改完毕。
(3)PZD区
通信报文的PZD区是为控制和监测变频器而设计的,可通过该区写控制信息和控制频率,读状态信息和当前频率。
1)STW。当通过PLC对变频器写入PZD时,第1个字为变频器的控制字,其含义见表12-3。一般正向起动时赋值0X047F,停止时赋值0X047E。
表12-3 控制字说明
2)HSW。当通过PLC对变频器写入PZD时,第2个字为主设定值,即设定的变频器主频率。如果P2009设置为0,数值是以十六进制数的形式发送;如果P2009设置为1,数值是以绝对十进制数的形式发送。
3)ZSW。当通过PLC读变频器PZD时,第1个字为变频器状态字,其含义见表12-4。
表12-4 状态字说明
4)HIW。当通过PLC读变频器PZD时,第2个字为运行参数实际值,通常把它定义为变频器的实际输出频率。
5)举例。
①正向运行,频率40.00Hz:
Step1
PLC→MICROMASTER4(请求):047E3333
MICROMASTER4→PLC(应答):FB310000
设置速度,并检测变频器是否处于准备运行状态,应答数据提示用户,当前频率状态正常,方向设置为正向,并且速度为0。
Step2
PLC→MICROMASTER4(请求):047F3333
发送控制命令,起动变频器控制电动机。
②变频器正向点动:
Step1
PLC→MICROMASTER4(请求):047E0000
MICROMASTER4→PLC(应答):FB310000
检测变频器是否处于准备运行状态,应答数据提示我们,当前频率状态正常,方向设置为正向,并且速度为0。
Step2
PLC→MICROMASTER4(请求):057E0000
发送命令,使电动机点动运行,正向点动运行频率由P1058决定。
(4)系统功能函数SFC14、SFC15
为了存取相连续的数据区域,使用系统功能函数SFC14(DPRD_DAT)和SFC 15(DP-WR_DAT)。(www.xing528.com)
为了读一个DP从站相连续的输入数据区域,使用系统功能函数SFC 14(DPRD_DAT)。如果一个DP从站有若干个相连续的输入模块,则必须为所要读的每个输入模块分别安排一个SFC14调用。表12-5列出了SFC14的输入和输出参数。
表12-5 SFC14参数表
SFC15用来输出连续数据区域,输入和输出参数与SFC15相似,LADDR为目的输出数据地址,RECORD为希望输出数据存储区。见表12-6。
表12-6 SFC15参数表
返回值RECORD可以用来判断读写数据是否发生错误,以及发生何种错误,如果无错误发生,返回值为W#16#0000,其他状态可参阅手册。
(5)硬件组态
打开SIMATIC 300 Station,然后双击右侧生成的Hardware图标,在弹出的HW config中进行组态,在菜单栏中选择“View”→“Catalog”命令,打开硬件目录,按订货号和硬件安装次序依次插入机架、电源、CPU以及I/O模块,如图12-5和图12-6所示。
双击MPI/DP槽,在弹出窗口“Interface”→“Type”中选择“PROFIBUS”,然后单击“Properties”按钮,如图12-7所示单击“New”新建一条DP总线,并设置地址为2。单击“Properties”按钮,弹出如图12-8所示窗口,选择DP类型,并设置传输速率为1.5Mbit/s。
图12-5 组态主站
图12-6 各模块详细信息
图12-7 新建PROFIBUS总线
图12-8 设置属性
在DP总线上挂上远程I/O模块,设置从站地址为3,并在其上加入相应I/O模块。在DP总线上挂上MM440,并组态MM440的通信区,通信区与应用有关。MM440采用通用串行接口协议,其报文结构将在软件部分讲述。由程序操作的通信数据通过参数标识符值PKW和过程数据PZD传递,最长使用的是PKW为4个字(8个字节),PZD为2个字(4个字节)的固定长度报文,即PPO1类型,因此组态MM440的地址分别对应读写PKW和PZD。
组态MM440步骤如下:
1)打开硬件组态,在右侧选择“PROFIBUS DP”→“SIMOVERT”→“MI-CROMASTER 4”,添加到DP总线上,如图12-9所示。
2)在弹出窗口的下拉列表框中选择“Address”为4,如图12-10所示。
图12-9 插入MM440从站
图12-10 设置MM440从站地址
3)选择“MICROMASTER 4”→“4 PKW,2 PZD(PP01)”,添加到从站中,如图12-11所示。
4)从站组态完成,设置地址。PKW读为IB288~IB295,PZD读为IB296~IB299,PKW写为QB272~QB279,PZD写为QB280~QB283,如图12-11所示。
图12-11 组态从站
(6)软件设计
1)软件资源分配。软件资源分配如图12-12所示。
图12-12 软件资源分配
2)数据块DB1。S7-300与MM440的通信主要是对4个字PKW和2个字PZD进行读写,为使程序编写更为方便,可在程序中开辟一块静态存储空间,即DB1,用来存放要读写的数据,数据块格式与PKW和PZD的结构相似,如图12-13所示,读写区域分开。
图12-13 DB1资源分配图
3)PLC控制程序。
①S7-300通过DP控制MM440参数,以实现电动机的起动、停机、正转、反转、变速和正反向点动。
复位按钮(RESET)被按下,当断路器(BREAKER)已经闭合,则触发一次脉冲,进入复位完成状态(RESET_OK),给期望速度(SPEED)赋值为0,并对DB1中要发送的PZD区赋控制字(047Ehex)和主设定值(0),然后触发一个复位通信脉冲(RESET_SEND),调用SFC15和SFC14进行通信操作,写的操作地址从280(118hex)开始4个字节,读的操作地址从296(128hex)开始4个字节,程序如图12-14所示。
图12-14 复位程序
在复位完成后,可通过方向开关(FORWORD_BACKWORD)改变电动机的转动方向,断开为正方向,闭合为负方向。方向开关操作PZD中控制字的第11位(DB1.DBX20.3),这里要注意的是程序中字的存储方式是高字节存放低地址,低字节存放高地址,位都是从高到低对齐。方向设置可以在几种方式下完成:电动机起动前、电动机运行中以及电动机点动前。程序如图12-15所示。
图12-15 设置电动机转向
将速度按钮(SET_SPEED)置“1”,能够给期望速度赋值,并触发一个速度改变通信脉冲(SET_SPEED_SEND),当电动机处于运行状态时,将建立一次通信改变转速。变频器使用的V/f控制,速度是与频率成正比的,例如本电动机的额定频率是50Hz,该频率下对应的额定转速为1395r/min,当频率为40Hz时,转速对应为1116r/min。要注意的是,传送W#16#4000给主设定值,对应的频率为50Hz。程序如图12-16所示。
图12-16 设置电动机速度
复位完成后按下起动按钮(START),进入运行状态(START_ING)。起动分两个步骤,首先让电动机处于准备运行状态,触发起动通信脉冲1(START_SEND1),写PZD中控制字为047Ehex,主设定值为期望频率,并发送;当读回状态字为正方向FB31hex(-1231)或反方向BB31hex(-17615)时,触发起动通信脉冲2(START_SEND2),写控制字为047Fhex,主设定值为期望频率,此后电动机开始运行。程序如图12-17所示。
图12-17 起动程序
运行状态下点击停机按钮,将复位运行状态,并触发停止通信脉冲(STOP_SEND),写PZD中控制字047E hex以及主设定值0,电动机停止运行。程序如图12-18所示。
当复位完成,并且电动机不处于运行状态下时,可以按下点动按钮(JOG),检测到按钮按下,触发一个上升沿脉冲,此时将进入点动状态(JOG_ING),设置PZD中控制字第8位为1,第9位为0,并触发点动开始脉冲(JOGUP_SEND),发送控制字,点动的方向由方向开关决定。当点动按钮松开时,触发一个下降沿脉冲,将点动状态(JOG_ING)、控制字第8和第9位复位,并触发点动结束脉冲(JOGDOWN_SEND),发送控制字。程序如图12-19所示。
图12-18 停机程序
图12-19 点动程序
②S7-300通过DP读取MM440参数,读取控制电压、电流及频率。
该部分的功能是以0.5s的频率刷新当前电压、电流以及频率的值,变频器当前电压、电流以及频率是以32位浮点数的形式存储于参数r0025、r0027和r0021。T1每隔0.5s将触发一个上升沿脉冲,首先触发一个读电压脉冲(VOLTAGE_SEND),给PKW的4个字赋值(1019000000000000 hex),存储于DB1.DB12开始的8个字节中,并建立一次通信,当读回的PKW中PKE为8217(2019 hex)时,说明读取过程成功,将读取电压值(DB1.DB4~DB1.DB7)存储到电压值(VOLTAGE)中,紧接着触发一个读电流脉冲(CURRENT_SEND),根据上述原理再依次读电流和频率值。程序如图12-20~图12-22所示。
图12-21 读电流程序
图12-22 读频率程序
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。