7
惠州西门子授权代理商通讯电缆供应商
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) 调试结束。
|



该系统有输入、控制运算和输出三大部分组成。
1)输入部分包括操作按钮和信号检测两部分。
a.操作按钮用来人工设置参数或进行手动操作,处理紧急情况。
b.信号检测是由传感器自动监测生产线上机床的工作情况,一旦出现异常情况,马上报警提示操作者,以进行相应的故障处理,如紧急停机处理等,从而避免事故的发生。
2)控制运算部分
控制运算部分主要由PLC来完成,由控制系统的应用软件来完成信号的输入、处理、控制输出的主要功能。
3)输出部分包括报置、输送和动力装置、固定装置
a.报置由闪烁的红、黄、绿三种颜色灯和报警铃声构成,三种颜色分别对应三种不同报警级别。表示系统正常,黄色表示系统参数范围,但仍能工作,需要进行处理;红色报警并伴随报警声音,紧急停机处理。
b.输送装置由PLC输出的信号控制主电路,给电机发送指令,让其自动完成原料的传送与动力传送。
c.液压装置是固定装置,由PLC控制器给定的信号,经电磁阀控制液压设备,将原料固定在某一位置,为原料加工服务。
4.系统软件设计
4.1 PLC软件设计考虑的问题
利用梯形图编制控制程序,在 PLC软件设计中要考虑以下几个问题:
(1) 强电关断原则:在铣床软件设计中,只要控制信号中有强电关断的信号,则不管其它信号如何都要关断强电。如图2所示,只要关断信号 XO2=1,则中间继电器 M100 都要被关断。 (2) 动作互锁原则:有些控制不能同时动作,就要进行互锁。如主轴正、反转控制,图 3为主轴互锁控制示意图,任何一个回路启动后同时关断另一 个回路,从而保证两者不能同时动作
1. 引言
发电机是电力系统的重要组成部分,它的运行对于保证电力系统的稳定具有重要意义。发电机故障录波装置所记录的数据为工作人员正确分析发电机故障原因,研究事故对策,及时处理事故提供了的依据,同时,根据故障录波数据还可以分析系统的故障参数、各电气量的变化规律,进行故障定位等,这些对于保证电力系统的运行起着十分重要的作用。可编程控制器(Programmable Logic Controller,简称PLC)作为工业控制的计算机,由于其结构简单、性能优良,抗干扰性能好,性高,在机械、化工、橡胶、电力等行业工业控制现场已日趋广泛地得到应用,成为工控现场进行实时控制的主要的控制装置。本文介绍一种利用可编程控制器和扩展模拟量模块实现发电机故障录波的方法。
2. 系统的组成和工作原理
系统的组成框图如图1所示,由上位计算机和1套PLC测控系统组成。PLC通过外部变送器、互感器与发电机组相连,发电机机端电压U、定子电流I为三相交流电,分别经电压互感器(PT)和电流互感器(CT)转换成三相100V、的二次信号,发电机转子励磁电流经过分流器RS转换成75mV信号,再经过三相功率(含有功、无功)变送器、三相电压变送器、直流电流变送器转换成与其成比例的0~10V电压信号后输入到PLC的模拟量模块。模拟量经过 A/D转换,然后根据互感器、变送器的变换比例计算出机端电压U、转子电流If、有功功率P和无功功率Q的等机组运行量。PLC每隔20毫秒采样一次,每 40毫秒将采样的数据保存到故障数据区中。当发生故障后,PLC记录下故障发生以后的13秒数据,故障数据记录过程结束。当PLC接收到上位机发送来的传送命令时,PLC将记录的故障数据通过串口通讯传送给上位机。上位机将数据完整的接收下来,经过数据处理显示出机组运行量U、If、P、Q、Ug(电压给定)在故障前7秒、后13秒的波形曲线,这样就可以对发电机故障进行分析了。在本系统中,PLC选用SIMATIC S7-226;模拟量模块选用与 S7-226配套的产品EM235;PLC与计算机之间通过PC/PPI电缆连接以串行方式进行通讯。
3. 下位机程序设计
PLC属于下位机,其程序共分为3个模块,它们是初始化子程序、录波子程序和通信子程序。以下将分别说明各模块的设计思想。
3.1 初始化子程序
初始化子程序包括初始化自由口通信参数,设置接收命令RCV启动和结束条件,数据指针赋初值,连接20ms采样、接收和发送中断。
3.2 录波子程序
录波子程序在20ms采样中断中调用,负责记录机组运行量U、If、P、Q、Ug在故障前7秒、后13秒的数据。
在PLC中定义一个连续的数据区VW4000~VW8998,用来保存故障数据。每个运行量的数据占用1000字节的数据块,地址分配如下,U:VW4000~VW4998 If:VW5000~VW5998 P:VW6000~VW6998 Q:VW7000~VW7998 Ug:VW8000~VW8998。
录波子程序每隔40毫秒将采样的数据送到各自的数据块中。为每个数据块定义一个数据指针,其初始值分别指向各数据块的地址。每传送一次数据,各指针向下移动2字节。故障前7秒数据(350字节)是循环记录的,即如果在故障到来之前数据已存满,各数据指针将重新指向数据块的地址。定义指针index 用来记录20秒故障数据开始的位置。当故障到来时,数据指针指向故障后13秒数据(后650字节),此时指针index将前7秒数据分为前后两部分,正确的顺序是将前后两部分交换过来。当后13秒数据记录完后,录波子程序结束。程序流程图如图2所示。
3.3 通信子程序
通信子程序负责与上位机通信,将存储在数据区的故障数据通过串口分批传送给上位机。上位机每发送一次传送命令(用整数255表示),PLC在接收中断程序中判断收到的字符是否为传送命令,如果是则将传送命令标志M6.0置位并且在主程序中调用通信子程序。
定义指针tran_pointer用来指向待传送数据的地址,其初值为&VW4000,即指向数据区地址。定义变量count用来记录传送的次数。在通信子程序中,停止自由口的接收,然后将以指针tran_pointer为地址,大小200字节的数据传送到发送缓冲区中,接着用发送命令通过串口发送出去。每发送一次数据,将指针tran_pointer向下移动200字节,变量count值加1, M6.0复位。当上位机发送完 26次传送命令时,PLC中数据区VW4000~VW8998的5000个字节已发送完毕,再将额定电压、额定电流、额定有功功率、额定无功功率和指针 index发送出去, count值清零,指针tran_pointer重新初始化,M6.0复位。至此,一次完整的故障数据传送过程结束。
4. 上位机程序设计
上位机程序设计是以Visual Basic 6.0 为平台,利用MS Comm控件,以事件驱动方式实现计算机与PLC之间串行通讯,完成数据间的交换。上位机程序包括用户界面设计、通讯和数据处理程序、显示程序等。
4.1 用户界面设计
本系统中,设计了两个窗体(bbbb1和bbbb2)。其中bbbb1为主界面,bbbb2为波形显示界面。在bbbb1中设计了一个MSComm控件、一个定时器控件(Timer1)和两个按钮控件(Command1和Command2)。其中Command1是开始按钮,即按下时开始和PLC通讯,读取其中的数据。Command2是显示按钮,即按下时调用窗体bbbb2,显示每个运行量的波形曲线。在bbbb2中设计了一个图片框控件(Picture1),用来显示图形。
4.2 通讯和数据处理程序设计
设置Timer1 的Interval属性等于500,MSComm的bbbbbMode属性为二进制方式,RThreshold属性等于5010。定时器每隔500毫秒发送一次传送命令,当发送到26次时,关闭定时器,这时接收缓冲区将收到5010个字节的数据并触发MSComm的OnComm事件。在OnComm事件子程序中,将接收缓冲区中的数据依次分配到全局数组U_data、If_data、P_data、Q_data和Ug_data 中,再根据各运行量的额定值计算出百分比值。各个数组的前350字节需要根据指针Index进行调整,具体方法是将数组下标范围Index~349的数据移到,下标范围1~Index-1的数据移到后面。
4.3 显示程序设计
在窗体bbbb2的装载事件bbbb_Load中编写图形显示程序。在图片框控件Picture1中设置自定义坐标系。设置ScaleMode属性值等于3,即以象素为度量单位。然后在该坐标系下画出坐标轴。X轴以秒为单位,曲线上两点间的时间间隔是40毫秒,换算成象素等于1.47。Y轴以百分比为单位,每个单位刻度换算成象素等于2.1。后根据数组U_data、If_data、P_data、Q_data和Ug_data分别画出相应运行量的波形图。以机端电压波形为例,给出编写的程序如下:
Picture1.DrawWidth = 1 ‘线宽为1
Picture1.CurrentX = 0 ‘当前坐标的位置
Picture1.CurrentY = U_data(0) * 2.1
For i= 1 To 499 ‘画出曲线
Picture1.Line -(1.47 * i, U_data(i) * 2.1), vbBlue
Next i
5. 系统的运行与实验结果
在系统运行前,要对PLC的通讯参数进行设置,包括波特率、校验方式、数据位位数和停止位位数等,此设置要和上位机一致。在S7-226中使用自由口模式和上位机进行串口通信时,可以通过特殊寄存器SMB30(端口0)或SMB130(端口1)来设定。下面以发电机空载停机实验为例说明系统的运行过程。
当发电机在正常空载下停机时,PLC检测到停机信号,将故障标志置位,然后记录下停机后13秒的数据。运行上位机程序,在主界面上按下“传送”按钮后,上位机开始读取PLC中数据。等到程序提示“数据传送完毕”后,按下“显示”按钮,将弹出“波形显示”窗口如图3所示。从图中可以看出,该曲线较好的反映了发电机停机前后机端电压、励磁电流的变化
1. 引言
发电机是电力系统的重要组成部分,它的运行对于保证电力系统的稳定具有重要意义。发电机故障录波装置所记录的数据为工作人员正确分析发电机故障原因,研究事故对策,及时处理事故提供了的依据,同时,根据故障录波数据还可以分析系统的故障参数、各电气量的变化规律,进行故障定位等,这些对于保证电力系统的运行起着十分重要的作用。可编程控制器(Programmable Logic Controller,简称PLC)作为工业控制的计算机,由于其结构简单、性能优良,抗干扰性能好,性高,在机械、化工、橡胶、电力等行业工业控制现场已日趋广泛地得到应用,成为工控现场进行实时控制的主要的控制装置。本文介绍一种利用可编程控制器和扩展模拟量模块实现发电机故障录波的方法。
2. 系统的组成和工作原理
系统的组成框图如图1所示,由上位计算机和1套PLC测控系统组成。PLC通过外部变送器、互感器与发电机组相连,发电机机端电压U、定子电流I为三相交流电,分别经电压互感器(PT)和电流互感器(CT)转换成三相100V、的二次信号,发电机转子励磁电流经过分流器RS转换成75mV信号,再经过三相功率(含有功、无功)变送器、三相电压变送器、直流电流变送器转换成与其成比例的0~10V电压信号后输入到PLC的模拟量模块。模拟量经过 A/D转换,然后根据互感器、变送器的变换比例计算出机端电压U、转子电流If、有功功率P和无功功率Q的等机组运行量。PLC每隔20毫秒采样一次,每 40毫秒将采样的数据保存到故障数据区中。当发生故障后,PLC记录下故障发生以后的13秒数据,故障数据记录过程结束。当PLC接收到上位机发送来的传送命令时,PLC将记录的故障数据通过串口通讯传送给上位机。上位机将数据完整的接收下来,经过数据处理显示出机组运行量U、If、P、Q、Ug(电压给定)在故障前7秒、后13秒的波形曲线,这样就可以对发电机故障进行分析了。在本系统中,PLC选用SIMATIC S7-226;模拟量模块选用与 S7-226配套的产品EM235;PLC与计算机之间通过PC/PPI电缆连接以串行方式进行通讯
3. 下位机程序设计
PLC属于下位机,其程序共分为3个模块,它们是初始化子程序、录波子程序和通信子程序。以下将分别说明各模块的设计思想。
3.1 初始化子程序
初始化子程序包括初始化自由口通信参数,设置接收命令RCV启动和结束条件,数据指针赋初值,连接20ms采样、接收和发送中断。
3.2 录波子程序
录波子程序在20ms采样中断中调用,负责记录机组运行量U、If、P、Q、Ug在故障前7秒、后13秒的数据。
在PLC中定义一个连续的数据区VW4000~VW8998,用来保存故障数据。每个运行量的数据占用1000字节的数据块,地址分配如下,U:VW4000~VW4998 If:VW5000~VW5998 P:VW6000~VW6998 Q:VW7000~VW7998 Ug:VW8000~VW8998。
录波子程序每隔40毫秒将采样的数据送到各自的数据块中。为每个数据块定义一个数据指针,其初始值分别指向各数据块的地址。每传送一次数据,各指针向下移动2字节。故障前7秒数据(350字节)是循环记录的,即如果在故障到来之前数据已存满,各数据指针将重新指向数据块的地址。定义指针index 用来记录20秒故障数据开始的位置。当故障到来时,数据指针指向故障后13秒数据(后650字节),此时指针index将前7秒数据分为前后两部分,正确的顺序是将前后两部分交换过来。当后13秒数据记录完后,录波子程序结束。程序流程图如图2所示。
3.3 通信子程序
通信子程序负责与上位机通信,将存储在数据区的故障数据通过串口分批传送给上位机。上位机每发送一次传送命令(用整数255表示),PLC在接收中断程序中判断收到的字符是否为传送命令,如果是则将传送命令标志M6.0置位并且在主程序中调用通信子程序。
定义指针tran_pointer用来指向待传送数据的地址,其初值为&VW4000,即指向数据区地址。定义变量count用来记录传送的次数。在通信子程序中,停止自由口的接收,然后将以指针tran_pointer为地址,大小200字节的数据传送到发送缓冲区中,接着用发送命令通过串口发送出去。每发送一次数据,将指针tran_pointer向下移动200字节,变量count值加1, M6.0复位。当上位机发送完 26次传送命令时,PLC中数据区VW4000~VW8998的5000个字节已发送完毕,再将额定电压、额定电流、额定有功功率、额定无功功率和指针 index发送出去, count值清零,指针tran_pointer重新初始化,M6.0复位。至此,一次完整的故障数据传送过程结束。
上位机程序设计是以Visual Basic 6.0 为平台,利用MS Comm控件,以事件驱动方式实现计算机与PLC之间串行通讯,完成数据间的交换。上位机程序包括用户界面设计、通讯和数据处理程序、显示程序等。
4.1 用户界面设计
本系统中,设计了两个窗体(bbbb1和bbbb2)。其中bbbb1为主界面,bbbb2为波形显示界面。在bbbb1中设计了一个MSComm控件、一个定时器控件(Timer1)和两个按钮控件(Command1和Command2)。其中Command1是开始按钮,即按下时开始和PLC通讯,读取其中的数据。Command2是显示按钮,即按下时调用窗体bbbb2,显示每个运行量的波形曲线。在bbbb2中设计了一个图片框控件(Picture1),用来显示图形。
4.2 通讯和数据处理程序设计
设置Timer1 的Interval属性等于500,MSComm的bbbbbMode属性为二进制方式,RThreshold属性等于5010。定时器每隔500毫秒发送一次传送命令,当发送到26次时,关闭定时器,这时接收缓冲区将收到5010个字节的数据并触发MSComm的OnComm事件。在OnComm事件子程序中,将接收缓冲区中的数据依次分配到全局数组U_data、If_data、P_data、Q_data和Ug_data 中,再根据各运行量的额定值计算出百分比值。各个数组的前350字节需要根据指针Index进行调整,具体方法是将数组下标范围Index~349的数据移到,下标范围1~Index-1的数据移到后面。
4.3 显示程序设计
在窗体bbbb2的装载事件bbbb_Load中编写图形显示程序。在图片框控件Picture1中设置自定义坐标系。设置ScaleMode属性值等于3,即以象素为度量单位。然后在该坐标系下画出坐标轴。X轴以秒为单位,曲线上两点间的时间间隔是40毫秒,换算成象素等于1.47。Y轴以百分比为单位,每个单位刻度换算成象素等于2.1。后根据数组U_data、If_data、P_data、Q_data和Ug_data分别画出相应运行量的波形图。以机端电压波形为例,给出编写的程序如下:
Picture1.DrawWidth = 1 ‘线宽为1
Picture1.CurrentX = 0 ‘当前坐标的位置
Picture1.CurrentY = U_data(0) * 2.1
For i= 1 To 499 ‘画出曲线
Picture1.Line -(1.47 * i, U_data(i) * 2.1), vbBlue
Next i
5. 系统的运行与实验结果
在系统运行前,要对PLC的通讯参数进行设置,包括波特率、校验方式、数据位位数和停止位位数等,此设置要和上位机一致。在S7-226中使用自由口模式和上位机进行串口通信时,可以通过特殊寄存器SMB30(端口0)或SMB130(端口1)来设定。下面以发电机空载停机实验为例说明系统的运行过程。
当发电机在正常空载下停机时,PLC检测到停机信号,将故障标志置位,然后记录下停机后13秒的数据。运行上位机程序,在主界面上按下“传送”按钮后,上位机开始读取PLC中数据。等到程序提示“数据传送完毕”后,按下“显示”按钮,将弹出“波形显示”窗口如图3所示。从图中可以看出,该曲线较好的反映了发电机停机前后机端电压、励磁电流的变化。