加快启动速度
缩短 IO 设备的启动时间
启动 IO 设备所需的时间取决于各种因素,可以通过不同的方法来缩短。
通过 PROF INET 的“优先启动”(Prioritized startup) 功能,可显著缩短启动时间。为了进一步缩短启动时间,除“优先启动”功能之外,还可采取以下措施:
● 优化端口设置
● 优化端口布线
● 在用户程序中执行相应措施(仅限扩展系统)
即使不使用“优先启动”功能,以上措施也可加速 IO 设备的启动过程。但如果将“优先启动”功能与以上所有措施一同使用,最快启动速度也只能达到约 500 ms。
优先化启动是 PROFINET 功能之一,用于在支持 RT 通信的 PROFINET IO 系统中加快 IO 设备的启动速度。它可以缩短各个已组态 IO 设备实现下列情况中的循环用户数据交换所需要的时间:
● 恢复电源后
● 在站返回后
● 在激活 IO 设备后
PROFINET IO 系统中多次使用 IP 地址/ 设备名时的数据交换
为实现较快起动,在设备起动时,IO 控制器会检查对应 IP 地址设备名称的唯一性。 如果设备名或 IP 地址的分配不正确或重复分配,在 IO 控制器对错误做出响应前,可进行短时数据交换。 此时,IO 控制器可与错误的设备进行 IO 数据交换。
调试时,应确保在 PROFINET IO 系统中没有 IP 地址/ 设备名被分配多次。
对于自动化工业中自动机械装置的工具更换,可以使用“优先化启动”功能。
用于快换设备的快速启动连接IO设备.
可以在用户程序中进行某些更改以加快在运行期间替换的扩展系统的 IO 设备的启动速度。
PROFINET 的“优先化启动”功能允许 PROFINET IO 应用于已经永久更换了机器部件或工具以及 IO 设备的情况。 通过此优先化启动,重新启动的预定进程之间的等待时间(几秒钟)缩短为最小。 这加快了使用替换 IO 设备(PROFINET 的“扩展系统” 功能)的生产过程(例如在换刀器应用场合中),并能大幅提高生产能力。
PROFINET 的“优先化启动”功能可大幅提升下列应用场合的性能:在“通电”之后或站故障/站恢复之后要求 IO 设备具有快速启动时间,或者在启动 IO 设备时。
第一次启动后的优先化启动
第一次组态 IO 设备后且首次启动 PROFINET IO 系统时,总是提供 IO 设备的优先化启动性能。 即使对于备件或复位为出厂设置时,第一次启动对于各自组态的 IO 设备
而言也是一次标准启动。
具有优先化启动的 IO 设备(分布式 I/O )的数量
在一个 PROFINET IO 系统中,只能使用 PROFINET 的“优先化启动”功能启动所设的最大数量的 IO 设备。 最大数量取决于所用的 IO 控制器。
要通过更改用户程序加快启动速度,请执行以下步骤:
1. 在 OB 1 循环开始时,通过调用指令“D_ACT_DP”来激活和取消激活 IO 设备。如果更换了 IO 设备,则必须取消激活这个不再需要的设备,并激活新设备。
2. 如果通过应用程序控制 IO 设备的“打开电源”(Power ON) 命令,则近乎同时通过对应调用“D_ACT_DP”指令来开始激活 IO 设备。 为此必须对 IO 设备进行物理连接。
3. 在“D_ACT_DP”指令返回“IO 设备已激活”消息后,使用直接访问命令来访问 IO设备。
在VASS标准中我们想快速接通或关断网络设备会使用FB144来实现.
工作原理
该块采用 SFC70 创建设备的诊断地址(PN_System/Device_Nr);SFC12 要用到该地址。
如果在 SFC12 中没有需要激活或去活的任务,则读出设备的当前状态。若某个设备被去活,则将其输入到 DB852 中。
任务完成时,通过 TN_aktiviert 或 TN_deaktiviert 输出输出模块的状态。
每次 CPU 重启时,可采用 _CFG = W#16#1 对设备进行注册。
检查IO模块的起始地址:
iRETVAL_SFC70 := GEO_LOG(MASTER := PNSystem,
STATION := DeviceNr,
SLOT := INT#0,
SUBSLOT := INT#0,
LADDR := wDiagnose_Adresse
);
检查模块的起始地址
假设:模块的相关模块插槽是通过信号模块通道获知的。使用SFC 70 "GEO_LOG" (将物理地址转换成逻辑地址),可以确定模块的相关起始地址,即最小的I地址或Q地址。
若在电源模块或带压缩地址的模块(ET 200S)上使用SFC 70,则返回诊断地址。
用SFC 12 "D_ACT_DP"激活和取消激活DP从站/PROFINET IO设备:
iRETVAL_SFC12 := D_ACT_DP(REQ := xSteuerparameter,
MODE := bAuftragskennung,
LADDR := wDiagnose_Adresse,
BUSY := xAktivekennung
);
利用SFC 12 "D_ACT_DP,可以明确地取消激活及再次激活已组态的DP从站/PROFINET IO设备。此外,还可以确定当前是激活还是取消激活每个已分配的DP从站或PROFINET IO设备。
如果使用SFC 12取消激活IE/PB Link PN IO类型的网关,则连接的所有PROFIBUS DP从站也将停止运行。这些故障将被报告。
SFC 12不能用在通过DP/PA链接与DP主站系统相连的PROFIBUS PA现场设备上。
如果在实际并不存在或非当前所需的CPU中组态DP从站/PROFINET IO设备,则该CPU仍会继续以正常时间间隔访问这些DP从站/PROFINET IO设备。而在取消激活这些从站后,则其它CPU访问也将停止。使用PROFIBUS DP,有可能达到最快的DP总线周期,同时不再发生相应的错误事件。
用SFC 12取消激活DP从站/PROFINET IO设备后,其过程输出将被设置为已组态的替换值或0 (安全状态)。所分配的DP主站/PROFINET IO控制器不继续寻址该组件。DP主站/PROFINET IO控制器或CPU上的错误LED不会将取消激活的DP从站/PROFINET IO设备识别为出现故障或丢失。
而取消激活的DP从站/PROFINET IO设备输入的过程映像将用0更新,即将其作为有故障的DP从站/PROFINET IO设备处理。
如果要使用程序直接访问先前取消激活的DP从站/PROFINET IO设备的用户数据,将调用I/O访问错误OB (OB 122),并在诊断缓冲区中输入相应的启动事件。如果尝试使用SFC (即SFC 59 "RD_REC")访问取消激活的DP从站/PROFINET IO设备,则会在RET_VAL中收到一条出错信息(与访问不可用的DP从站/PROFINET IO设备相同)。
取消激活DP从站/PROFINET IO设备不会启动程序错误OB (OB 85),即使其输入或输出属于要更新的系统范围的过程映像。诊断缓冲区中不输入任何条目。
取消激活DP从站/PROFINET IO设备是否会启动导致在诊断缓冲区中输入一个条目的机架故障OB (OB 86),这取决于MODE参数。