FB144 – FB_Docken 用于注册和注销 ProfiNet 设备。该块通常采用专用背景数据块进行访问。
用SFC12 "D_ACT_DP"激活和取消激活DP从站/PROFINETIO设备
在FB144中用于开关ProfINET站的使用。
SFC12 – D_ACT_DP
SFC70 – GEO_LOG
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设备
当使用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操作系统对 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;
审核编辑:刘清
全部0条评论
快来发表一下你的评论吧 !