全国热线电话:
18390808297
![]() |
|
西门子现场总线
![]() | 6XV1830-0EH10 PROFIBUS FC 标准电缆 GP, 2 芯总线,有屏蔽, 特殊结构用于 快速安装,供货单位: 大 1000m, 小订货量 20m 按米销售 |
《销售态度》:质量保证、诚信服务、及时到位!《销售宗旨》:为客户创造价值是我们永远追求的目标!《服务说明》:现货配送至全国各地含税(16%)含运费!《产品质量》:原装正品,*!《产品优势》:专业销售 薄利多销 信誉好,口碑好,价格低,货期短,大量现货,服务周到!
1 概述
S7-300/400与SINAMICS G150 之间通过PROFIBUS DP 总线可进行周期性及非周期性数据通讯。使用标准S7功能块SFC14/SFC15可实现周期性数据交换;使用标准S7功能块SFC58 / SFC59,可以实现非周期性数据交换,读写 SINAMICS G150 的参数。S7-300/400与SINAMICS G150装置的连接,如下图所示:
图1 S7-300/400与SINAMICS G150装置的连接
2 SINAMICS G150站地址设置及硬件组态
SINAMICS G150的PROFIBUS DP站地址设置有两种方法:
(1)通过CU320控制单元上DIP拨码开关,设置站地址,有效地址值为1….126,设定方法如表1所示,将DIP开关拨“ON”处,多个开关激活,将有效位进行加法运算, 1+4+32=37,表示站地址是37,注意:通过拨码开关改变地址时应断掉SINAMICS G150 电源,否则,更改的站地址是无效的。
表1 DIP开关设定PROFIBUS DP地址
(2) 在拨码开关全部拨到OFF或ON状态,可以利用参数P918设置站地址。
S7-300/400的硬件组态,如图2所示,在硬件组态中设定的SINAMICS G150站地址应与SINAMICS G150 实际的站地址*,本例中采用站地址是6。
图2 硬件组态
3 通讯报文设置
SINAMICS G150有多种报文结构进行选择,详细描述请参考:SINAMICS_G150_operating-instructions手册,表2为报文结构。
表2 报文结构
报文结构是999为用户自定义报文,当用户选择此报文结构时,SINAMICS G150的起、停控制位等需自己做关联。此时必须将PLC控制请求置1(P854=1)。
注意:在做S7-300/400硬件组态时,需要配置报文结构,图3是STEP7中的报文设置,配置结束后进行编译保存;然后,打开STARTER,核对报文结构是否*,图4是STARTER软件中报文的设置,若不*需在STARTER软件中打开“configuration”做调整后点击“Transfer to HW config”按钮。
图3 STEP7中的报文设置
图4 STARTER软件中报文设置
4 用PROFIBUS DP总线对SINAMICS G150起、停及速度控制
S7-300/400 PLC通过PROFIBUS DP周期性通讯方式将控制字1和主设定值发送至SINAMICS G150 ,当组态的报文结构 PZD=2或自由报文999时,在S7-300/400 中可用“MOVE” 指令和功能块SFC14和SFC15进行数据传送。
下面分别采用“MOVE” 指令进行数据传送和调用SFC14和SFC15系统功能块进行数据传送加以说明。
例程文件名为:“G150_DP控制字、主给定值的发送及状态字和实际频率读出程序.rar”,链接: G150_DP1.rar
注:程序中选择标准报文1
1、采用“MOVE” 指令进行数据传送:
(1)在例程中,在变量表“SINAMICS G150 start_up”中,分别强制M1.0、M1.1为1;
(2)通过MW2发送控制字1,首先写入047E,然后写入047F,SINAMICS G150 开始运行,如停止SINAMICS G150 ,发送047E,使SINAMICS G150 停止运行,变量表如图5所示;
(3)MW4写入的是主设定值,速度设定值要经过标准化,4000H(十六进制)对应于
100%,发送的大值为7FFFH(200%),所设定的百分数乘以P2000 中设定的参考速度, 就是给定速度;
(4)在MW6中能显示状态字1,变量表如图5所示;
(5)MW8中能显示实际运行速度,此处为十六进制,4000H表示100%。控制程序如图6所示。
图5 变量表中的内容
图6 “MOVE”指令控制程序
2、SFC14和SFC15系统功能块进行数据传送:
SFC14(“DPRD_DAT”)用于读取SINAMICS G150 过程数据,SFC15 (“DPWR_DAT”)用于将过程数据发送到SINAMICS G150 。
(1)控制SINAMICS G150 运行:
通过先发送控制字047E然后发送047F来启动SINAMICS G150 ,控制字1在 DB1.DBW20中,主设定值在DB1.DBW22中设定,参看图7;所有的这些变量在变量 表“SINAMICS G150 start_up”中设定及监控,图8是变量表的内容,图9是程序内容。
(2)停止SINAMICS G150 :
发送控制字047E至SINAMICS G150 ,使SINAMICS G150 停止运行。
(3)读取SINAMICS G150 状态字及速度实际值:
S7-300/400 接收SINAMICS G150 状态字1,存放在DB1.DBW30中;接收SINAMICS G150 传来的速度实际值,存放在DB1.DBW32中,参看图7,在变量表“SINAMICS G150 start_up”中能监控到SINAMICS G150 状态和速度实际值。
图7 数据块 DB1
图8 变量表
图9 控制程序
5 SINAMICS G150 参数的读取及写入
(1)扩展PROFIBUS DP功能(DPV1)
非周期性数据传送模式允许:
? 交换大量的用户数据(多240 bytes)
? DPV1支持DS47非周期数据交换
(2)参数请求及参数应答的结构
参数请求包括三部分:请求标题、参数地址及参数值,如表3所示。
表3 参数请求格式
参数应答格式,如表4所示,关于参数请求及应答描述,参考表5。
表4 参数应答格式
表5 参数请求及应答描述
在表6 中,是关于DPV1参数应答中的错误值描述。
表6 DPV1参数应答中的错误值描述
(3)S7-300/400 通过PROFIBUS DP非周期性通讯方式读取SINAMICS G150 参数
使用S7-300/400 PLC通过PROFIBUS DP非周期性通讯方式读取SINAMICS G150 参数,可以读一个参数下的多个索引值,或多个参数下的多个索引值。PLC读取SINAMICS G150 参数时必须使用两个功能块SFC58 / SFC59 ,程序参见图14。
例程文件名:“G150_DP读参数r945程序.rar” 链接:G150_DP2.rar
以读取一个参数下的一个索引值为例(读参数r945.0):
a.使用标志位M10.0及功能SFC58块将读请求(数据块DB2如图10所示),发送至SINAMICS G150,将M10.0设定为数值1启动写请求,当写请求完成后必须将该请求置0,结束该请求。MW300(RET_VAL)显示错误代码,用于表示数据传输时发生的错误。在变量表G150_read(如图11所示)中,按照表3参数请求格式进行设定,在DB1.DBW6中设定945,在DB1.DBW8中设定0,表明读请求中要读取r945.0中的数值。
西门子现场总线
图10 “写”请求数据块DB2
图11 变量表G150_read内容
b.使用标志位M10.1及功能SFC59块将读应答发送至S7-300/400 ,SINAMICS G150 将参数值发送到DB3,图12是数据块DB3的内容。将M10.1设定为数值1启动读应答,当读应答完成后必须将M10.1该请求置0。MW400 (RET_VAL) 显示包括错误代码。在变量表G150_read1(如图13所示)中,能够读到相应读应答,DB3.DBW6中读到的是7861,表明此时参数r945.0=7861。
图12 响应数据块DB3
图13变量表G150_read1内容
图14 读取SINAMICS G150 参数程序
(4)S7-300/400通过PROFIBUS DP非周期性通讯方式写SINAMICS G150 参数
使用S7-300/400 PLC通过PROFIBUS DP非周期性通讯方式写SINAMICS G150 参数,可以写一个参数下的多个索引值,或多个参数下的多个索引值。写参数时只需使用SFC58 ,如果需要读取写参数响应时需使用SFC59,程序参见图18。
例程文件名:“G150_DP写参数P1120程序.rar” 链接:G150_DPP1120.rar
以写参数P1120 为例 ,加以说明。
a.使用标志位M10.2及SFC58 功能块将写请求(数据块DB4如图15所示)发送至SINAMICS G150,将M10.2设定为数值1启动写请求,当写请求完成后必须将该请求置0,结束该请求。MW500(RET_VAL)显示错误代码,用于表示数据传输时发生的错误。在变量表G150_write(如图16所示)中,按照表3中的参数请求格式进行设定,在DB4.DBW6中设定1120,在DB4.DBW8中设定0,表明将DB4.DBD12中的数值写入参数P1120.0中。
图15 写请求数据块DB4
图16变量表G150_write中的内容
b. 使用标志位M10.3及功能SFC59块将写应答发送到S7-300/400 数据块DB5中,数据块DB5的内容,参看图17,将M10.3设定为数值1启动读请求,当读请求完成后必须将M10.3置0。MW504 (RET_VAL) 显示错误代码。在变量表G150_write(如图16所示)中,能够读到相应写请求响应,DB5.DBB1中为02,表明写请求已相应,从SINAMICS G150 中读到参数P1120已经被更改,表明参数P1120已修改完成。
图17数据块DB5
图18 写SINAMICS G150 参数程序
1.PROFIBUS 网络介绍
现场总线PROFIBUS可以连接远程I/O站、仪表、主站(PLC站)等设备,通信服务分为DP、FDL、S7、FMS、PA(将服务类型进行转换),通信方式分为主-主、主-从通信。PROFIBUS网络分层参考表1:
表1 PROFIBUS网络层
DP设备行规 | FMS设备行规 | PA设备行规 | ||
基本功能 | 基本功能 | |||
扩展功能 | 扩展功能 | |||
DP用户接口 直接数据链路映象程序(DDLM) | 应用层接口 | DP用户接口 | ||
(ALI) | 直接数据链路映象程序(DDLM) | |||
第7层 | 应用层 | 应用层 | ||
(应用层) | S7 | 现场总线报文规范(FMS) | ||
第3~6层 | ||||
第2层(数据链路层) | 数据链路层 现场总线数据链路(FDL) | 数据链路层 现场总线数据链路(FDL) | 数据链路层 现场总线数据链路(FDL) | IEC接口 |
第1层 | 物理层 | 物理层 | 物理层 | IEC1158-2 |
(物理层) | (RS485/光纤) | (RS485/光纤) | (RS485/光纤) |
PROFIBUS总线符合EIA RS485[8]标准,PROFIBUS RS485 的传输程序是以半双工、异步、无间隙同步为基础的。传输介质可以是光缆或屏蔽双绞线,电气传输每一个RS485传输段为32个站点和有源网络元件(RS485中间器,OLM等),在总线的两端为终端电阻,结构如图1:
图1:PROFIBUS网络结构
西门子总线终端一般都配有终端电阻,PROFIBUS使用9针D型连接器,D型连接器插座连接总线站,D型连接器插头与总线电缆相连。总线终端和针脚定义如表2:
表2 总线终端管脚定义
针脚号 | 信号名称 | 设计含义 |
1 | SHIELD | 屏蔽或功能地 |
2 | M24 | 24V输出电压地(辅助电源) |
3 | RXD/TXD-P | 接收和发送数据-正 B线 |
4 | CNTR-P | 方向控制信号P |
5 | DGND | 数据基准电位(地) |
6 | VP | 供电电压-正 |
7 | P24 | 正24V输出电压(辅助电源) |
8 | RXD/TXD-N | 接收和发送数据-负 A线 |
9 | CNTR-N | 方向控制信号N |
PROFIBUS总线的传输输率从9.6Kbit/s ~12Mbit/s,总线长度与传输输率相关,总的规律是传输输率越高总线长度越短,越容易受到电磁干扰,基于传输输率的大段长度参考表3:
表3 PROFIBUS网络传输速率与距离的关系
波特率(K Bit/s) | 9.6~187.5 | 500 | 1500 | 3000~12000 |
总线长度(米) | 1000 | 400 | 200 | 100 |
总线终端的电阻与PROFIBUS总线相匹配,并配有轴向电感以消除电容性负载而引起的导线反射,选择普通的屏蔽双绞线不能保证总线的段长度。
如果需要扩展总线的长度或者PROFIBUS从站个数超过32个时,就要加入RS485中继器,例如扩展PROFIBUS长度的应用,实际PROFIBUS的长度为500米,而波特率要求达到1.5 MBIT/S,对照上表波特率为1.5MBIT/S使大的长度为200米,要扩展到500米,就需要加入两个RS485中继器,拓扑图如图2所示:
图2:PROFIBUS网络扩展
西门子RS485中继器具有信号放大和再生功能,在一条PROFIBUS总线上多可以安装9个RS485中继器,其他厂商的产品要查看其产品规范以确定安装个数。
一个PROFIBUS网段多可有32个站点,如果一条PROFIBUS网上超过32个站点,也需要用RS485中继器隔开,例如一条PROFIBUS总线上有80个站点,那么就需要两个RS485中继器分成3个网段。RS485中继器是一个有源的网络元件 ,本身也要算一个站点。除了以上两个功能,RS485中继器的还可以使网段之间相互电气隔离。
2.SIMOTION使用PROFIBUS 网络的通信功能
SIMOTION系统只能使用PROFIBUS-DP通信服务进行通信,PROFIBUS-DP采用主-从的通信方式,使用DP通信方式,一个PROFIBUS网络上只允许有一个1类主站,其它站点可以是2类主站(HMI或只接收从站信息的主站)或从站,只有1类主站可以对从站发送命令,主站以轮询的方式访问各个从站,所以PROFIBUS-DP具有很好的实时性。按照PROFIBUS-DP的规约,主从间大的通信量为244个字节输入和244个字节输出。SIMOTION 可以作为主站也可以作为从站。下面以SIMOTION 435为例,通信区为16个字节输入和16个字节输出,分别介绍作为主站、从站的配置。
3.D435作为从站
设置从站
打开SCOUT软件插入D435,点击D435使用右键进入硬件配置界面,点击X126接口新建一条PROFIBUS网络,然后设置站号、通信速率、PROFIBUS参数组(选择PROFIBUS-DP)等参数。本例中作为从站的SIMOTION站地址为2,通信速率为1.5M。在“Operating Mode”界面中选择“DP SLAVE”,其它参数保持缺省设置。在“Configuration”界面中设置通信接口区及开始地址,如图3所示:
图3:SIMOTION作为从站的通信接口设置界面
设置通信接口分别为16个字节输入和16个字节输出。
设置主站
在STEP7中打开与SIMOTION D435相同的项目,插入S7-300站,打开硬件配置,插入CPU例如CPU315-DP/PN,设置与SIMOTION 435使用相同的PROFIBUS网络,设置主站地址为4。在硬件选择窗口PROFIBUS-DP->Configured Stations中选择SIMOTION 从站并拖曳到主站网络上如图4所示:
图4:将SIMOTION从站拖曳到网络中
弹出的窗口中将显示所有已经配置的从站,选择与主站进行通信的从站进行连接,如图5所示,点击“Connect”键连接从站。
图5:连接SIMOTION从站
点击“configuration”按钮出现从站已经配置的通信接口区,点击“Edit”键为每一条从站通信数据区配置相应主站的通信数据区,配置规则,从站输入地址区对应主站输出地址区,从站输出地址区对应主站输人地址区,配置通信接口区如图6所示:
图6:配置通信接口区
点击确认键后,配置完成。通过PROFIBUS-DP通信不需要编写通信程序,双方数据通过输入、输出地址区直接对应,例如图6配置的主站、从站通信关系如下:
S7-300主站 QB0~QB15 ――――――SIMOTION从站 IB0~IB15。
S7-300主站 IB0~IB15 ――――――SIMOTION从站 QB0~QB15。
SIMOTION作为从站的示例程序参考附带文件“PROFIBUS-DP_SLAVE”.ZIP
4.D435作为主站
设置从站
打开STEP7软件插入一个站点例如S7-300站,点击“Hardware”进入硬件配置界面,插入CPU,例如CPU315-2 DP/PN,点击X1接口新建一条PROFIBUS网络,然后设置站号、通信速率、PROFIBUS参数组(选择PROFIBUS-DP)等参数。本例中作为从站的S7-300站地址为2,通信速率为1.5M。在“Operating Mode”界面中选择“DP SLAVE”,其它参数保持缺省设置。在“Configuration”界面中设置通信接口区及开始地址,如图7所示:
图7:S7-300作为从站的通信接口设置界面
设置通信接口分别为16个字节输入和16个字节输出。
设置主站
打开SCOUT软件插入D435,点击D435使用右键进入硬件配置界面,点击X126选择与从站相同的PROFIBUS网络,设置SIMOTION的站地址,本例中作为主站的SIMOTION站地址为4。在硬件选择窗口PROFIBUS-DP->Configured Stations中选择S7-300从站并拖曳到主站网络上如图8所示:
图8:将S7-300从站拖曳到网络中
弹出的窗口中将显示所有已经配置的从站,选择与主站进行通信的从站进行连接,如图9所示,点击“Connect”键连接从站。
图9:连接S7-300从站
点击“configuration”按钮出现从站已经配置的通信接口区,点击“Edit”键为每一条从站通信数据区配置相应主站的通信数据区,配置规则,从站输入地址区对应主站输出地址区,从站输出地址区对应主站输人地址区,配置通信接口区如图10所示:
图10:配置通信接口区
点击确认键后,配置完成。通过PROFIBUS-DP通信不需要编写通信程序,双方数据通过输入、输出地址区直接对应,例如图10配置的主站、从站通信关系如下:
SIMOTION主站 QB0~QB15 ――――――S7-300从站 IB0~IB15。
SIMOTION主站 IB0~IB15 ――――――S7-300从站 QB0~QB15。
SIMOTION作为从站的示例程序参考附带文件“PROFIBUS_MASTER”.ZIP
5.PROFIBUS站点诊断
主站通过PROFIBUS-DP轮询从站,如果主站故障,与所有从站的通信将终止,从站通信数据不更新;如果一个从站故障,主站还可以与其它从站进行通信。在PLC侧可以通过OB86、FC125/FB125(可以从西门子上下载)、SFC13等组织块、程序块对主站或从站进行诊断,可以查看PLC相关文档,在这里不作相信介绍。SIMOTION使用函数“_getStateOfSingleDpSlave”或“_getStateOfAllDpSlaves”对一个站点或多个站点进行诊断。以调用函数“_getStateOfSingleDpSlave”为例介绍PROFIBUS-DP站点的诊断功能。函数调用如图11所示,函数参数如下:
图11 PROFIBUS-DP诊断函数
logicalDiagnosticAddress:
输入参数,数据类型 DINT,PROFIBUS-DP站点诊断地址,本例中S7-300PLC作为从站,诊断地址为16378。
ReqGetStateOfSingleDPSlaveStateMode:
输入参数,枚举数据类型,函数调用请求格式,枚举元素如表4所示:
表4:函数请求
REQUEST_TRUE (0) | 开始执行 |
REQUEST_FALSE (1) | 查询REQUEST_TRUE状态 |
REQUEST_ABORT (2) | 终止函数执行 |
NextCommand:
输入参数,枚举数据类型,下一个命令执行的时机,枚举元素如表5所示:
表5:NEXTCOMMAND元素
IMMEDIATELY (60) | 下一个命令与此命令同时执行 |
WHEN_COMMAND_DONE (160) | 执本命令后执行下一个命令 |
ABORT_CURRENT_COMMAND (260) | 立刻终止当前命令 |
本例中选择:“WHEN_COMMAND_DONE”。
commandid:
输入参数,“CommandIdType”数据类型,用户定义,可以跟踪命令执行的状态。本例中选择一个临时变量,没有赋值。
StructRetGetStateOfSingleDpSlave:
输出参数,结构数据类型,结构元素如表6所示:
表6:输出结构体
结构元素 | 名称 | 数据类型 |
functionResult | 函数调用返回值 | DINT |
ActualStateOfSingleDpSlave | PROFIBUS-DP单站状态 | 枚举 |
“ActualStateOfSingleDpSlave”单站状态为枚举数据类型,枚举元素如表7所示:
表7:输出站点状态
INACTIVE (0) | 从站被用户程序去使能。 |
IN_OPERATION (1) | 与从站正在进行数据交换。 |
DATA_EXCHANGE_INACTIVE (2) | 与从站没有进行数据交换。 |
NOT_PRESENT (3) | 从站丢失。 |
本例中将从站输出状态存储于全局变量RET1中,通过编程可以判断从站的状态,调试状态下可以通过“SYMBOL BROWSER”监控从站状态,如图12所示:
图12 在SYMBOL BROWSER监控从站状态。
从站诊断的示例程序参考附带文件“PROFIBUS_MASTER”.ZIP