您现在的位置是:首页 > PLC技术 > PLC技术

PROFIBUS的FDL通信方式

来源:艾特贸易2017-06-05

简介1 . FDL 通信简介 FDL 是 PROFIBUS 的第 2 层数据链路层 (Fieldbus Data Layer) 的缩写,它可以提供高等级的传输安全保证,能有效地检测出错位、双向数据传输,发送方和接收方可以同时触发发

    1FDL通信简介    FDLPROFIBUS的第2层——数据链路层(Fieldbus Data Layer)的缩写,它可以提供高等级的传输安全保证,能有效地检测出错位、双向数据传输,发送方和接收方可以同时触发发送和接收响应。    FDL实现PROFIBUS主站和主站之间的通信。在PROFIBUS-DP通信中,具有令牌功能的PROFIBUS-DP主站轮循无令牌功能的从站从而进行数据交换。与此不同,PROFIBUS FDL的每一个通信站点都具有令牌功能,通信以令牌环的方式进行数据交换,每一个FDL站点都可以和多个站点建立通信连接。FDL允许发送和接收最大240B的数据。    2.支持FDL通信的通信处理器    只有PROFIBUS通信处理器支持FDL的数据传输,例如S7系统有CP342-5CP343.5用于S7 -300。上位机可以使用PROFIBUS网卡,如CP5512/CP5611/CP5613等。S7 -200不支持FDL通信。FDL的数据传输通过通信处理器来完成,每一个通信处理器可以同时与多个主站建立通信连接,大多数通信处理器的最大连接数为16个。    3FDL通信的实现    主站和主站的FDL通信是通过调用发送和接收功能块实现的,通信的双方一方调用功能块发送数据,另一方必须调用功能块接收数据。FDL可以实现SDA(发送数据确认)、SDN(发送数据无确认)、自由第2层、多点通信和广播通信功能。使用FDL通信只需要掌握两点就可以灵活应用:一是PROFIBUS站地址;二是LSAP(连接服务访问点)用于通信处理器的发送和接收。    4FDL通信的网络连接实例    (1)网络组态和参数设置。在STEP7中建立项目DP_Test_02,加入两个S7 -300站并命名为STATION1STATION2,在硬件组态部分加入相应的模块,新建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侧也自动生成了一个与之相匹配的连接。如果在实际的系统中有多个站之间的通信则需要建立多个连接。
将CP342-5的操作模式设置为无DP
    8-14    CP342-5的操作模式设置为无DP
单击网络组态按钮    8-15    单击网络组态按钮
在网络组态中建立新连接
    8-16    在网络组态中建立新连接
设置为FDL连接
    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-21STATION1STATION2分别向对方发送20B数据的程序。在程序中可以根据状态字来判断通信和连接的状态。块中的IDLADDR就是连接属性中的相应值。    (3)故障诊断。在通信过程中如果出现问题,可以通过CP模块的诊断功能来进行诊断。在CP模块的属性对话框中,选择“诊断”标签页,点击“运行”按钮,启动诊断功能。    如果通信发生故障,可以从以下几点考虑进行诊断:    1)连线:在CP模块的诊断画面中可以读出网络上的所有站点,如果没有读出所有的站点,说明网线有问题或PROFIBUS接口有问题。    2)连接的建立:所建立的连接是否正确、是否已下载,可以在诊断画面中查看连接的状态。    3)编程:调用的FC块是否正确,FC块参数是否与组态的连接匹配,接收的数据区是否存在。利用CP模块的诊断功能可以读出发送和接收的报文包数,同时也可以监控报文发送成功和失败的包数。    4)通过查看相应FC块的错误位和状态字可以帮助我们判断通信和连接的状态。