您现在的位置是:首页 > PLC技术 > PLC技术
PROFIBUS的FDL通信方式
来源:艾特贸易2017-06-05
简介1 . FDL 通信简介 FDL 是 PROFIBUS 的第 2 层数据链路层 (Fieldbus Data Layer) 的缩写,它可以提供高等级的传输安全保证,能有效地检测出错位、双向数据传输,发送方和接收方可以同时触发发
1.FDL通信简介 FDL是PROFIBUS的第2层——数据链路层(Fieldbus Data Layer)的缩写,它可以提供高等级的传输安全保证,能有效地检测出错位、双向数据传输,发送方和接收方可以同时触发发送和接收响应。 FDL实现PROFIBUS主站和主站之间的通信。在PROFIBUS-DP通信中,具有令牌功能的PROFIBUS-DP主站轮循无令牌功能的从站从而进行数据交换。与此不同,PROFIBUS FDL的每一个通信站点都具有令牌功能,通信以令牌环的方式进行数据交换,每一个FDL站点都可以和多个站点建立通信连接。FDL允许发送和接收最大240B的数据。 2.支持FDL通信的通信处理器 只有PROFIBUS通信处理器支持FDL的数据传输,例如S7系统有CP342-5、CP343.5用于S7 -300。上位机可以使用PROFIBUS网卡,如CP5512/CP5611/CP5613等。S7 -200不支持FDL通信。FDL的数据传输通过通信处理器来完成,每一个通信处理器可以同时与多个主站建立通信连接,大多数通信处理器的最大连接数为16个。 3.FDL通信的实现 主站和主站的FDL通信是通过调用发送和接收功能块实现的,通信的双方一方调用功能块发送数据,另一方必须调用功能块接收数据。FDL可以实现SDA(发送数据确认)、SDN(发送数据无确认)、自由第2层、多点通信和广播通信功能。使用FDL通信只需要掌握两点就可以灵活应用:一是PROFIBUS站地址;二是LSAP(连接服务访问点)用于通信处理器的发送和接收。 4.FDL通信的网络连接实例 (1)网络组态和参数设置。在STEP7中建立项目DP_Test_02,加入两个S7 -300站并命名为STATION1和STATION2,在硬件组态部分加入相应的模块,新建PROFIBUS-DP子网,为了使通信不产生干扰,将CP342-5的网络操作模式设置为无DP(如图8-14所示)。 在STEP7界面上点击“网络组态”按钮,进入“NetPro”界面进行网络设置,如图8-15所示。 在“NetPro”中,为PLC配置连接属性。选中窗口中的STATION1,在下方的窗口中会出现一个空白的连接表,双击连接表的空白处建立一个新的连接,如图8 -16所示。 在弹出的“插入新连接”对话框中,将“连接伙伴”中的连接对象设为对方的CPU( S7-300 CPU),将连接方式设为“FDL连接”,如图8-17所示。 这样,在STATION1一侧建立了一个与STATION2的连接,同时,在STATION2侧也自动生成了一个与之相匹配的连接。如果在实际的系统中有多个站之间的通信则需要建立多个连接。 图8-14 将CP342-5的操作模式设置为无DP
图8-15 单击网络组态按钮
图8-16 在网络组态中建立新连接
图8-17 设置为FDL连接 建立好连接后就会自动打开连接的属性窗口,在“常规信息”标签页中的“块参数”处有两个参数:标识和LADDR,这是在后面编写通信程序时使用的参数,如图8-18所示。
图8-18 通信参数 组态好的连接表如图8 -19所示。
图8-19 组态好的连接表
图8-20 发送程序
图8-21 接收程序 (2)编程。要实现FDL的数据传输,需要调用特殊功能块:FC5 AG_SEND(用于发送)和FC6 AG_RECV(用于接收)。 由于OB1的循环周期较短,而OB35的循环周期为100ms(默认值,可以修改),所以通常在OB1中调用接收块FC6,在OB35中调用发送块FC5。图8-20和图8-21是STATION1和STATION2分别向对方发送20B数据的程序。在程序中可以根据状态字来判断通信和连接的状态。块中的ID和LADDR就是连接属性中的相应值。 (3)故障诊断。在通信过程中如果出现问题,可以通过CP模块的诊断功能来进行诊断。在CP模块的属性对话框中,选择“诊断”标签页,点击“运行”按钮,启动诊断功能。 如果通信发生故障,可以从以下几点考虑进行诊断: 1)连线:在CP模块的诊断画面中可以读出网络上的所有站点,如果没有读出所有的站点,说明网线有问题或PROFIBUS接口有问题。 2)连接的建立:所建立的连接是否正确、是否已下载,可以在诊断画面中查看连接的状态。 3)编程:调用的FC块是否正确,FC块参数是否与组态的连接匹配,接收的数据区是否存在。利用CP模块的诊断功能可以读出发送和接收的报文包数,同时也可以监控报文发送成功和失败的包数。 4)通过查看相应FC块的错误位和状态字可以帮助我们判断通信和连接的状态。
点击排行
