百色西门子一级代理商
在这种方式下无法实现PROFIBUS DP和PROFINET IO的并行通讯,因此为了实现其并行通讯,需要按如下方式设置:
? P8839[0]=1和P8839[1]=2:PROFIBUS DP 用于同步,PROFINET IO用于周期性通讯
? P8839[0]=2和P8839[1]=1:PROFINET IO用于同步,PROFIBUS DP用于周期性通讯(本例中的设置)
两个周期性通讯接口IF1和IF2的特性如上表所示:
注意:IF2不支持TM41,TM15,TM17,TM/TB,CU与CPU之间的通讯。
五、通过PROFIBUS DP或PROFINET IO总线来实现过程数据的传输
S7-300/400PLC通过PROFINET IO或PROFIBUS DP周期性通讯方式将控制字1(CTW1)和主设定值(NSETP_B)发送至驱动器。
(1) 控制字中Bit0做电机的起、停控制。
(2) 主设定值为速度设定值,参数P2000中的值为频率设定值和实际值的参考频率, 对应4000H(十六进制),发送的高频率(大值)为7FFFH(200%)。
(3) 当组态的报文结构 PZD=2或自由报文999时,在S7-300/400 中可用“MOVE" 指令进行数据传送;当组态的报文结构PZD >2,在S7-300/400 中需调用SFC14和SFC15系统功能块。
? SFC14(“DPRD_DAT")用于读驱动装置的过程数据。
? SFC15(“DPWR_DAT")用于将过程数据写入驱动装置。
例子(PROFINET IO):SERVO_02 控制字、主设定值的发送及状态字、实际频率的读取程序见图11。
图11
通过读取Servo_02的参数r2050和P2051可以判断数据是否传输成功。
图12
例子(PROFIBUS DP):SERVO_02 "控制字、主设定值的发送及状态字、实际频率的读取程序见图13。
图13
通过读取Servo_02的参数r8850和P8051可以判断数据是否传输成功。
图14
注意通过通讯接口IF1和IF2可以同时实现CPU与Servo_02的数据传输
六、驱动器参数的读取及写入
1.扩展PROFIDRIVE功能(DPV1)
非周期性数据传送模式允许:
? 交换大量的用户数据
? 用DPV1的功能 READ 和 WRITE可以实现非周期性数据交换。传输数据块的内容应遵照 PROFIdrive参数通道(DPV1)数据集DS47(非周期参数通道结构)。
2. 参数请求及参数应答的结构
参数请求包括三部分:请求标题、参数地址及参数值。
表1.参数请求格式
表2.参数应答格式
表3.参数请求及应答描述
表4.在DPV1参数应答中的错误值描述
3. S7-300/400PLC通过PROFINET IO非周期性通讯方式读取驱动器参数。
请注意:PLC读取驱动器参数时必须使用两个功能块SFB52 / SFB53
举例如下:
(1) 使用标志位M0.0及功能块SFB53将读请求(数据集RECORD DB11)(图16)发送至驱动器。
将M0.0设定为数值1启动读请求,当读请求完成后必须将该请求置0,结束该请求。ERROR = 1: 表示执行此功能块时有错误产生,而STATUS 指示功能块执行状态或错误信息 。
(2) 使用标志位M1.0及功能块SFB52读取参数的请求响应(响应块DB22)(参见图17) 。
将M1.0设定为数值1读取参数请求响应,完成后必须将该位置0,结束该请求。ERROR = 1: 表示执行此功能块时有错误产生,而STATUS 指示功能块执行状态或错误信息 。
图15 PROFINET IO读参数请求
图16 PROFINET IO读参数响应
图17 PROFINET IO读参数变量表
4. S7-300/400PLC通过PROFINET IO非周期性通讯方式修改驱动器参数P1216。
举例如下:
PLC写参数时只需使用SFB53,在本项目的Network 2中发送写请求DB33 (参见图19) 到驱动器; PLC读“写参数"响应时需使用SFB52,在本项目中读取驱动器返回的参数值数据块为DB22 (参见图20) 。
(1) 将M0.2设定为数值1启动写请求,当写请求完成后必须将该请求置0,结束该请求。ERROR = 1: 表示执行此功能块时有错误产生,而STATUS 指示功能块执行状态或错误信息 。
(2) 将M1.0设定为数值1读请求,完成后必须将该请求置0,结束该请求。ERROR = 1: 表示执行此功能块时有错误产生,而STATUS 指示功能块执行状态或错误信息