n
1.PROFIBUS 网络介绍
现场总线PROFIBUS可以连接远程I/O站、仪表、主站(PLC站)等设备,通信服务分为DP、FDL、S7、FMS、PA(将服务类型进行转换),通信方式分为主-主、主-从通信。PROFIBUS网络分层参考表1:n
表1 PROFIBUS网络层n
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:n
图1:PROFIBUS网络结构n
西门子总线终端一般都配有终端电阻,PROFIBUS使用9针D型连接器,D型连接器插座连接总线站,D型连接器插头与总线电缆相连。总线终端和针脚定义如表2:n
表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:n
表3 PROFIBUS网络传输速率与距离的关系n
波特率(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所示:n
图2:PROFIBUS网络扩展n
西门子RS485中继器具有信号放大和再生功能,在一条PROFIBUS总线上最多可以安装9个RS485中继器,其他厂商的产品要查看其产品规范以确定安装个数。
一个PROFIBUS网段最多可有32个站点,如果一条PROFIBUS网上超过32个站点,也需要用RS485中继器隔开,例如一条PROFIBUS总线上有80个站点,那么就需要两个RS485中继器分成3个网段。RS485中继器是一个有源的网络元件 ,本身也要算一个站点。除了以上两个功能,RS485中继器的还可以使网段之间相互电气隔离。n
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个字节输出,分别介绍作为主站、从站的配置。n
3.D435作为从站
设置从站
打开SCOUT软件插入D435,点击D435使用右键进入硬件配置界面,点击X126接口新建一条PROFIBUS网络,然后设置站号、通信速率、PROFIBUS参数组(选择PROFIBUS-DP)等参数。本例中作为从站的SIMOTION站地址为2,通信速率为1.5M。在“Operating Mode”界面中选择“DP SLAVE”,其它参数保持缺省设置。在“Configuration”界面中设置通信接口区及开始地址,如图3所示:n
图3:SIMOTION作为从站的通信接口设置界面n
设置通信接口分别为16个字节输入和16个字节输出。n
设置主站
在STEP7中打开与SIMOTION D435相同的项目,插入S7-300站,打开硬件配置,插入CPU例如CPU315-DP/PN,设置与SIMOTION 435使用相同的PROFIBUS网络,设置主站地址为4。在硬件选择窗口PROFIBUS-DP->Configured Stations中选择SIMOTION 从站并拖曳到主站网络上如图4所示:n
图4:将SIMOTION从站拖曳到网络中n
弹出的窗口中将显示所有已经配置的从站,选择与主站进行通信的从站进行连接,如图5所示,点击“Coect”键连接从站。n
图5:连接SIMOTION从站n
点击“configuration”按钮出现从站已经配置的通信接口区,点击“Edit”键为每一条从站通信数据区配置相应主站的通信数据区,配置规则,从站输入地址区对应主站输出地址区,从站输出地址区对应主站输人地址区,配置通信接口区如图6所示:n
图6:配置通信接口区n
点击确认键后,配置完成。通过PROFIBUS-DP通信不需要编写通信程序,双方数据通过输入、输出地址区直接对应,例如图6配置的主站、从站通信关系如下:
S7-300主站 QB0~QB15 ――――――SIMOTION从站 IB0~IB15。
S7-300主站 IB0~IB15 ――――――SIMOTION从站 QB0~QB15。
SIMOTION作为从站的示例程序参考附带文件“PROFIBUS-DP_SLAVE”.ZIPn
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所示:n
图7:S7-300作为从站的通信接口设置界面n
设置通信接口分别为16个字节输入和16个字节输出。n
设置主站
打开SCOUT软件插入D435,点击D435使用右键进入硬件配置界面,点击X126选择与从站相同的PROFIBUS网络,设置SIMOTION的站地址,本例中作为主站的SIMOTION站地址为4。在硬件选择窗口PROFIBUS-DP->Configured Stations中选择S7-300从站并拖曳到主站网络上如图8所示:n
图8:将S7-300从站拖曳到网络中n
弹出的窗口中将显示所有已经配置的从站,选择与主站进行通信的从站进行连接,如图9所示,点击“Coect”键连接从站。n
图9:连接S7-300从站n
点击“configuration”按钮出现从站已经配置的通信接口区,点击“Edit”键为每一条从站通信数据区配置相应主站的通信数据区,配置规则,从站输入地址区对应主站输出地址区,从站输出地址区对应主站输人地址区,配置通信接口区如图10所示:n
图10:配置通信接口区n
点击确认键后,配置完成。通过PROFIBUS-DP通信不需要编写通信程序,双方数据通过输入、输出地址区直接对应,例如图10配置的主站、从站通信关系如下:
SIMOTION主站 QB0~QB15 ――――――S7-300从站 IB0~IB15。
SIMOTION主站 IB0~IB15 ――――――S7-300从站 QB0~QB15。
SIMOTION作为从站的示例程序参考附带文件“PROFIBUS_MASTER”.ZIPn
5.PROFIBUS站点诊断
主站通过PROFIBUS-DP轮询从站,如果主站故障,与所有从站的通信将终止,从站通信数据不更新;如果一个从站故障,主站还可以与其它从站进行通信。在PLC侧可以通过OB86、FC125/FB125(可以从西门子网站上下载)、SFC13等组织块、程序块对主站或从站进行诊断,可以查看PLC相关文档,在这里不作相信介绍。SIMOTION使用函数“_getStateOfSingleDpSlave”或“_getStateOfAllDpSlaves”对一个站点或多个站点进行诊断。以调用函数“_getStateOfSingleDpSlave”为例介绍PROFIBUS-DP站点的诊断功能。函数调用如图11所示,函数参数如下:n
图11 PROFIBUS-DP诊断函数n
logicalDiagnosticAddress:
输入参数,数据类型 DINT,PROFIBUS-DP站点诊断地址,本例中S7-300PLC作为从站,诊断地址为16378。n
ReqGetStateOfSingleDPSlaveStateMode:
输入参数,枚举数据类型,函数调用请求格式,枚举元素如表4所示:n
表4:函数请求n
REQUEST_TRUE (0) | 开始执行 |
REQUEST_FALSE (1) | 查询REQUEST_TRUE状态 |
REQUEST_ABORT (2) | 终止函数执行 |
NextCommand:
输入参数,枚举数据类型,下一个命令执行的时机,枚举元素如表5所示:n
表5:NEXTCOMMAND元素n
IMMEDIATELY (60) | 下一个命令与此命令同时执行 |
WHEN_COMMAND_DONE (160) | 执本命令后执行下一个命令 |
ABORT_CURRENT_COMMAND (260) | 立刻终止当前命令 |
本例中选择:“WHEN_COMMAND_DONE”。n
commandid:
输入参数,“CommandIdType”数据类型,用户定义,可以跟踪命令执行的状态。本例中选择一个临时变量,没有赋值。n
StructRetGetStateOfSingleDpSlave:
输出参数,结构数据类型,结构元素如表6所示:n
表6:输出结构体
结构元素 | 名称 | 数据类型 |
functionResult | 函数调用返回值 | DINT |
ActualStateOfSingleDpSlave | PROFIBUS-DP单站状态 | 枚举 |
“ActualStateOfSingleDpSlave”单站状态为枚举数据类型,枚举元素如表7所示:n
表7:输出站点状态
INACTIVE (0) | 从站被用户程序去使能。 |
IN_OPERATION (1) | 与从站正在进行数据交换。 |
DATA_EXCHANGE_INACTIVE (2) | 与从站没有进行数据交换。 |
NOT_PRESENT (3) | 从站丢失。 |
本例中将从站输出状态存储于全局变量RET1中,通过编程可以判断从站的状态,调试状态下可以通过“SYMBOL BROWSER”监控从站状态,如图12所示:
图12 在SYMBOL BROWSER监控从站状态。
从站诊断的示例程序参考附带文件“PROFIBUS_MASTER”.ZIP
关键词
SIMOTION PROFIBUS-DP 通信
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc328156.html