西门子plc的FB和FC均为用户编写的子程序,局部数据均有IN、OUT、IN_OUT、TEMP,临时变量TEMP储存在局部数据堆栈中。
1)FC的返回值RET_VAL实际上输出参数,因此有无动态变量(STAT)是二者的局部变量的本质区别,功能块的静态变量用北京数据块来保存,如果功能有执行完后需要保存的数据,只能存放在全局变量(I/O、PI/PO、M、T、共享数据块DB中),但是这样会影响功能的可移植性,如果功能或功能块的内部不使用全局变量,只使用局部变量,不需要做任何修改,就可以将块移植到其他项目,如果块使用了全局变量,在移植时需要重新统一分配它们的内部使用的全局变量地址,以保不会出现冲突,当程序复杂,子程序和中断程序很多时,这种重新分配全局变量地址的工作量非常大,也容易出错。如果逻辑块有执行完成需要保存的数据,显然应使用功能块,而不是功能。
2)功能块的输出参数不仅与来自外部的输入参数有关,还与用静态变量保存的内部状态数据有关,功能因为没有静态变量,相同的输入参数产生的执行结果是相同。
3)功能块有背景数据块DB,功能没有背景数据块,只能在功能内部访问功能的局部变量,其他逻辑块与人机界面可以访问相应背景数据块中的变量。
4)不能给功能的局部比啊娘设置初始值,可以给功能块的局部变量(不包含TEMP)设置初始值,在调用功能块时如果没有设置某些输入参数的实参,将使用背景数据块中的初始值,或上一次执行后的值,调用功能时应给所有的形参*实参。
PLC采用循环扫描的工作方式,在PLC中用户程序按先后顺序存放,CPU从一条指令开始执行程序,直到遇到结束符后又返回一条,如此周而复始不断循环。PLC的扫描过程分为内部处理、通信操作、程序输入处理、程序执行、程序输出几个阶段。全过程扫描一次所需的时间称为扫描周期。当PLC处于停状态时,只进行内部处理和通信操作服务等内容。在PLC处于运行状态时,从内部处理、通信操作、程序输入、程序执行、程序输出,一直循环扫描工作。
1.输入处理
输入处理也叫输入采样。在此阶段,顺序读入所有输入端子的通端状态,并将读入的信息存入内存中所对应的映象寄存器。在此输入映象寄存器被刷新。接着进入程序执行阶段。在程序执行时,输入映象寄存器与外界隔离,即使输入信号发生变化,其映象寄存器的内容也不会发生变化,只有在下一个扫描周期的输入处理阶段才能被读入信息。
2.程序执行
根据PLC梯形图程序扫描原则,按先左后右先上后下的步序,逐句扫描,执行程序。遇到程序跳转指令,根据跳转条件是否满足来决定程序的跳转地址。从用户程序涉及到输入输出状态时,PLC从输入映象寄存器中读出上一阶段采入的对应输入端子状态,从输出映象寄存器读出对应映象寄存器,根据用户程序进行逻辑运算,存入有关器件寄存器中。对每个器件来说,器件映象寄存器中所寄存的内容,会随着程序执行过程而变化。
3.输出处理
程序执行完毕后,将输出映象寄存器,即器件映象寄存器中的Y寄存器的状态,在输出处理阶段转存到输出锁存器,通过隔离电路,驱动功率放大电路,使输出端子向外界输出控制信号,驱动外部负载。
可编程控制器的种类很多,用户可以根据控制系统的具体要求选择不同技术性能指标的PLC。可编程控制器的技术性能指标主要有以下几个方面:
可编程控制器的I/O点数指外部输入、输出端子数量的总和。它是描述的PLC大小的一个重要的参数。
PLC的存储器由系统程序存储器,用户程序存储器和数据存储器三部分组成。PLC存储容量通常指用户程序存储器和数据存储器容量之和,表征系统提供给用户的可用资源,是系统性能的一项重要技术指标。
可编程控制器采用循环扫描方式工作,完成1次扫描所需的时间叫做扫描周期。影响扫描速度的主要因素有用户程序的长度和PLC产品的类型。PLC中CPU的类型、机器字长等直接影响PLC运算精度和运行速度。
指令系统是指PLC所有指令的总和。可编程控制器的编程指令越多,软件功能就越强,但掌握应用也相对较复杂。用户应根据实际控制要求选择合适指令功能的可编程控制器。
通信有PLC之间的通信和PLC与其他设备之间的通信。通信主要涉及通信模块,通信接口,通信协议和通信指令等内容。PLC的组网和通信能力也已成为PLC产品水平的重要衡量指标之一。
厂家的产品手册上还提供PLC的负载能力、外形尺寸、重量、保护等级、适用的安装和使用环境如温度、湿度等性能指标参数,供用户参考。
6ES72111BE400XB0 | CPU 1211C AC/DC/Rly,6输入/4输出,集成2AI |
6ES72111AE400XB0 | CPU 1211C DC/DC/DC,6输入/4输出,集成2AI |
6ES72111HE400XB0 | CPU 1211C DC/DC/Rly,6输入/4输出,集成2AI |
6ES72121BE400XB0 | CPU 1212C AC/DC/Rly,8输入/6输出,集成2AI |
6ES72121AE400XB0 | CPU 1212C DC/DC/DC,8输入/6输出,集成2AI |
6ES72121HE400XB0 | CPU 1212C DC/DC/Rly,8输入/6输出,集成2AI |
6ES72141BG400XB0 | CPU 1214C AC/DC/Rly,14输入/10输出,集成2AI |
6ES72141AG400XB0 | CPU 1214C DC/DC/DC,14输入/10输出,集成2AI |
6ES72141HG400XB0 | CPU 1214C DC/DC/Rly,14输入/10输出,集成2AI |
6ES72151BG400XB0 | CPU 1215C AC/DC/Rly,14输入/10输出,集成2AI/2AO |
6ES72151AG400XB0 | CPU 1215C DC/DC/DC,14输入/10输出,集成2AI/2AO |
6ES72151HG400XB0 | CPU 1215C DC/DC/Rly,14输入/10输出,集成2AI/2AO |
6ES72171AG400XB0 | CPU 1217C DC/DC/DC,14输入/10输出,集成2AI/2AO |