电动机功率 | 3kW | 外形尺寸 | 4mm |
---|---|---|---|
应用领域 | 环保,食品/农产品,地矿,包装/造纸/印刷,纺织/印染 | 重量 | 3kg |
西门子S7-1200 控制器是我们新推出产品的核心,可实现简单却高度精确的自动化任务。西门子S7-1200 控制器实现了模块化和紧凑型设计,功能强大、投资安全并且*适合各种应用。可扩展性强、灵活度高的设计,可实现标准工业通信的通信接口以及一整套强大的集成技术功能,使该控制器成为完整、全面的自动化解决方案的重要组成部分。
![]() |
参考价 | ¥433 |
订货量 | 1 |
更新时间:2019-06-18 11:03:20浏览次数:169
联系我们时请说明是化工仪器网上看到的信息,谢谢!
西门子S7-1200PLC模块江苏代理商
西门子S7-300/400梯形图中的逻辑块调用指令
梯形图中的CALL线圈可以调用功能FC或系统功能SFC,调用时不能传递参数。调用可以是无条件的,CALL线圈直接与左侧垂直线相连,相当于语句表中的UC指令;也可以是有条件的,条件由控制CALL线圈的触点电路提供,相当于语句表的CC指令。CALL指令调用的块应是已经存在的块。
可以将程序编辑器左边的指令列表窗口的FB、FC文件夹或库文件夹中的逻辑块(不包括OB)直接拖放到右边的程序区,生成的逻辑块调用指令用方框表示(见图4-17中的FC2)。需要传递参数的逻辑块用这种方法来调用
逻辑块包括组织块、功能、功能块、系统功能和系统功能块。逻辑块结束指令包括块无条件结束指令BEU、块结束指令BE和块条件结束指令BEC(见表4-2)。
执行块结束指令时,将中止当前块的程序扫描,返回调用它的块。BEU和BE是无条件执行的,而BEC只是在RLO为1时执行。
假设逻辑块A调用逻辑块B,执行逻辑块B的无条件结束指令BEU或在条件满足时执行BEC指令,将会中止逻辑块B(当前块)的程序扫描,返回逻辑块A调用逻辑块B的调用指令( CALL)下面一条指令,继续程序扫描。逻辑块B结束后,它的局部数据区被释放出来,调用它的块A的局部数据区变为当前局部数据区。块A调用块B时打开的数据块被重新打开。块A的主控继电器( MCR)被恢复,RLO从块B被带到块A。
BEU指令的执行不需要任何条件,但是如果BEU指令被跳转指令跳过,当前程序扫描不会结束,在块内的跳转目标处,程序将被继续启动。使用S7系列PLC的硬件时,块结束指令BE与BEU的功能相同。下面是使用BEC的例子:
A I 0.1 //刷新RLO
BEC //如果RLO为1,结束块
L IW 4 //如果RLO为0,不执行BEC,继续程序扫描
表4-2 块结束与程序控制指令
语句表指令 | 梯形图指令 | 描 述 |
BE | - | 块结束 |
BEU | - | 块无条件结束 |
BEC | - | 块条件结束 |
CALL FCn | - | 调用功能 |
CALL SFCn | - | 调用系统功能 |
CALL FBn1,DBn2 | - | 调用功能块 |
CALL SFBn1,DBn2 | - | 调用系统功能块 |
CC FCn或 CC SFCn | CALL | RLO =1时条件调用 |
UC FCn或 UC SFCn | CALL | 无条件调用 |
RET | RET | 条件返回 |
条件返回指令RET (Return)以线圈的形式出现,用于有条件地离开逻辑块,条件由控制它的触点电路提供,RET线圈不能直接连接在左侧垂直“电源线”上。如果是无条件地返回调用它的块,在块结束时并不需要使用RET指令。
块调用指令( CALL)用来调用功能块(FB)、功能(FC)、系统功能块(SFB)或系统功能( SFC),或调用西门子提供的其他标准块。
在CALL指令中,FC、SFC、FB和SFB是作为地址输入的,逻辑块的地址可以是地址或符号地址。CALL指令与RLO和其他任何条件无关。在调用FB和SFB时,应提供与它们配套的背景数据块。调用FC和SFC时,不需要背景数据块。处理完被调用的块后,调用它的程序继续其逻辑处理。
无条件调用指令UC和条件调用指令CC用于调用没有输入/输出参数的FC和SFC。其使用方法与CALL指令相同,只是在调用时不能传递参数。下面是使用CC指令和UC指令的例子:
A I 0.1 //刷新RLO
CC FC 6 //如果RLO为1,调用没有参数的FC6
L IW 4 //从FC6返回后执行,I0.1为0时不调用FC6,直接执行本指令
UC FC 2 //无条件调用没有参数的FC2
如果逻辑块执行完后不需要保存它内部的数据,可以用功能FC来编程。与功能块FB相比较,FC不需要配套的背景数据块。
1.生成功能
用鼠标右键点击SIMATIC管理器左边窗口中的“块”,执行出现的快捷菜单中的“插入新对象”→“功能”,生成一个新的功能。在出现的功能属性对话框中,采用系统自动生成的功能的名称FC1,设置梯形图(LAD)为功能默认的编程语言。
2.功能的局部变量
双击SIMATIC管理器中FC1的图标,打开程序编辑器(见图4-16)。
与功能块的变量声明表(见图4-13)相比,功能没有静态变量(STAT),退出FC后不能保存它的临时局部变量。功能多了一个返回值RET_VAL,它实际上是一个输出参数。返回值的设置与IEC 6113-3标准有关,该标准的功能没有输出参数,只有一个返回值。
功能FC1用来控制发动机的风扇,要求在发动机运行信号Engine_On变为1时起动风扇,发动机停车后,用输出的BOOL变量Fan_On控制的风扇继续运行30s后关断。
在FC1中,用延时断开定时器S_OFFDT(见图4-16)来定时。在功能的变量声明表中定义的输入参数Timer_Function是延时断开定时器的编号,数据类型为Timer,在调用FC1时用它来为不同的发动机不同的定时器。
3.功能与功能块的区别
FB和FC均为用户编写的子程序,局部数据均有IN、OUT、IN_OUT和TEMP,临时变量TEMP储存在局部数据堆栈中。
1) FC的返回值RET_VAL实际上是输出参数,因此有无静态变量(STAT)是二者的局部变量的本质区别,功能块的静态变量用背景数据块来保存。如果功能有执行完后需要保存的数据,只能存放在全局变量(I/Q、PI/PQ、M、T、C和共享数据块)中,但是这样会影响功能的可移植性。如果功能或功能块的内部不使用全局变量,只使用局部变量,不需要做任何修改,就可以将块移植到其他项目。如果块的内部使用了全局变量,在移植时需要重新统一分配它们内部使用的全局变量的地址,以保证不会出现地址冲突。当程序很复杂,子程序和中断程序很多时,这种重新分配全局变量地址的工作量非常大,也很容易出错。
如果逻辑块有执行完后需要保存的数据,显然应使用功能块,而不是功能,
2)功能块的输出参数不仅与来自外部的输入参数有关,还与用静态变量保存的内部状态数据有关。功能因为没有静态变量,相同的输入参数产生的执行结果是相同的。
3)功能块有背景数据块,功能没有背景数据块。只能在功能内部访问功能的局部变量,其他逻辑块和人机界面可以访问背景数据块中的变量。
4)不能给功能的局部变量设置初始值,可以给功能块的局部变量(不包括TEMP)设置初始值。在调用功能块时如果没有设置某些输入参数的实参,将使用背景数据块中的初始值,或上一次执行后的值。调用功能时应给所有的形参实参。
4.组织块与其他逻辑块的区别
发生事件或故障时,由操作系统调用对应的组织块,其他逻辑块是用户程序调用的。
组织块有自动生成的20B临时局部数据,包含了与触发组织块的事件有关的信息。它们是操作系统提供的。组织块中的程序是用户编写的,用户可以自己定义和使用组织块20B之后的临时局部数据。
中文版STEP 7有时将背景数据块翻译为实例数据块。背景数据块是专门给某个功能块( FB)或系统功能块(SFB)使用的数据块,它是FB或SFB运行时的工作存储区。
背景数据块用来保存FB和SFB的输人参数、输出参数、IN_OUT参数和静态数据,背景数据块中的数据是自动生成的。它们是功能块的变量声明表中的变量(不包括临时变量),临时变量( TEMP)存储在局部数据堆栈中。每次调用功能块时应不同的背景数据块。背景数据块相当于每次调用功能块时对应的被控对象的私人数据仓库,它保存的数据不受别的逻辑块的影响。
功能块的数据保存在它的背景数据块中,功能块执行完后也不会丢失,以供下次执行时使用。其他逻辑块可以访问背景数据块中的变量。不能直接删除和修改背景数据块中的变量,只能在它对应的功能块的变量申明表中删除和修改这些变量。
使用不同的背景数据块调用功能块,可以控制多个同类的对象。生成功能块后,可以首先生成它的背景数据块,然后在调用该功能块时使用它。选中SIMATIC管理器左边窗口中的“块”图标,用右键点击右边的窗口,执行出现的快捷菜单中的“插入新对象”→“数据块”,生成一个新的数据块。在出现的数据块属性对话框中(见图4-14),可采用系统自动生成的名称,选择数据块的类型为“背景DB”,如果有多个功能块,还需要设置它是哪一个功能块的背景数据块。
图4-14 数据块属性对话框
图4-15是FB1的背景数据块DB1中的数据,功能块的变量声明表决定了它的背景数据块的结构和变量。
生成功能块的输入参数、输出参数和静态变量时,它们被自动一个初始值,可以修改这些初始值。它们被传送给FB的背景数据块,作为同一个变量的初始值。图4-15中BOOL变量(数字量)的初始值FALSE为二进制数0。静态变量Preset_Speed(预置转速)的初值为1500,是在FB1的变量声明表中设置的。
调用FB时没有实参的形参使用背景数据块中的初始值。
图4-15 背景数据块
西门子S7-1200PLC模块江苏代理商