S7-300多重背景调用实例复习课程
- 格式:doc
- 大小:305.50 KB
- 文档页数:8
s7-300软冗余手册S7-300的软冗余要求从站必须通过有源底板连接。
从站的所有模块需要确保没有故障,即SF灯不亮尤其是通讯模块。
S7-300的软冗余分为三种方式:MPI ,DP ,以太网。
三种冗余方式的通讯速度不同,以太网通讯速度最快,DP通讯速度次之,MPI通讯速度最慢。
不同的通讯方式选择的功能块不相同,具体功能块的选择如图1所示:图1下面以以太网冗余为例,简述冗余过程:(一)插入两个S7-300的站,SIMATIC 300(A) 和SIMATIC 300(B)。
(二)设置A站的IP地址为192.168.0.10 ,B站的地址为192.168.0.20 。
(三) 在A站的块中插入OB100、OB35、OB86组织块,并对其中的OB100、OB35、OB86进行编程。
(四) 在组态网络中新建ISO-ON-TCP 链接。
要求ID 号要大于2且主从站的ID 号一致。
上图为最终效果图,下图为过程(五)在OB100中我们调用FC100’SWR_START ’进行软冗余的初始化。
FC100’SWR_START 的各个引脚的注释请参照最后的附录调用FC100的位置如图主站设置如左图所示步骤,从站不需要再次设定但需要在从站中给该从站的通讯ID 号与主站相同且大于2。
,图12345图中1表示为当前CPU的站号,A站写A,B站写B。
图中2填写对方的地址,MPI_ADR表示对方的MPI地址,LADDR表示CP通讯处理器组态的硬件地址,采用PROFIBUS或Ethernet网络进行数据同步时才有意义,默认值为256不需要更改。
VERB_ID表示网络链接的ID号,在NETPRO窗口中组态的链接的ID值,如FDL Connection、ISO Connection或S7 Connection。
数值要大于2。
DP_MASTER_SYS_ID表示DP主站网络的ID号,你可以在硬件组态中双击链接ET200M从站紫色的PROFIBUS主从网络,获取该ID值双击。
实例解析西门子S7-300的多重背景数据块使用,教你事半功倍!BFH当功能块FB1在组织块中被调用时,使用了与FB1相关联的背景数据块。
这样FB1有几次调用,就必须配套相应数量的背景数据块。
当FB1的调用次数较多时,就会占用更多的数据块。
使用多重背景数据块可以有效地减少数据块的数量,其编程思路是创建一个比FB1级别更高的功能块,如FB10,对于FB1的每一次调用,都将数据存储在FB10的背景数据块中。
这样就不需要为FB1分配任何背景数据块。
下面以发动机组控制系统为例,介绍如何编辑和使用多重背景数据块。
例发动机组控制系统设计——使用多重背景设某发动机组由1台汽油发动机和1台柴油发动机组成,现要求用PLC控制发动机组,使各台发动机的转速稳定在设定的速度上,并控制散热风扇的启动和延时关闭。
每台发动机均设置一个启动按钮和一个停止按钮。
项目的编程步骤如下:(1)创建S7项目。
使用菜单“文件”à“新建工程”向导创建发动机组控制系统的S7项目,并命名为“多重背景”。
CPU选择CPU 315- 2DP,项目包含组织块OB1。
(2)硬件配置。
在“多重背景”项目内打开“SIMATIC 300(1)”文件夹,打开硬件配置窗口,并按图1完成硬件配置。
图1 硬件配置(3)编辑如图2所示的符号表。
(4)规划程序结构。
程序结构规划如图3所示。
FB10为上层功能块,它把FB1作为其“局部实例”,通过二次调用本地实例,分别实现对汽油机和柴油机的控制。
这种调用不占用数据块DB1和DB2,它将每次调用(对于每个调用实例)的数据存储到体系的上层功能块FB10的背景数据块DB10中。
(5)编辑功能(FC)。
FC1用来实现发动机(汽油机或柴油机)的风扇控制,按照控制要求,当发动机启动时,风扇应立即启动;当发动机停止后,风扇应延时关闭。
因此FC1需要一个发动机启动信号、一个风扇控制信号和一个延时定时器。
1)定义局部变量声明表。
局部变量声明表如表1所示,表中包含3个变量,两个IN变量,1个OUT变量。
S7-300的功能块忘记选择多重实例背景功能,如何修改?
难道必须要删掉重新建立吗?
还有我建立好的FB FC在主程序已经调用了,
之后我又修改了调用的地方就是红的必须要重新调用吗?没有什么简单的方法可以更新吗?
Step1:在LAD编辑器开启你需要修改的FB.
Step2:执行菜单File——Generate Sourece(中文版可能译为文件——生成源文件),给Object Name文件名,单击OK。
Step3:将需要生成.源.代.码的FB拖入右边的框中,确认。
Step4:在Step7的项目树中的Source源文件夹中你能看到刚才转换的文件。
Step5:双击打开刚才的文件,然后删除CODE_VERSION1行。
Step6:执行File——Compile(文件——编译),编译前应确保先前开启的FB编辑器关闭,否则将提示错误。
经过上述过程,你可以为没有多背景的FB添加该功能,反之,可以为FB的多背景属性取消,如果你的FB不需要多背景功能,建议不要选择多背景选项,因为多背景选项会限制STL的编程。
S7-300多重背景调用
实例
多重背景数据块
如果在结构化编程时经常使用功能块,那么在每次调用FB时都要为其指定一个单独的背景数据块。
对于非常小的FB,它的背景数据块经常由很少的几个字组成,则会浪费大量没有使用的背景数据块空间。
当频繁调用和指定背景数据块给这些小的FB时,程序会变得非常不清晰,或者DB块的数量会达到CPU 所支持的最大数量。
由于一个背景数据块可以长于FB实际需要的长度,因此多个背景数据块可以合并成一个多重背景。
但是,这种合并必须在一个FB中通过编程完成。
多重背景调用等同于FC的调用,在多重背景下调用的参数填写一定不能空着,必须有实际地址,否则用 DB10的数据程序会混乱
具体步骤:
1.先建立一个FB1。
符号名:三数相加。
完成内容a*b*c=outcome
2.定义形式参数
3.IN:a, b, c
4.OUT:outcome
5.temp:temp_out
6.在 SIMATIC Manager 中,打开你希望生成多重背景的 FB2。
在静态变量STAT定义部
分,输入多重背景的名字,数据类型为 FB,选择后要注意改成FB1。
然后将左侧多重背景的数据模块拖入编程框内。
3.建立FB2的多重背景数据块
4.在主程序OB1里调用FB2
5.如果需要可以在主程序里用mov指令给相应的变量例如DB1.DBW2等赋值,或直接在DB2数据库里改变当前值。
6.仿真运行
多重背景刷新补充内容
7.一旦修改过了多重背景,并打开调用它的功能块。
当功能块被打开时,会出现一个消
息显示在 FB 接口声明中有一个 UDT 或本地标签的被修改,并显示在功能块调用中至少有一个时间标签冲突。
确认此信息,修改过的背景调用在 LAD/STL/FBD 编辑器中将会以亮红色显示。
为了更新功能块调用,右击功能块,然后在弹出菜单中选择“Update Block Call...”。
8. 在后续的对话框中,点击 OK 来执行接口更新
当尝试通过“File > Check and Update Accesses”来更新程序块调用时,STEP7 V5.3 不能发现变量间的唯一分配,调用还是保持红颜色,也无法通过“Edit > Call > Update”改正调用错误。
更新调用的唯一办法是删除调用,在声明中更新接口,然后再以多重背景方式调用功能块。
如果已经删除了 FB 接口中的变量,应该通过“Edit > Call > Update”来改正所有的多重背景调用,而不需使用前面的“Check and Update Accesses”功能。
一旦已经更新了这些多重背景,就又可以与平时一样使用“Check and Update Accesses”功能了。
9.推荐在更新功能块调用后进行一致性检查。
在 SIMATIC Manager 中,右击 S7 program 文件夹,选择“Check block consistency...”功能,系统会显示S7程序的结构。
通过工具栏中的第二个按钮或者“Program > Compile All”功能编译程序。
在编译后,STEP 7程序一致性将统一。
10. 当新生成一个新的功能块,在功能块属性中多重背景功能默认被选择(图6)。
也可以改变此设置。