西门子电抗器6SL3000-2BE21-0AA0
PLC的工作原理
PLC是一种工业计算机,其工作原理是建立在计算机工作原理基础上的,CPU采用分时操作方式来处理各项任务,即每一时刻只能处理一件事情,程序的执行是按照顺序依次执行。这种分时操作过程称为PLC对程序的扫描,扫描一次所用的时间称为扫描周期。运行时,逐条地解释用户程序,并加以执行。程序中的数据并不直接来自输入或输出模块的接口,而是来自数据寄存器区,该区域中的数据在输入采样和输出锁存时周期性地不断刷新。
PLC的扫描工作过程大致可以分为3个阶段:输入采样、用户程序执行和输出刷新3个阶段,如下图所示。在整个运行期间,PLC的CPU以一定的扫描速度重复执行上述3个阶段。
1)输入采样阶段
在输入采样阶段,PLC扫描所有输入端子,再依次地读入所有输入状态和数据,并将它们存入输入寄存器中。此时,输入寄存器被刷新。输入采样结束后,转入用户程序执行和输出刷新阶段。在这两个阶段中,输入状态和数据发生变化,输入寄存器中相应单元的状态和数据也不会改变。如果输入是脉冲信号,则该脉冲信号的宽度必须大于一个扫描周期,才能保证在任何情况下,该输入均能被读入。
2)用户程序执行阶段
输入采样阶段的输入信号被刷新后,送入程序执行阶段。组成程序的每条指令都有顺序号,指令按顺序号依次存入存储单元。在程序执行期间,微处理器将指令顺序调出并执行,并对输入和输出状态进行处理,即按程序进行逻辑、算术运算,在将结果存入输出状态寄存器中。
3)输出刷新阶段
当用户程序执行完毕后,PLC就进入输出刷新阶段。在此期间,CPU按照输入/输出状态寄存器内对应的状态和数据刷新所有的输出锁存电路,转换成被控设备所能接收的电压或电流信号,再经输出电路驱动相应的外设。在下一个输出刷新阶段开始之前,输出锁存器的状态不会改变,从而相应输出端子的状态也不会改变。
PLC的编程语言
编程语言是PLC的重要组成部分,PLC为用户提供了完整的编程语言,以适应用户编制程序的需要。IEC61131-3为PLC制定了5种PLC的标准编程语言,其中有3种图形语言即梯形图(LAD)、功能块图(FBD)、顺序功能图(SFC);两种文本语言,即指令表(STL)和结构化文本(ST)。
梯形图是PLC较早使用的一种编程语言,也是PLC较普遍采用的编程语言。梯形图编程语言是从继电器控制系统原理图的基础上演变而来的,继承了继电器控制系统中的基本工作原理和电器逻辑关系的表达方法,梯形图语言与继电器控制系统梯形图的基本思想是一致的,只是在使用符号和表达方式上有一定的区别。
功能块图采用类似于数字逻辑门电路的图形符号,逻辑直观,使用方便,它没有梯形图语言中的触点和线圈,但拥有与之等价的指令。
顺序功能图亦称功能图。SFC编程方法是法国人开发的,是一种真正的图形化编程方法。SFC专用于描述工业顺序控制程序,使用它可以对具有并发、选择等复杂结构的系统进行编程,特别适合在复杂的顺序控制系统中使用。
指令表编程语言类似于计算机中的助记符汇编语言,它是PLC较基础的编程语言,所谓指令表编程,是用一个或几个容易记忆的字符来代表PLC的某种操作功能,按照一定的语法和句法编写出一行一行的程序,来实现所要求的控制任务的逻辑关系或运算。
结构化文本是一种**的文本语言,是一种较新的编程语言。结构化文本语言表面上与PASCAL语言很相似,但它是一个专门为工业控制应用开发的编程语言,具有很强的编程能力,与梯形图相比,它能实现复杂的数学运算,编写的程序非常简洁和紧凑
PLC机型的选择一般从系统控制功能、指令和编程方式、PLC存储量和响应时间、通信联网功能等几个方面综合考虑,所选PLC应能满足控制系统的功能需要。
1.输入/输出模块的选择
输入模块将现场设备(如按钮开关)的信号进行检测并转换成PLC内部的电平信号,它按电压分为交流式和直流式,按电路形式分为汇点输人式和分隔输入式。选择输入模块时应考虑输入信号电压的大小、信号传输的距离长短、是否需要隔离及采用何种方式隔离、内部供电还是外部供电等问题。
输出模块把PLC内部信号转换为外部过程的控制信号,以驱动外部负载。
输入/输出模块是可编程序控制器与被控对象之间的接口,按照输入/输出信号的性质一般可分为开关量(或数字量)模块和模拟量模块。
开关量模块包括输入模块和输出模块,有交流、直流和交直流三种类型。开关量输入模块按输入点数分为4、8、16、32、64等,按电压等级分为直流24V、48V、60V和交流110V、230V等。模块密度要根据实际需要来选择,一般以每块16~32点为好。如果是长距离传输通信,开关量输入模块的门槛电平也是不容忽视的一个因素。直流开关量输入模块的延迟时间较短可直接与接近开关、光电开关等电子装置相连。
开关量输出模块按输出点数分为16、32、64点,按输出方式分为继电器输出、晶体管输出和晶闸管输出。选择的输出模块的电流值必须大于负载电流的额定值。对于频繁通断、低功率因数的感性负载,应采用无触点开关器件,即选用晶闸管输出(交流输出)或晶体管输出(直流输出),这样做的缺点是价格较高。继电器输出属于有触点器件,其优点是适应电压的范围大,价格便宜,但存在寿命短、响应速度较慢的缺点。
模拟量模块也包括输入模块和输出模块。
模拟量输入模块把来自于传感器等的电压、压力、流量、位移等电量或非电量转变为一定范围内的电压或电流信号,它分为电压型和电流型。电流型又分为0~20mA、4~20mA两种,电压型分为1~5V、-10~+10V、0~5V等多种型号。通道有2、4、8、16个。在选用时应注意外部物理量的输入范围,模拟通道循环扫描的时间和信号的连接方式。一般来说,电流型的抗干扰能力优于电压型。模拟量输出模块能输出被控设备所需的电压或电流,它的电压型和电流型的型号与模拟量输入模块的大体相似,选用输出模块驱动执行机构时,中间有可能要增加必要的转换装置,还要注意信号的统一性和阻抗的匹配性。
2.对程序存储器容量的估算
PLC的程序存储器容量通常以字节为单位。用户程序所需存储器容量可以预先估算。一般情况下用户程序所需存储的字节数可按照如下经验公式来计算。
1)开关量输入/输出系统
输入:用户程序所需存储的字节数=输入点总数*10;
输出:用户程序所需存储的字节数=输出点总数*8。
2)模拟量输入/输出系统
每一路模拟量信号大约需要120字节的存储容量,当模拟输入和输出存在时,应有所需内存字节数=模拟量路数*250。
3)定时器和计数器系统
所需内存字节数=定时器/计数器数量*2
4)含有通信接口的系统(多指PC网络系统)
所需存储字节数=通信接口个数*300
根据系统控制要求的难易程度也可采用另一种方法进行估算:
程序容量=K*总输入/输出点数
对于简单控制系统来说,K=6;若为普通系统,K=8;若为较复杂系统,则K=10;若为复杂系统,则K=12。
61:为什么在FM350-1中选24V编码器,启动以后,SF灯常亮,FM350-1不能工作?
要检查一下,在软件组态中要选择编码器类型(为24V),再检查一下,FM350-1侧面的跳线开关,因为缺省的开关设置为5V编码器,一般用户没有设置,开机后,SF灯就会常亮
还可以看看在线硬件诊断,可以看看错误产生的原因,是否模板坏了。
62: FM350-1的锁存功能是否能产生过程中断?
FM350-1的锁存功能是不能产生过程中断,可以产生过零中断。
FM350-1的装载值必须为零,随者锁存功能的执行(DI的上升沿开始),当前的计数值被储存到另一地址置为初始值零,产生过零中断,在OB40中可以读出中断并相应的值。锁存值也可以从FM350-1的硬件组态地址的前4个字节中读出。
63: 在FM350-1中,怎样触发一个比较器输出?
FM350-1中自带的输出点具有快速性、实时性,不必要经过CPU的映像区处理。输出点一般对应于比较器,在硬件组态中定义比较器输出类型,如:输出值为1或为脉冲输出,在程序中设置比较值。在FM350-1中,地址在通讯DB(UDT生成)块中为18(比较值1)、22(比较值2),类型为DINT,激活输出点28.0(DQ0)、28.1(DQ1),这样比较器就可以工作了。
64:在FM350-2中,工作号的作用是什么?
工作号是S7-300CPU与FM进行通讯的任务号,每次的交换数据只是部分数据交换,而非全部数据,这样可以减少FM的工作负载,工作号又分写工作号和读工作号,例如在FM350-2中DB1为通讯数据块,如果把写工作号12写入到DB1.DBB0中,把200写入到DB1.DBD52中,再调用FC3写功能,这样计数器的初始值为200,这里工作号10的任务号是写计数器的初始值,DB1.DBB0为写工作号存入地址,DB1.DBD52为计数器装载地址区,同样读工作号100为读前4路,101为读后4路计数器,读工作号存入地址为DB1.DBB2。 但写任务不能循环写,只能分时写入。
65:如果对于4-20 mA模拟量输入模块来说,小于4 mA后转换的数字量是多少?
如果小于4ma,那么将会是输出负值,例如 -1对应的是3.9995mA,而1.185 mA 时,这个数值是-4864 (10进制)如果小于1.185mA,如果禁止断线检测,这个值是8000(16进制)如果有断线检测,会变成7FFF(16进制)。
66:怎样对模拟量进行标准化和非标准化?
可以使用以下功能块:
1.在块FC164中,x和y都是整数。
2. FC165中x是整数,y是实数。
3. FC166中x是实数,y是整数。
4. FC167中x和y都是实数。
67:S7系列PLC之间经济的通讯方式是什么?
MPI通讯是S7系列PLC之间一种经济、数据量小的一种通讯,需要做连接配置的站通过GD通讯,GD通讯适合于S7-300之间,S7-300、S7-400、MPI之间一些固定数据的通讯。不用作连接的MPI通讯适用于S7-300之间、S7-300与400之间、S7-300/400与S7-200 系列PLC之间的通讯,建议在OB35(循环中断100ms)中调用发送块,在OB1(主循环组织块)调用接收块。
68:整个系统掉电后,为什么CPU在电源恢复后仍保持在停止状态?
整个系统由一个DP主站S7-300/400以及从站组成。而从站通过一个主开关被切断了电源。由于内部的CPU电压缓冲器,CPU 仍继续运行大约50ms到100ms。此阶段里 CPU 识别出所连接的从站的故障。如果没有编程OB86和OB122的话,CPU 就会因为这些有故障的从站而继续保留在停止状态。
69:在点到点通信中,协议 3964(R)和RK 512 之间的区别是什么?
这两个协议的主要区别在于消息报头和响应消息的不同。使用RK 512,提供有的数据完整性,程序 3964(R) 当传送信息数据时,程序 3964(R)将控制字符(安全层)添加到信息数据上。这些控制字符激活通信伙伴,检查数据是否全部接收,是否无错误。
70:当一个DP从站出故障,如何在输入的过程映像被清成“0”以前保存它们?
当一个DP从站出故障时,OB86(通过S7-300/400)被调用。可用下列方法“保存”输入的过程映像:
1. 把从站的所有输入循环地复制到一个独立的区里。
2.如果从站出问题,则 OB86 被启动。在此 OB 里你可设一个标志位来可防止的循环复制操作。
3. 当从站返回总线后,你把 OB86 里的标志位复位。