7
西门子6ES7315-2EH14-0AB0功能介绍
1 引言
在现代化的工业生产设备中,有大量的数字量及模拟量的控制装置,例如电机的启停,电磁阀的开闭,产品的计数,温度、压力、流量的设定与控制等,而PLC技术是解决上述问题的有效、便捷的工具,因此PLC在工业控制领域得到了广泛的应用。下面就PLC工业控制系统设计中的问题进行探讨。
2 PLC系统设备选型
PLC主要的目的是控制外部系统。这个系统可能是单个机器,机群或一个生产过程。不同型号的PLC有不同的适用范围。根据生产工艺要求,分析被控对象的复杂程度,进行I/O点数和I/O点的类型(数字量、模拟量等)统计,列出清单。适当进行内存容量的估计,确定适当的留有余量而不浪费资源的机型(小、中、大形机器)。并且结合市场情况,考察PLC生产厂家的产品及其售后服务、技术支持、网络通信等综合情况,选定价格性能比较好的PLC机型。
目前市场上的PLC产品众多,国外有德国的SIEMENS;日本的 OMRON、MITSUBISHI、FUJI、Panasonic;美国的GE;韩国的LG等。国产有研华、研祥、合力时等。近几年,PLC产品的价格有较大的下降,其性价比越来越高。PLC 的选型应从以下几个方面入手。
2.1 确定PLC 控制系统的规模
依据工厂生产工艺流程和复杂程度确定系统规模的大小。可分为大、中、小三种规模。
小规模PLC控制系统:单机或者小规模生产过程,控制过程主要是条件、顺序控制,以开关量为主,并且I/O点数小于128 点。一般选用微型PLC,如SIEMENS S7-200等。
中等规模PLC控制系统:生产过程是复杂逻辑控制和闭环控制,I/O点数在128——512 点之间。应该选用具有模拟量控制、PID控制等功能的PLC,如SIEMENS S7-300等。
大规模PLC控制系统:生产过程是大规模过程控制、DCS系统和工厂自动化网络控制,I/O点数在512点以上。应该选用具有通信联网、智能控制、数据库、中断控制、函数运算的PLC,如SIEMENS S7-400等, 再和工业现场总线结合实现工厂工业网络的通讯和控制。
2.2 确定PLC I/O 点的类型
根据生产工艺要求,分析被控对象的复杂程度,进行I/O点数和I/O点的类型(数字量、模拟量等)统计,列出清单。适当进行内存容量的估计,确定适当的留有软硬件资源余量而不浪费资源的机型(小、中、大型机器)。
根据PLC输出端所带的负载是直流型还是交流型,是大电流还是小电流,以及PLC输出点动作的频率等,从而确定输出端采用继电器输出,还是晶体管输出,或品闸管输出。不同的负载选用不同的输出方式,对系统的稳定运行是很重要的。
电磁阀的开闭、大电感负载、动作频率低的设备,PLC输出端采用继电器输出或者固态继电器输出;各种指示灯、变频器/数字直流调速器的启动/停止应采用晶体管输出。
2.3 确定PLC编程工具
(1) 一般的手持编程器编程。 手持编程器只能用商家规定语句表中的语句表(STL)编程。这种方式效率低,但对于系统容量小、用量小的产品比较适宜,具有体积小、价格低、易于现场调试等优点。 这主要用于微型PLC的编程。
(2) 图形编程器编程。图形编程器采用梯形图(LAD)编程,方便直观,一般的电气人员短期内就可应用自如,但该编程器价格较高,主要用于微型PLC和中档PLC。
(3) 计算机加PLC软件包编程 。这种方式是效率的一种方式,但大部分公司的PLC 开发软件包价格昂贵,并且该方式不易于现场调试,主要用于中PLC系统的硬件组态和软件编程。
3 PLC控制系统的设计
PLC 控制系统设计包括硬件设计和软件设计。
3.1 PLC控制系统的硬件设计
硬件设计是PLC控制系统的至关重要的一个环节,这关系着PLC控制系统运行的性、性、稳定性。主要包括输入和输出电路两部分。
(1) PLC控制系统的输入电路设计。PLC供电电源一般为AC85—240V,适应电源范围较宽,但为了抗干扰,应加装电源净化元件(如电源滤波器、1:1隔离变压器等);隔离变压器也可以采用双隔离技术,即变压器的初、次级线圈屏蔽层与初级电气中性点接大地,次级线圈屏蔽层接PLC 输入电路的地,以减小高低频脉冲干扰。
PLC输入电路电源一般应采用DC 24V, 同时其带负载时要注意容量,并作好防短路措施,这对系统供电和PLC至关重要,因为该电源的过载或短路都将影响PLC的运行,一般选用电源的容量为输入电路功率的两倍,PLC输入电路电源支路加装适宜的熔丝,防止短路。
(2) PLC控制系统的输出电路设计。依据生产工艺要求,各种指示灯、变频器/数字直流调速器的启动停止应采用晶体管输出,它适应于高频动作,并且响应时间短;如果PLC 系统输出频率为每分钟6 次以下,应继电器输出,采用这种方法,输出电路的设计简单,抗干扰和带负载能力强。
如果PLC输出带电磁线圈等感性负载,负载断电时会对PLC的输出造成浪涌电流的冲击,为此,对直流感性负载应在其旁边并接续流二管,对交流感性负载应并接浪涌吸收电路,可有效保护PLC。
当PLC扫描频率为10次/min 以下时,既可以采用继电器输出方式,也可以采用PLC输出驱动中间继电器或者固态继电器(SSR),再驱动负载。
对于两个重要输出量,不仅在PLC内部互锁,建议在PLC外部也进行硬件上的互锁,以加强PLC系统运行的性、性。
对于常见的AC220V交流开关类负载,例如交流接触器、电磁阀等,应该通过DC24V微小型中间继电器驱动,避免PLC的DO接点直接驱动,尽管PLC手册标称具有AC220V交流开关类负载驱动能力。
(3) PLC控制系统的抗干扰设计。随着工业自动化技术的日新月异的发展,晶闸管可控整流和变频调速装置使用日益广泛,这带来了交流电网的污染,也给控制系统带来了许多干扰问题,防干扰是PLC控制系统设计时考虑的问题。一般采用以下几种方式:
隔离:由于电网中的高频干扰主要是原副边绕组之间的分布电容耦合而成,所以建议采用1:1隔离变压器,并将中性点经电容接地。
屏蔽:一般采用金属外壳屏蔽,将PLC系统内置于金属柜之内。金属柜外壳接地,能起到良好的静电、磁场屏蔽作用,防止空间辐射干扰。
布线:强电动力线路、弱电信号线分开走线,并且要有一定的间隔;模拟信号传输线采用双绞线屏蔽电缆。
3.2 PLC 控制系统的软件设计
在进行硬件设计的同时可以着手软件的设计工作。软件设计的主要任务是根据控制要求将工艺流程图转换为梯形图,这是PLC应用的关键的问题,程序的编写是软件设计的具体表现。在控制工程的应用中,良好的软件设计思想是关键,的软件设计便于工程技术人员理解掌握、调试系统与日常系统维护。
(1) PLC控制系统的程序设计思想。由于生产过程控制要求的复杂程度不同,可将程序按结构形式分为基本程序和模块化程序。
基本程序:既可以作为立程序控制简单的生产工艺过程,也可以作为组合模块结构中的单元程序;依据计算机程序的设计思想,基本程序的结构方式只有三种:顺序结构、条件分支结构和循环结构。
模块化程序:把一个总的控制目标程序分成多个具有明确子任务的程序模块,分别编写和调试,后组合成一个完成总任务的完整程序。这种方法叫做模块化程序设计。我们建议经常采用这种程序设计思想,因为各模块具有相对立性,相互连接关系简单,程序易于调试修改。特别是用于复杂控制要求的生产过程。
(2) PLC控制系统的程序设计要点。PLC控制系统I/O分配,依据生产流水线从前至后,I/O点数由小到大;尽可能把一个系统、设备或部件的I/O信号集中编址,以利于维护。定时器、计数器要统一编号,不可重复使用同一编号,以确保PLC工作运行的性。
程序中大量使用的内部继电器或者中间标志位(不是I/O位),也要统一编号,进行分配。
在地址分配完成后,应列出I/O分配表和内部继电器或者中间标志位分配表。
彼此有关的输出器件,如电机的正/反转等,其输出应连续安排,如Q2.0/Q2.1等。
(3) PLC控制系统编程技巧。PLC程序设计的原则是逻辑关系简单明了,易于编程输入,少占内存,减少扫描时间,这是PLC 编程遵循的原则。下面介绍几点技巧。
PLC各种触点可以多次重复使用,用复杂的程序来减少触点使用次数。
同一个继电器线圈在同一个程序中使用两次称为双线圈输出,双线圈输出容易引起误动作,在程序中尽量要避免线圈重复使用。如果是双线圈输出,可以采用置位和复位操作(以S7-300为例如SQ4.0或者 RQ4.0)。
如果要使PLC多个输出为固定值 1 (常闭),可以采用字传送指令完成,例如 Q2.0、Q2.3、Q2.5、Q2.7同时都为1,可以使用一条指令将十六进制的数据0A9H直接传送QW2即可。
对于非重要设备,可以通过硬件上多个触点串联后再接入PLC输入端,或者通过PLC编程来减少I/O点数,节约资源。例如:我们使用一个按钮来控制设备的启动/停止,就可以采用二分频来实现。
模块化编程思想的应用:我们可以把正反自锁互锁转程序封装成为一个模块,正反转点动封装成为一个模块,在PLC程序中我们可以重复调用该模块,不但减少编程量,而且减少内存占用量,有利于大型PLC 程序的编制。
4 PLC控制系统程序的调试
PLC控制系统程序的调试一般包括I/O端子测试和系统调试两部分内容,良好的调试步骤有利于加速总装调试的过程。
4.1 I/O端子测试
用手动开关暂时代替现场输入信号,以手动方式逐一对PLC输入端子进行检查、验证,PLC输入端子的指示灯点亮,表示正常;反之,应检查接线或者是I/O点坏。
我们可以编写一个小程序,在输出电源良好的情况下,检查所有PLC输出端子指示灯是否全亮。PLC输入端子的指示灯点亮,表示正常。反之,应检查接线或者是I/O点坏。
4.2 系统调试
系统调试应按控制要求将电源、外部电路与输入输出端子连接好,然后装载程序于PLC中,运行PLC进行调试。将PLC与现场设备连接。在正式调试前检查整个PLC控制系统,包括电源、接地线、设备连接线、I/O连线等。在保证整个硬件连接正确无误的情况下即可送电。
把PLC控制单元的工作方式设置为“RUN”开始运行。反复调试可能出现的各种问题。在调试过程中也可以根据实际需求对硬件作适当以配合软件的调试。应保持足够长的运行时间使问题充分暴露并加以纠正。调试中多数是控制程序问题。一般分以下几步进行:
(1) 对每一个现场信号和控制量做单测试;
(2) 检查硬件/修改程序;
(3) 对现场信号和控制量做综合测试;
(4) 带设备调试;
(5) 调试结束。
5 结束语
PLC控制系统的设计是一个步骤有序的系统工程,要想做到熟练自如,需要反复设计和实践。本文是PLC控制系统的设计和实践经验的总结,在实际应用中具有良好的效果。



