STEP7中SFC 12功能块的应用

描述

FB144 – FB_Docken 用于注册和注销 ProfiNet 设备。该块通常采用专用背景数据块进行访问。 

cpu

cpu cpu
cpu  

用SFC12 "D_ACT_DP"激活和取消激活DP从站/PROFINETIO设备

在FB144中用于开关ProfINET站的使用。

cpu  

SFC12 – D_ACT_DP   

SFC70 – GEO_LOG 

cpucpucpu

cpu

MODE:    

0: 是激活还是取消激活已寻址组件的请求信息.

1: 激活DP从站/PROFINET IO设备

2: 取消激活DP从站/PROFINET IO设备

3: 激活DP从站/PROFINET IO设备,并在激活状态改变后调用OB 86。

4: 取消激活DP从站/PROFINET IO设备,并在激活状态改变后调用OB 86。

取消激活DP从站/PROFINET IO设备

cpu

 cpu
cpu
cpu

cpu

当使用SFC 12重新激活DP从站/PROFINET IO设备时,该组件由指定的DP主站/PROFINET IO控制器进行组态和分配参数(作为有故障的DP站/PROFINET IO站的返回)。组件能够传送用户数据时,激活操作便完成。

激活DP从站/PROFINET IO设备不启动程序错误OB (OB85),即使其输入或输出属于要更新的系统范围的过程映像。并且不会向诊断缓冲区输入条目。

激活DP从站/PROFINET IO设备是否会启动导致在诊断缓冲区中输入一个条目的机架故障OB (OB 86),这取决于MODE参数。

接网:

 cpu  

CPU启动 

根据启动模式的不同,CPU操作系统对 DP从站/PROFINET IO 设备的作用如下: 

•  在冷启动和暖启动模式下,从站/设备被自动激活。 

•  在热启动模式下,从站/设备的激活状态保持不变,即已激活的从站/设备保持已激活状态,取消激活的从站/设备保持取消激活状态。 

CPU启动之后,将定期尝试联系所有已组态但未取消激活的从站/设备,这些从站或者不存在或者未响应。     

    wRETVAL_SFC12 := INT_TO_WORD(iRETVAL_SFC12);

    IF wRETVAL_SFC12    = WORD#16#0 THEN //作业已完成

RETVAL_SFC12:=0000  作业已完成且没有错误。 

        xInterneFreigabeAktive      := FALSE;

        xInterneFreigabeDeaktive    := FALSE;

    ELSIF wRETVAL_SFC12 = WORD#16#1 THEN // 参与者已启用

iRETVAL_SFC12:=0001 DP从站/PROFINET IO 设备已激活。(仅当MODE = 0 时才可能出现此错误代码。) 

        xInterneFreigabeAktive      := FALSE;

        TN_deaktiviert              := FALSE;

        xInterneFreigabeDeaktive    := TRUE;

        TN_aktiviert                := TRUE;

        dwVisuWerte1.Status         := BYTE#1; // 按钮标签“取消锁定TN”显示“参与者不活动”

        Auftrag_laeuft              := FALSE;

        xAnfAktivierung             := FALSE;

        xAnfDeaktivierung           := FALSE;  

    ELSIF wRETVAL_SFC12 = WORD#16#2 THEN // 参与者已禁用

RETVAL_SFC12:=0002DP从站/PROFINET IO 设备已被取消激活(仅当MODE = 0 时才可能出现此错误=代码)

        xInterneFreigabeDeaktive    := FALSE;

        TN_aktiviert                := FALSE;   

        xInterneFreigabeAktive      := TRUE;

        TN_deaktiviert              := TRUE;

        dwVisuWerte1.Status         := BYTE#2; // 按钮标签“TN停靠”显示“参与者活动”

        Auftrag_laeuft              := FALSE;

        xAnfDeaktivierung           := FALSE;  

        xAnfAktivierung             := FALSE;

    END_IF;

cpu







审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分