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

S7-300/400 PLC的事件驱动的全局数据通信

来源:艾特贸易2017-12-20

简介使用 SFC 60 “ GD_SEND ”和 SFC 61 “ GD_RCV ”, S7 - 400 之间可以用事件驱动的方式发送和接收 GD 包,实现全局数据通信。应在全局数据表中组态用事件驱动方式发送的 GD 包,并将该 GD 包的

    使用SFC 60GD_SEND”和SFC 61GD_RCV”,S7 - 400之间可以用事件驱动的方式发送和接收GD包,实现全局数据通信。应在全局数据表中组态用事件驱动方式发送的GD包,并将该GD包的扫描速率设置为0

    SIMATIC管理器中新建一个项目,项目名称为“MPI_GD_B”。首先在SIMATIC管理器中生成两个站,它们的CPU均为CPU 413 -2DPMPI站地址分别为23,将它们连接到MPI网络上。为两个站点生成数据块DB 1DB 2和组织块OB100OB35OB87,在各数据块中生成一个数组。

    打开网络组态工具NetPro,用鼠标右键点击MPI网络线,执行弹出的快捷菜单中的“定义全局数据”命令。用出现的GD表(见图9-8)对全局数据通信组态,将双方的ID0发送到对方的QD0。将双方的DB 1中的54B数据发送到对方的DB 2

    为了实现事件驱动的全局数据通信,将全局数据包GD2.1的扫描速率(SR2.1)设置为0

   SFC 60SFC 61可以在用户程序中的任何一点被调用,全局数据表中设置的扫描速率不受调用SFC 60SFC 61的影响。

   SFC 60SFC 61可能被更高优先级的块中断。为了保证全局数据交换的连续性,在调用SFC 60之前,调用SFC 41DIS_AIRT”,来延迟处理更高优先级的中断和异步错误。执行完SFC 60后,调用SFC 42EN_AIRT”,允许处理高优先级的中断和异步错误。

全局数据表

    9-8    全局数据表

    下面是2号站的CPU 413-2DP081中的程序,调用SFC 60发送数据包GD2.1

    程序段1:延迟处理高中断优先级的中断和异步错误

   CALLDIS_AIRT    //调用SFC 41

   RET_VAL    =MW100    //返回的错误信息

    程序段2:发送全局数据包GD2.1

   A    I    0.0

   FP    M    1.0

   JCN    _001    //不是I0.0的上升沿则跳转

   CALL    GD_SND    //调用SFC 60

   CIRCLE_ID=B#16#2    //组态时设置的GD环编号

   BLOCK_ID    =B#16#1    //组态时设置的GD包编号

   RET_VAL    =MW102    //返回的错误信息

   -001  NOP 0

    程序段3:允许处理高中断优先级的中断和异步错误

   CALL    EN_AIRT    //调用SFC 42

   RET_VAL    =MW104    //返回的错误信息

    下面是3号站的081调用SFC 61接收数据包GD2.1的程序:

   CALLGD_RCV    //调用SFC 61

   CIRCLE_ID  =B#16#2    //组态时设置的GD环编号

   BLOCK_ID  =B#16#1    //组态时设置的GD包编号

   RET_VAL    =MW106    //返回的错误信息

    CPUOB100中,分别将DB 1中的发送区预置为16#413116#4132,将DB 2中的数据接收区清零。在OB35中,每100 ms将要发送的第一个字DB1.DBW01

    将组态信息和程序分别下载到各CPU,然后用PROFIBUS电缆连接编程用的计算机和两台PLCMPI接口。将两台CPU切换到RUN模式,CPU之间开始自动地交换全局数据。

    9-9~9-11是系统运行时复制的各站点的变量表。进入RUN模式后,通信双方开始周期性地将ID0传送给对方的QD03号站周期性地将DB 1中的数据传送到2号站的DB 2

2号站的变量表

    9-9    2号站的变量表

刚开始进入RUN模式的3号站变量表

    9-10    刚开始进入RUN模式的3号站变量表

事件触发数据发送后的3号站变量表

    9-11    事件触发数据发送后的3号站变量表

    3号站的DB 2的前54 B数据被OB100初始化为0。在2号站的I0.0的上升沿调用SFC 60,将2号站的DB 1中的数据传送到3号站的DB 2

    9-10和图9-11I0.0第一个上升沿触发数据发送之前和触发发送之后的3号站的变量表。2号站的DB 1的前54B的数据字被OB100初始化为16#4131OB35DB1DBW0不断加1。在每次I0.0的上升沿,2号站的DB 1中的数据被发送给3号站的DB 23号站的DB2DBW0的值才会变化。

(部分原创文章应编辑稿费需求,每篇需要收取2元的稿费,如需查看全文请联系客服索取,谢谢理解!在线客服:艾特贸易网客服为您服务