1.SFC 12的功能
使用SFC 12“D_ACT_DP”,可以禁止已组态,但是在PLC启动时并不存在或当前并不需要或有故障的DP从站和PROFINETIO设备。可以在需要时用SFC 12来激活它们,还可以查询它们当前处于激活状态还是处于禁止状态。
某些设备有大量的选件可供使用,但是机器制造厂商交付的具体的设备仅仅是选定组件的组合。例如,机床可以使用大量的加工选件,但是实际上经常用到的仅仅是其中的一小部分。制造商将这些可能的机器选件组态为DP从站或PROFINETIO设备,以便创建包含所有可能的选件的通用用户程序。这些选件在STEP 7项目中作为DP从站或PROFINETIO设备出现。使用SFC 12,用户程序可以激活当前需要的选件,禁止那些当前不需要的选件。
如果系统中有已经组态,但是并不存在或不是当前所需的DP从站或PROFINETIO设备,CPU仍然会不断地访问这些DP从站或PROFINET IO设备。如果禁止这些从站或IO设备,CPU将停止访问它们,这样可以缩短DP总线周期。如果用SFC 12禁止了IE/PBLinkPNIO,所有从属的PROFINETIO设备也将停止运行,这一事件将被报告。
SFC 12不能用于通过DP/PA链接器连接到DP主站系统的PROFIBUS-PA现场设备。SFC12以异步方式运行,它通过多次SFC调用来执行。输入参数REQ为1时执行激活或禁止操作。
2.禁止DP从站或PROFINETIO设备
用SFC 12禁止DP从站或PROFINET IO设备后,其过程输出将被设置为组态的替换值或0(安全状态)。相应的DP主站将不再访问这个DP从站。DP主站、PROFINET IO控制器或CPU上的错误LED不会因为禁止操作显示错误信息。被禁止的DP从站或PROFINET IO设备输入的过程映像将用0更新,即将其作为有故障的DP从站或PROFINET IO设备处理。
如果用程序直接访问被禁止的DP从站或PROFINET IO设备的用户数据,CPU将自动调用I/O访问错误OB(OB122),并在诊断缓冲区中输入相应的启动事件。如果用SFC 59RD_REC”访问禁止的DP从站或PROFINET IO设备,与访问不可用的DP从站或PROFINET IO设备相同,SFC的RET_VAL将提供出错信息。
禁止DP从站或PROFINET IO设备时不会启动OB85、OB86,操作系统也不会向诊断缓冲区输入条目。如果用SFC 12禁止DP从站或PROFINET IO设备,则当它们出现故障时,操作系统不对故障进行检测,因而不会启动OB86或诊断缓冲区条目。只有在重新激活该站后,才能检测到站故障,并将故障信息写入返回值RET_VAL。
3.激活DP从站或PROFINET IO设备
使用SFC 12重新激活DP从站或PROFINETIO设备时,DP主站或PROFINET IO控制器将对该组件进行组态和分配参数,就像有故障的DP从站或PROFINET IO设备被重新激活的情况一样。当组件能够传送用户数据时,激活操作即告完成。
即使其输入或输出属于要更新的过程映像,激活DP从站或PROFINET IO设备也不会启动OB85,并且不会向诊断缓冲区输入条目。激活DP从站或PROFINET IO设备不会启动OB86,操作系统也不会向诊断缓冲区输入条目。
如果试图用SFC 12激活一个被禁止并且已经在物理上与DP总线分离的从站,CPU上的BUSF LED将会闪烁1min,SFC将返回错误代码W#16#80A2,从站仍保持禁止状态。如果以后从站重新连接到DP总线,必须用SFC12重新激活它。
4.CPU启动时对DP从站或PROFINETIO设备的处理
根据启动模式的不同,CPU操作系统对DP从站或PROFINET IO设备按下面的方式处理:
1)在冷启动和暖启动模式,DP从站或PROFINET IO设备被自动激活。
2)在热启动模式,DP从站或PROFINET IO设备的激活状态保持不变。
CPU启动之后,将定期试图联系所有已组态但未禁止的从站/设备,这些从站可能不存在,或者未响应。
5.DP网络组态
在STEP 7中创建一个新的项目(见随书光盘中的例程SFC_12),CPU为CPU 313C-2DP。打开HW Config,将电源模块和I/O模块插入机架。
双击机架中“DP”所在的行,点击出现的DP属性对话框的“属性”按钮,在出现的PROFIBUS接口属性对话框中,采用默认的DP地址2。点击“新建”按钮,生成一条新的PROFIBUS子网络,在出现的“属性新建子网PROFIBUS”对话框的“网络设置”选项卡中,采用默认的传输速率(1.5Mbit/s)和配置文件(DP),点击“确定”按钮返回DP属性对话框,将CPU连接到DP网络上。
返回HW Config后,可以看到新创建的PROFIBUS-DP子网络(见图5-35)。将右边硬件目录窗口的“\PROFIBUS DP\ET 200B”文件夹中的“B-16DO”和“B-16DI”拖放到DP网络上,在自动打开的“属性PROFIBUS接口”对话框的“参数”选项卡中,设置从站的地址为4和5,自动分配的4号从站的输出字节地址为0和1,5号从站的输入字节地址为4和5。
将“\PROFIBUS DP\ET 200M”文件夹中的“IM 153-1”拖放到DP网络上,在自动打开的“属性PROFIBUS接口”对话框的“参数”选项卡中,设置从站的地址为7。
选中该从站后,在下面的4号槽插入一块8点DO模块,5号槽插入一块16点DI模块。自动分配的输出字节地址为2,输入字节地址为6和7。点击工具栏上的按钮,编译并保存硬件组态信息。
图5-35 组态DP从站
选中DP主站系统的网络线,HW Config下面的窗口中的诊断地址将用于SFC 12的输入参数LADDR。
6.编写激活与禁止DP从站的程序
SFC 12的输入参数MODE可能的取值和意义如下:
●MODE=0:查询DP从站处于激活还是禁止状态。
●MODE=1:激活DP从站。
●MODE=2:禁止DP从站。(www.xing528.com)
在OB1中编写调用SFC 12的程序,图5-36中SFC 12的输入参数MODE为1,表示激活DP从站。输入参数LADDR为W#16#3FC,是7号从站的诊断地址1020。I0.2为1状态时,控制参数REQ为1,开始激活7号DP从站。激活操作未完成时,输出参数BUSY(M0.4)为1,REQ保持1状态。激活操作完成后,M0.4变为0状态。图5-37中的MODE为2,I0.2为0状态时,禁止7号DP从站。
图5-36 激活7号从站
图5-37 禁止7号从站
禁止与激活4号和5号从站的程序与7号从站的程序基本上相同,分别用I0.0和I0.1禁止和激活4号和5号从站。
在SIMATIC管理器中,打开“块”文件夹,生成组织块OB82、OB86和OB122。下面是OB82中的语句表程序,MW20用来记录调用OB82的次数。
在OB86和OB122中,分别将MW22和MW24加1。
7.实验过程
下面以7号从站ET 200M为例,介绍用SFC 12禁止和激活DP从站的实验过程。
在SIMATIC管理器中生成变量表(见图5-38),在变量表中监控ET 200M的输出字节QB2和输入字IW6。变量表中的MW20~MW24分别用来记录OB82、OB86和OB122的中断次数。
将程序和组态数据下载到CPU后,用PROFIBUS电缆连接CPU 313C-2DP、ET 200B和ET 200M的DP接口。接通它们的电源,将CPU切换到RUN模式。打开变量表,点击工具栏上的按钮,使变量表进入监控状态。I0.0~I0.2分别用于激活和禁止3个从站。
(1)激活7号从站
为了验证DP主站与从站的通信,在OB1的程序段7编写下面两条语句,将主站读取的7号从站的外设输入字节写入7号从站的外设输出字节:
令I0.2为1状态,7号从站处于激活状态。用接在7号从站的输入模块的小开关改变IB6的值,可以看到7号从站的输出模块的QB2的值随之而变,表明主站与7号从站之间的通信正常(见图5-38)。
(2)禁止7号从站
令I0.2为0状态,7号从站处于禁止状态。ET 200M的接口模块IM 153-1的BF(总线故障)LED闪烁,各输出点的LED熄灭,它们被禁止输出。变量表中7号从站的输入字IW6为0。主站CPU 313C-2DP的LED没有显示错误信息。
因为用外设输入PIB6、外设输出PQB2直接访问被禁止的7号从站,CPU在每个扫描循环周期调用一次I/O访问错误组织块OB122,用来记录OB122中断次数的MW24快速增大(见图5-39),并在CPU的诊断缓冲区中输入相应的OB启动事件。
图5-38 激活7号从站时的变量表
图5-39 禁止7号从站时的变量表
禁止DP从站时,CPU没有启动其他故障处理组织块,操作系统也没有向诊断缓冲区输入其他条目。用SFC 12禁止3个从站,断开它们的电源后又接通,操作系统没有启动故障处理组织块OB86、OB82,诊断缓冲区也没有有关事件的条目。
用I0.0和I0.1禁止4号、5号从站(ET 200B)时,它们的BF和RUNLED亮,4号从站的输出点的LED熄灭,它们被禁止输出。主站读取的5号从站的输入字IW4为0。
(3)重新激活7号从站
令主站的I0.2为1状态,7号从站返回激活状态,BFLED停止闪烁,7号从站的输入、输出恢复正常,又可以用IB6控制QB2。
重新激活DP从站时,没有启动故障处理OB,操作系统也没有向诊断缓冲区输入条目。
激活后即使用外设输入PIB6、外设输出PQB2直接访问7号从站,CPU也不会调用I/O访问错误组织块OB 122。
7号从站被激活后,断开它的电源,3个从站同时断电。CPU调用OB86,CPU的SF LED亮,BF(总线错误)LED闪烁,诊断缓冲区写入有关的事件信息。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。