项目一水塔水位自动控制项目一水塔水位自动控制项目描述任务1认识PLC的基本器件任务2掌握PLC的基本位逻辑指令任务3水塔水位自动控制项目描述控制要求:当水池水位低于水池下限位(S4为OFF),电磁阀YV打开进水。当水池水位高于水池上限位时(S4、S3为ON),电磁阀YV关闭。当水池水位高于水池下限位(S4为ON),且水塔水位低于水塔下限位时(S2为OFF),水泵电机M运转,开始由水池抽水至水塔。同时水塔水位指示灯开始逐步变亮,示意水位上升。当水塔水位达到高水位(S1为ON)时,水泵电机M停止运转。当水塔出水阀(手动)打开时,通过旋钮调节器开度。顺时针旋转时,阀门开度增大,水塔水位下降速度加快;逆时针旋转时,阀门开度减小,水位下降速度变慢。项目实施过程一、方案设计(1)硬件设计(2)软件设计二、项目实施(1)硬件接线(2)程序录入三、设备调试四、项目报告任务1认识PLC的基本器件学习目标:了解PLC的语言种类与程序的基本组件掌握数据类型及存储区域了解寻址方式一、了解PLC的语言种类与程序结构SIMATIC指令集和IEC1131-3指令集:S7-200系列PLC主机中有两类基本指令集:SIMATIC指令集和IEC1131-3指令集,程序员可以任选一种。提供了许多类型的指令以完成广泛的自动化任务。SIMATIC指令集:是为S7-200系列PLC设计的,本指令通常执行时间短,而且可以用LAD、STL和FBD三种编程语言。IEC1131-3指令集是不同PLC厂家的指令标准,它不能使用STL编程语言。返回本节PLC编程语言的国际标准1.顺序功能图2.梯形图3.功能块图4.语句表5.其他编程语言1.顺序功能图S1S2S8S3T0SST8T3T2T1ST9图3.4顺序流程图2.梯形图(LAD)图3.2梯形图举例3.功能块图(FBD)功能块图(FBD)的图形结构与数字电子电路的结构极为相似,如下图3.3所示。4.语句表(STL)语句表(STL)语言类似于计算机的汇编语言,特别适合于来自计算机领域的工程人员。用指令助记符创建用户程序,属于面向机器硬件的语言,STEP7Micro/Win32的语句表如图3.1所示。5.其他编程语言SIMATIC工业软件中的工程工具中为大型或中型PLC提供了许多高级编程工具,以下简要其中的几种:(1)S7-SLC和M7-ProC/C++(2)S7-GRAPH(3)S7-HiGraph(4)CFC(5)结构文本(ST)程序的基本组件1.用户程序(1)主程序(2)子程序(3)中断处理程序2.数据块3.系统块二、掌握数据类型及存储区域数据存取方式:位、字节、字和双字位(bit)——二进制的1位只有0和1。位数据类型为布尔(BOOL).字节(Byte)——8位二进制组成1个字节。字(Word)——两个字节组成1个字。双字(DoubleWord)——两个字组成1个双字。(1)数据类型及范围SIMATICS7-200系列PLC数据类型可以是布尔型、整型和实型(浮点数)。实数采用32位单精度数来表示,其数值有较大的表示范围:正数为+1.175495E-38~+3.402823E+38;负数为-1.175495E~38~-3.402823E+38。不同长度的整数所表示的数值范如表3.8所示。在编程中经常会使用常数。常数数据长度可为字节、字和双字,在机器内部的数据都以二进制存储,但常数的书写可以用二进制、十进制、十六进制、ASCII码或浮点数(实数)等多种形式。几种常数形式分别如表3.9所示。(2)常数CPU的存储区1.输入映像寄存器(I)(I0.0~I15.7),每个扫描周期采样。2.输出映像寄存器(Q)(Q0.0~Q15.7),每个扫描周期末尾3.变量存储器(V)4.位存储器(M)区(M0.0~M31.7)5.定时器(T)存储器区6.计数器(C)存储器区7.高速计数器(HC)8.累加器(AC)9.特殊存储器(SM)标志位如SM0.0,SM0.1,SM0.4,SM0.5CPU的存储区10.局部存储器(L)区11.模拟量输入映像寄存器(AI)12.模拟量输出映像寄存器(AQ)13.顺序控制继电器(S)1.直接寻址方式按位寻址存储区内另有一些元件是具有一定功能的硬件,由于元件数量很少,所以不用指出元件所在存储区域的字节,而是直接指出它的编号。按字节、字或双字寻址三、寻址方式必须指定存储器标识符、字节地址和位号,如图3.8所示。图3.8中MSB表示最高位,LSB表示最低位。图3.8位寻址格式MSBI0LSB0I15I4I3I2I17654321I4.5I14.2字节的位,即位号存储器标识符字节地址位地址与字节地址之间的间隔直接指出编号的寻址方式适用于定时器T0~T255计数器C0~C255高速计数器HC0~HC5累加器AC0~AC3注意:累加器长度是32位,可以按字节、字或双字的形式来访问其数值,这取决于存取累加器时的指令。按字节、字或双字寻址2.间接寻址方式间接寻址方式是,用指针来访问存储区数据,指针以双字形式存储其它存储器的地址,只能用V,L存储器或累加器寄存器AC作为指针。这种间接寻址方式与计算机的间接寻址方式相同。间接寻址在处理内存连续地址中的数据时非常方便,而且可以缩短程序所生成的代码的长度,使编程更加灵活。用间接寻址方式存取数据需要作的工作有3种:建立指针、间接存取和修改指针。(1)建立指针建立指针必须用双字传送指令(MOVD),将存储器所要访问的单元的地址装入用来作为指针的存储器单元或寄存器,装入的是地址而不是数据本身,格式如下:例:MOVD&VB200,VD302MOVD&MB10,AC2MOVD&C2,LD14注意:建立指针用MOVD指令。(2)间接存取指令中在操作数的前面加“*”表示该操作数为一个指针。下面两条指令是建立指针和间接存取的应用方法:MOVD&VB200,AC0MOVW*AC0,AC1若存储区的地址及单元中所存的数据如下所示执行过程如下:(3)修改指针下面的两条指令可以修改指针的用法:INCDAC0INCDAC0MOVW*AC0,AC1返回本节任务2掌握PLC的基本位逻辑指令PLC梯形图语言的编程原则指令分类位逻辑指令编程中应注意的几个问题堆栈及堆栈操作指令一、PLC梯形图语言的编程原则1、梯形图由多个梯级组成,每个线圈可构成一个梯级,每个梯级有多条支路,每个梯级代表一个逻辑方程;2、梯形图中的继电器继电器、接点、线圈不是物理的,是PLC存储器中的位(1=ON;0=OFF);编程时常开/常闭接点可无限次引用,线圈输出只能是一次;3、梯形图中流过的不是物理电流而是“概念电流”,只能从左向右流;4、用户程序的运算是根据PLC的输入/输出映象寄存器中的内容,逻辑运算结果可以立即被后面的程序使用;5、PLC的内部继电器不能做控制用,只能存放逻辑控制的中间状态;6、线圈不能直接接到左母线上。二、指令分类——按形式分2.功能块1.继电器触点线圈——()Enable输入参数IN1IN2N输出参数OUT功能数据类型地址条件长度EN指令分类——按功能分1。位逻辑功能2。定时器/计数器3。数字运算功能4。逻辑操作功能5。数据传送功能6。转换功能7。程序控制功能1.常用位逻辑指令(STL)(1)LD:装入常开触点(Load)(2)LDN:装入常闭触点(LoadNot)(3)A:与常开触点(And)(4)AN:与常闭触点(AndNot)。(5)O:或常闭触点(Or)(6)ON:或常闭触点(OrNot)(7)NOT:触点取非(输出反相)(8)=:输出指令三、位逻辑指令2.基本逻辑指令逻辑关系梯形图助记符I0.0I0.1LDI0.0AI0.1=Q0.0LDI0.0OI0.1=Q0.0LDNI0.1=Q0.0与或非ANDORNOT当I0.0与I0.1都“ON”时,则输出Q0.0“ON”(1)。当I0.0或I0.0“ON”时,则输出Y0“ON”(1)当I0.1“OFF”时则输出Q0.0“ON”(1)Q0.0I0.0I0.1Q0.0Q0.0I0.1注意:与、或、非运算均是对该指令前面所有的ST指令的逻辑运算结果与该与、或、非指令的运算AI0.2是与图中A点处的结果(即I0.0与I0.1的结果)相或,而不是与I0.1相或。I0.0I0.2I0.1LDI0.0AI0.1OI0.2=Q0.0例:Q0.0逻辑关系梯形图助记符LDI0.0OI0.1LDI0.2OI0.3ALD=Q0.0LDI0.0AI0.1LDI0.2ANI0.3OLD=Q0.0当“I0.0或I0.1”与“I0.2或I0.3”都“ON”时,则输出Q0.0“ON”。栈装载与ALD(AndLoad)栈装载或OLD(OrLoad)当“I0.0与I0.1”或“I0.2与I0.3非”“ON”时,则输出Q0.0“ON”。I0.0I0.1I0.2I0.3Q0.0I0.0I0.2I0.1I0.3Q0.0例1:直接启动停车控制继电器控制电路图I/O分配:I0.0:停车I0.1:启动Q0.1:KM梯形图:语句表LDI0.1OQ0.0AI0.0=Q0.01LQ0.0Q0.1Q0.2Q0.31MI0.0I0.1I0.2I0.3KMFRSB1SB2L3KMM3~L1L2FRQS3PEKMKMSB2SB1FRFU2FU1Q0.0I0.0Q0.0I0.1I/O分配决定PLC的端子接线图PLC的端子接线方式又决定编程语言1LQ0.0Q0.1Q0.2Q0.31MI0.0I0.1I0.2I0.3KMFRSB1SB2I/O分配:I0.0:停车I0.1:启动Q0.1:KMQ0.0I0.0Q0.0I0.13.置位、复位指令I0.0Q0.1S1I0.1Q0.11RI0.0I0.1Q0.1I0.0Q0.1I0.0Q0.14.立即I/O指令—立即输入输出一个扫描周期输出映象寄存器Q1.1执行指令执行指令一个扫描周期输入映象寄存器I2.1输入端子I2.1输出端子Q1.1输入端子I2.3输出映象存器Q1.2输出端子Q1.2I2.1Q1.2I2.3Q1.1III执行立即输入指令时,立即读入物理输入点的值,但并不更新该物理输入点对应的输入过程映像寄存器。执行立即输出指令时,则将结果同时立即复制到物理输出点和相应的输出映象寄存器5.立即I/O指令—立即置位和复位指令I0.1I0.22Q2.0Q2.0SIRI2LDI0.1SIQ2.0,2RIQ2.0,2LDI0.2须指出:立即I/O指令是直接访问物理输入输出点的,比一般指令访问输入输出映象寄存器占用CPU时间要长,因而不能盲目地使用立即指令,否则,会加长扫描周期时间,反而对系统造成不利影响。立即置位、立即复位指令只能用于Q存储器(手册87页)四.编程中应注意的几个问题X0Y0X1Y0X1Y0X0Y0一、用电路变换简化程序(减少指令的条数)二、逻辑关系应尽量清楚(避免左轻右重)X3X2X5X4X6X8X7Y0X9X3X2X5X4X6X8X7Y0X9X5X6X2X2LDX2ANX3AX4LDX2AX5ANX6AX7OLDLDX2AX5ANX6AX8ANX9OLD=Y0ED三、避免出现无法编程的梯形图X5X1X3X2Y1X4Y2LDX3AX5OX1ANX2=Y1LDX1AX5OX3ANX4=Y2EDX1X3X2Y1X5X3X1X4Y2X5五、堆栈及堆栈操作指令堆栈的基本概念1.堆栈的基本概念2.程序执行对逻辑堆栈的影响指令AI0.2的执行程序执行对逻辑堆栈的影响本程序段用以介绍标准触点指令在梯形图、语句表和功能块图3种语言编程中的应用,仔细比较不同编程工具的区别与联系。其梯形图和语句表程序结构如图3.10所示。LDI0.0//装入常开触点OI0.1//或常开触点AI0.2//与常开触点=Q0.0//输出触点//如果本梯级中将I0.1的触点改//为Q0.0的常开触点,则成为电//机起动停止控制环节的梯形图。LDNI0.0//装入常闭触点ONI0.1//或常闭触点ANI0.2//