SIMOTION PROFIBUSDP通信入门.docx
《SIMOTION PROFIBUSDP通信入门.docx》由会员分享,可在线阅读,更多相关《SIMOTION PROFIBUSDP通信入门.docx(11页珍藏版)》请在冰点文库上搜索。
SIMOTIONPROFIBUSDP通信入门
1.PROFIBUS网络介绍
现场总线PROFIBUS可以连接远程I/O站、仪表、主站(PLC站)等设备,通信服务分为DP、FDL、S7、FMS、PA(将服务类型进行转换),通信方式分为主-主、主-从通信。
PROFIBUS网络分层参考表1:
表1PROFIBUS网络层
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总线符合EIARS485[8]标准,PROFIBUSRS485的传输程序是以半双工、异步、无间隙同步为基础的。
传输介质可以是光缆或屏蔽双绞线,电气传输每一个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:
表3PROFIBUS网络传输速率与距离的关系
波特率(KBit/s)
9.6~187.5
500
1500
3000~12000
总线长度(米)
1000
400
200
100
总线终端的电阻与PROFIBUS总线相匹配,并配有轴向电感以消除电容性负载而引起的导线反射,选择普通的屏蔽双绞线不能保证总线的段长度。
如果需要扩展总线的长度或者PROFIBUS从站个数超过32个时,就要加入RS485中继器,例如扩展PROFIBUS长度的应用,实际PROFIBUS的长度为500米,而波特率要求达到1.5MBIT/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可以作为主站也可以作为从站。
下面以SIMOTION435为例,通信区为16个字节输入和16个字节输出,分别介绍作为主站、从站的配置。
3.D435作为从站
设置从站
打开SCOUT软件插入D435,点击D435使用右键进入硬件配置界面,点击X126接口新建一条PROFIBUS网络,然后设置站号、通信速率、PROFIBUS参数组(选择PROFIBUS-DP)等参数。
本例中作为从站的SIMOTION站地址为2,通信速率为1.5M。
在“OperatingMode”界面中选择“DPSLAVE”,其它参数保持缺省设置。
在“Configuration”界面中设置通信接口区及开始地址,如图3所示:
图3:
SIMOTION作为从站的通信接口设置界面
设置通信接口分别为16个字节输入和16个字节输出。
设置主站
在STEP7中打开与SIMOTIOND435相同的项目,插入S7-300站,打开硬件配置,插入CPU例如CPU315-DP/PN,设置与SIMOTION435使用相同的PROFIBUS网络,设置主站地址为4。
在硬件选择窗口PROFIBUS-DP->ConfiguredStations中选择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-2DP/PN,点击X1接口新建一条PROFIBUS网络,然后设置站号、通信速率、PROFIBUS参数组(选择PROFIBUS-DP)等参数。
本例中作为从站的S7-300站地址为2,通信速率为1.5M。
在“OperatingMode”界面中选择“DPSLAVE”,其它参数保持缺省设置。
在“Configuration”界面中设置通信接口区及开始地址,如图7所示:
图7:
S7-300作为从站的通信接口设置界面
设置通信接口分别为16个字节输入和16个字节输出。
设置主站
打开SCOUT软件插入D435,点击D435使用右键进入硬件配置界面,点击X126选择与从站相同的PROFIBUS网络,设置SIMOTION的站地址,本例中作为主站的SIMOTION站地址为4。
在硬件选择窗口PROFIBUS-DP->ConfiguredStations中选择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所示,函数参数如下:
图11PROFIBUS-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中,通过编程可以判断从站的状态,调试状态下可以通过“SYMBOLBROWSER”监控从站状态,如图12所示:
图12在SYMBOLBROWSER监控从站状态。
从站诊断的示例程序参考附带文件“PROFIBUS_MASTER”.ZIP