现代燃油燃烧机多为自动控制式的燃烧机,一般采用工业程序控制器、火焰检测器以及温度传感器等组成自动控制系统。 本系统可以对燃烧机燃烧火焰状况进行适时调节,既可单调风门、 也可以单调整油门、还可以风油门联动,进行风、油比例调整。具有手动/自动控制功能,并能与计算机进行实时通信。适用于各种工业锅炉。适用燃料为:柴油、重油、渣油、及各种气体燃料,并可单烧油、单烧气、油气混烧。
一、燃油燃烧器工艺流程图
系统启动 ↓ 关闭风门、油门 ↓ 风机启动 ↓ 打开风门 ↓ 吹扫炉膛 ↓ 关闭风门 ↓ 开启油泵 ↓ 点火 ↓ (点 火不成功)火焰检测→报警→故障显示→打开风门→ 后吹扫→ 停机 ↓ (点火成功)开启油门调节阀至设定值 ↓ 开启电磁阀 5秒后开启风门 ↓ 正常燃烧 ↓ 按设定温度值自动控制燃 烧过程 系统停止 ↓ 关闭电磁阀 ↓ 关闭油泵 ↓ 打开风门 ↓ 后吹扫 ↓ 停机 ↓
燃油燃烧器的控制要求:
1、本控制器启动与停止均为一键式,有手动和自动两种控制方式,并能自由 转换。
2、屏显内容包括:当前温度、风油门开度、目标值显示、故障自诊等。
3、在手动控制状态下能单控制风机、油泵、油门大、油门小、风门大、风门小、电点火、电磁阀等设备。
4、温度控制能保证在目标值±3℃范围内,并具有温报警保护措施(报警温度可由用户自由设定)。
5、本控制器备有计算机通讯接口,能与沥青搅拌机联机操作。
6、本控制器包含有温
度、火焰等传感器及其检测系统。
二、控制器选型说明:
根据以上要求,从成本上和性能上以及用户持续工艺改进及必要的产权保护上,进行综合考虑,选用科威公司的混合型PLC (EASY-M0808R-A0404NB)作为燃油燃烧控制器 。 该混合型PLC将开关量的处理和模拟量的处理组合在同一个PLC里,很好的实现了逻辑控制和过程控制,对于既有开关量又有模拟量的控制场合,有的优势。所以在燃油燃烧器的控制过程中EASY-M0808R-A0404NB可以很好的满足其工艺要求。 混合型通用可编程控制器具有 PLC 所有功能,用户工艺可用梯形图语言编程 ,编程软件兼容三菱 FX2N 编程软件。
其功能特点如下:
1、4路模拟信号输入,信号类型0-60毫伏,采用12位数值计数。
2、4路模拟信号输出,信号类型0-20毫安,采用12位数值计数。
3
、8点开关量输入
4、8点开关量输出
5、具有梯形图编程接口,可连接计算机或人机界面。
6、支持CANBUS和RS485网络,可作CAN网络或RS485的主站或从站。
7、与远程模块Easy-FT配接,
实现远程数据访问
三、硬件接线图输入输出口定义:
1、E分度热电偶接:AX0+,AX0-
2、风门调节阀接:AY0+,AY0-(4~20mA)——D20
3、油门调节阀接:AY1+,AY1-(4~20mA)——D21
4、风机控制接:Y0
5、油泵控制接:Y1
6、电磁阀控制接:Y2
7、点火控制接:Y3
8、报警输出接:Y4
9、火焰检测输入:X1(M61) ON——亮,OFF——熄面板变量: M50:启动 M51:停 止 M52:手动/自动 M53:风机控制 M54:油泵控制 M55:风门+ M56:风门- M57:油门+ M58:油门-FR01 FR02 M59:电磁阀控制 M60:电点火
四、软件实现说明
1.自动部分:结合工艺 要求,主程序采用步进阶梯指令编程,作用是实现工艺流程,自动按要求完成燃烧全过程。
2.手动部分:作用主要是用来进行设备调试及应急运行的。用通用梯形图指令编写。
3.相关子 程序部分: P124:温度变换子程序 P125:输出转换子程序 P126:AD值采样滤波子程序。 P123:温度控制自动调节子程序
4.人机界面程序及功能手自动的调节参数的设置温度压力的显示 燃烧器工艺流程显示
五、总结
1、通用性强,开发廉。
2、工艺保密性好,可以自己加密,自己编写程序,知识产权得到维护。
3、网络互连,也可以通过网络进行交流。
4、本程序梯形图可回电索取。
在现代工业控制系统中,PLC以其高性、适应工业过程现场、强大的联网功能等特点,被广泛应用。可实现顺序控制、PID回路调节、高速数据采集分析、计算机上位管理,是实现机电一体化的重要手段和发展方向。但PLC无法单构成完整的控制系统,无法进行复杂的运算和显示各种实时控制图表和曲线,好的用户界面,不便于监控。将个人计算机(PC)与PLC结合起来使用,可以使二者优势互补,充分利用个人计算机强大的人机接口功能、丰富的应用软件和低廉的价格优势,组成价格比的控制系统。
1.系统构成
推进系统中,PC机选用工控计算机。它是整个控制系统的,是上位机。其主要利用良好的图形用户界面,显示从PLC接收的开关量和控制手柄的位置,进行一些较复杂的数据运算,并且向PLC发出控制指令。
PLC是该系统的下位机,负责现场高速数据采集(控制手柄的位置),实现逻辑、定时、计数、PID调节等功能,通过串行通讯口向PC机传送PLC工作状态及有关数据,同时从PC机接受指令,向蜂鸣器、指示灯、滑油泵、控制手柄的位置等发出命令,实现PC机对控制系统的管理,提高了PLC的控制能力和控制范围,使整个系统成为集散控制系统。
2.通讯协议
计算机与PLC之间的通信是建立在以RS232标准为基础的异步双向通信上的,FX系列PLC有其特定的通信格式,整个通信系统采用上位机主动的通信方式,PLC内部不需要编写专门的通信程序,只要把数据存放在相应的数据寄存器中即可,每个数据寄存器都有相应的物理通信地址,通信时计算机直接对物理通信地址进行操作。通信过程中,传输字符和命令字以ASCⅡ码为准,常用的字符及其ASCⅡ码对应关系。
计算机与PLC进行通讯时,计算机与PLC之间是以帧为单位进行信息交换的,其中控制字符ENQ、ACK、NAK,可以构成单字符帧发送和接受,其余的信息帧发送和接受时都是由字符STX、命令字、数据、字符ETX以及和校验5部分组成。
校验和在信息帧的尾部用来判断传输的正确与否,和校验码的计算方法是将命令码到ETX之间的所有字符的ASCⅡ码(十六进制数)相加,取所得和的2位数,在后面的通信程序设计里面还会提到。进行差错检验的方法很多,常用的有奇偶校验码,水平垂直冗余校验LRC,目前广泛使用的是CRC校验码,它能查处99%以上18位或长的错误,而在计算机与PLC点对点的短距离通讯时,出错的几率较小,因而采用校验和法,基本能满足要求。
3.多线程技术及在VC++串口通信程序中的实现
在bbbbbbs的一个进程内,包含一个或多个线程,每个线程共享所有的进程资源,包括打开的文件、信号标识及动态分配的内存等等。
一个进程内的所有线程使用同一个32位地址空间,而这些线程的执行由系统调度程序控制,调度程序决定哪个线程可执行和什么时候执行线程。线程有级别,权较低的线程等到权较高的线程执行完任务后再执行。在多处理器的机器上,调度程序可以把多个线程放到不同的处理器上运行,这样可以使处理器的任务平衡,也提高系统的运行效率。
bbbbbbs内部的抢先调度程序在活动的线程之间分配CPU时间,bbbbbbs区分两种不同类型的线程,一种是用户界面线程(UserInterfaceThread),它包含消息循环或消息泵,用于处理接收到的消息;另一种是工作线程(WorkThread)它没有消息循环,用于执行后台任务、监视串口事件的线程即为工作线程。
本系统采用MFC编程方法,MFC是把串口作为文件设备来处理的,它用CreateFile()打开串口,并获得一个串口句柄,用SetCommState()进行端口配置,包括缓冲区设置,时设置和数据格式等。然后调用函数ReadFile()和WriteFile()进行数据的读写,用WaitForSinglebbbbbb()监视通信事件。在用ReadFile()和WriteFile()读写串口时,一般采用重叠方式。因为同步I/O方式是当程序执行完毕才返回,这样会阻塞其他线程,降低程序执行效率。而重叠方式能使调用的函数立即返回,I/O操作在后台进行,这样线程就可以处理其他事务,同时也实现了线程在同一串口句柄上实现读写操作。
使用重叠I/O方式时,线程要创建OVERLAPPED结构供读写函数使用,该结构重要的成员是hEvent事件句柄。它将作为线程的同步对象使用,读写函数完成时hEvent处于有信号状态,表示可进行读写操作;读写函数未完成时,hEvent被置为无信号。
利用bbbbbbs的多线程技术,在辅助线程中监视串口,有数据到达时依靠事件驱动,读入数据并向主线程;并且,依靠重叠读写操作,让串口读写操作在后台运行。
4.上位计算机通信程序设计
以读取PLC输出线圈Y0为的2个字节的数据为例,编写一个通信程序。查PLC软元件表可知,输出线圈Y0的为00A0H,2个字节的数据即为Y0-Y7和Y10-Y17,根据返回的数据,就可以知道PLC此时的状态,以实现对PLC的监控。在每一次读操作之前,先要进行握手联络。对PLC发请求讯号ENQ,然后读PLC的响应讯号。如果读到的响应讯号为ACK,则表示PLC已准备就绪,等待接收通讯数据。
BOOLCPlcComDlg::ReadFromPLC(char*Read_char,char*Read_address,intRead_bytes)
{CSerialSerial;//用于串行通讯的类
if(Serial.Open(1))//初始化串行通讯口COM1
{Serial.SendData(&ENQ_request,1);//发送联络讯号
Sleep(20);//等待20ms秒
Serial.ReadData(&read_BUFFER,1);//读取PLC响应讯号
if(read_BUFFER==ACK){
……
Serial.SendData(&STX_start,1);//向PLC发送“开始”标志代码
Serial.SendData(&CMD0_read,1);//发送“读”命令代码
datasum_check+=CMD0_read;
for(i=0;i<4;i++){
Serial.SendData(&Read_address[i>,1);//发送起始元件地址的ASCⅡ代码
……
Serial.SendData(&ETX_end,1);//发送结束标志代码
Change_to_ASCII(senddatasum_CHECK,datasum_check);//将“和”转化成ASCⅡ代码
Sleep(40);//等待PLC的反应
……
Serial.ReadData(&Read_char[i>,1);//读Read_bytes个字节
if(*readdatasum_CHECK==*readdatasum_check)//“和”效验
{AfxMessageBox("数据读取成功!");
returnTRUE;}
else{AfxMessageBox("校验错误!");
returnFALSE;}}
}
5.结束语
本文作者点:笔者提出了一种基于多线程的PC机与PLC的通讯,该通讯程序采用VC比用VB具有好的实时性;并采用MFC编程方法用重叠结构读写串口,使串口读写在后台进行。该通讯程序、可移植性好。
本通讯程序作为该系统的一个重要组成部分,经现场调试证明,既简单又实用,具有很好的实用。同时,该系统具有直观的人机界面和方便的操作方式,具有广阔的应用前景。