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
|