该块采用 SFC70 创建设备的诊断地址(PN_System/Device_Nr);SFC12 要用到该地址。
如果在 SFC12 中没有需要激活或去活的任务,则读出设备的当前状态。若某个设备被去活,则将其输入到 DB852 中。 任务完成时,通过 TN_aktiviert 或 TN_deaktiviert 输出输出模块的状态。
每次CPU 重启时,可采用 _CFG = W#16#1 对设备进行注册。
iRETVAL_SFC70 := GEO_LOG(MASTER := PNSystem,
STATION := DeviceNr,
SLOT := INT#0,
SUBSLOT := INT#0,
LADDR := wDiagnose_Adresse
);
SCF70 检查模块的起始地址
使用SFC 70 "GEO_LOG" (将物理地址转换成逻辑地址),可以确定模块的相关起始地址,即最小的I地址或Q地址。
若在电源模块或带压缩地址的模块(ET 200S)上使用SFC70,则返回诊断地址。
iRETVAL_SFC12 := D_ACT_DP(REQ := xSteuerparameter,
MODE := bAuftragskennung,
LADDR := wDiagnose_Adresse,
BUSY := xAktivekennung
);
用SFC12 "D_ACT_DP"激活和取消激活DP从站/PROFINETIO设备
利用SFC12 "D_ACT_DP,可以明确地取消激活及再次激活已组态的DP从站/PROFINETIO设备。此外,还可以确定当前是激活还是取消激活每个已分配的DP从站或PROFINETIO设备。
如果使用SFC 12取消激活IE/PBLink PN IO类型的网关,则连接的所有PROFIBUS DP从站也将停止运行。这些故障将被报告。
SFC 12不能用在通过DP/PA链接与DP主站系统相连的PROFIBUSPA现场设备上。
如果在实际并不存在或非当前所需的CPU中组态DP从站/PROFINETIO设备,则该CPU仍会继续以正常时间间隔访问这些DP从站/PROFINET IO设备。而在取消激活这些从站后,则其它CPU访问也将停止。使用PROFIBUS DP,有可能达到最快的DP总线周期,同时不再发生相应的错误事件。
用SFC12取消激活DP从站/PROFINETIO设备后,其过程输出将被设置为已组态的替换值或0 (安全状态)。所分配的DP主站/PROFINET IO控制器不继续寻址该组件。DP主站/PROFINETIO控制器或CPU上的错误LED不会将取消激活的DP从站/PROFINETIO设备识别为出现故障或丢失。
而取消激活的DP从站/PROFINET IO设备输入的过程映像将用0更新,即将其作为有故障的DP从站/PROFINETIO设备处理。
如果要使用程序直接访问先前取消激活的DP从站/PROFINETIO设备的用户数据,将调用I/O访问错误OB(OB 122),并在诊断缓冲区中输入相应的启动事件。如果尝试使用SFC (即SFC59 "RD_REC")访问取消激活的DP从站
/PROFINET IO设备,则会在RET_VAL中收到一条出错信息(与访问不可用的DP从站/PROFINET IO设备相同)。
取消激活DP从站/PROFINETIO设备不会启动程序错误OB (OB 85),即使其输入或输出属于要更新的系统范围的过程映像。诊断缓冲区中不输入任何条目。
取消激活DP从站/PROFINET IO设备是否会启动导致在诊断缓冲区中输入一个条目的机架故障OB (OB 86),这取决于MODE参数
责任编辑:lq
全部0条评论
快来发表一下你的评论吧 !