西门子PLC模块6ES7516-2PN00-0AB0技术参数
系统结构与功能
工厂产量监控查询系统的结构示意图如图1所
此主题相关图片如下:
该系统要实现的功能是可以任意查询一车间、二车间任何生产线(共26条生产线)在任何时段的产量。具体要求如下:1)每条生产线产量的数据至少能够保存4个月的储存期,以便对历史数据进行查询;2)能查询每条生产线任意月、天、小时、分钟的产量;3)能对任意一条生产线在任意时段的产量进行查询;4)查询结果能以特定的格式在报表中显示,同时将结果打印出来;5)各条生产线任意月、日、小时、分钟的产量可在电脑上以柱状图、实时趋势曲线的形式显示。
查询系统的查询方式可以实现:1)按照日期进行查询;2)按照时间进行查询;3)按照生产线进行查询;4)按照任意时间段进行查询;5)按照班次进行查询(早、中、晚班);6)查询任意月的任意车间、任意生产线的产量;7)可以运用第1)到第5)种不同的排列组合进行复杂的查询。
3 系统设计
该系统的设计是比较简单的,软、硬件选型配置如表1所示。
表1 系统软、硬件配置
此主题相关图片如下:
工厂产量监控查询系统的设计主要在于软件系统的设计,以下问题是考虑的重点。
1)两个车间共26条生产线,每分钟要有26条记录生成,每分钟向数据库插入26条记录。该系统全天24小时工作,不允许停,所以的数据量为37440条记录。每月的数据量为1160640条记录。如果要存储4个月,则数据量为4642260条记录。数据量是相当庞大的,硬盘的数据存储接近2-3G,不仅会造成在查询时,系统资源严重被占用,同时普通的数据库如ACCESS的表格没有能力管理如此庞大的数据系统。ACCESS在管理如此庞大的数据时,不仅系统会造成不稳定,同时会出现不可预料的情形。所以只能寻找能够管理大型数据系统的数据库,因此可以选择S或Oracle。
2)组态软件(组态王)支持对标准的数据库进行数据的插入、选择、删除等基本的操作,同时支持标准的SQL语言。灵活的运用该组态软件提供的SQL函数使监控系统通过ODBC(开放性的数据源)配合标准的SQL语言对数据库进行各种简单和复杂的操作。
3)即使使用大型的数据库,SQL Server或Oracle,由于每天的数据量多达37440条记录,如果将1个月,甚至是4个月的记录全部写入同一个数据库的同一个表格,则所有的数据量大的将使表格崩溃,即使数据库能够管理,查询的速度也是可想而知的,将会非常的慢。解决问题的思路是以系统的日期作为当天的表格名称。当系统时间为00:00:00时刻时,新建一个表格,通过S( DeviceID, "TableName", "TemplateName" )函数建立不同的表格,因为组态软件支持字符串函数。
4)查询条件比较复杂。为了完成如此复杂的查询,使用了Active控件,因为组态软件支持第三方控件,将所有的条件罗列出来进行排列组合,将每一种情况都考虑在内。然后通过程序来实现选择条件转换成S()函数工作的条件。因为工艺要求能够任意查询任意生产线在任意时段的产量,为了能够实现该功能,可以新建站点及站点变量(\\本站点\CX_Hour,\\本站点\CX_Minute,\\本站点\CX_Hour1,\\本站点\CX_Minute1)。在以时间段进行查询时,先将以前两个变量输入的时间做为条件进行查询,将查询出记录的数据赋给在过程中自定义的中间变量。然后再以后两个变量输入的时间作为条件进行查询,将查询出的结果同样赋给自定义的中间变量。将两次查询的结果求差,然后将日期、时间、车间生产线产量通过报表的组态添到表格当中。
5)对于月产量的查询。需要判断输入的月份有几天,然后从该月的天开始到后进行查询,查询的时刻为每的23:59分时各生产线的产量。然后对查询出的数据进行累加,直到该月的后。具体程序实现是按照特定的格式将数据填写到报表当中。
6)当查询的条件比较复杂时,有些条件不可能同时成立,因此,在选择条件时,要互相限制,以避免出现混乱现象。
7)工艺要求能够查询任意生产线每分钟的产量,可以通过事件发生命令实现,即每当系统时间的秒等于59时,触发执行相应程序。
8)在系统时间等于00:00:00时刻时,用事件命令建立相应程序,以得到需要新建表格的名称,并同时将PLC中累计产量的寄存器清零,重新开始对该日的产量进行累计。
4 系统调试考虑
针对本文讨论的特定工厂产量监控查询系统,在系统安装调试过程中有些问题是不能被忽略的。
1)因为两个车间之间的距离在300m左右,而从个车间到监控室的距离有500m左右,距离比较远,为了遏制信号的衰减,将信号线用网线代替,同时加中继器将信号放大。保证数据传输的安全性。
2)要求现场布线时严格按照电气规范施工,保证安装的合格。
3)正确的设置操作系统中数据源ODBC的选项,以保证监控系统能通过ODBC与数据库SQL Server连接。在运行监控系统执行任何操作时,观察运行反馈信息,以得到相关的错误信息,可根据提示的错误信息检查程序。
4)报表组态非常灵活,可以通过While{}循环语句,将查询结果按照顺序填写到报表中。灵活的运用While{}语句可将程序简化,减少监控系统后台运行程序的时间。
5)灵活运用应用程序命令、数据改变命令、事件命令、热键命令、按钮的弹起、按住、按下命令进行编程。
6)在程序量大的项目中应养成良好的编程习惯,定义变量时好使用英文对程序进行标注,以增加程序的可读性。
此主题相关图片如下:
系统经调试正常后,投入生产运行的产品产量柱状图如图2所示,产量的趋势图如图2所示。
5 结束语
尽管台达PLC属于小型PLC,但其性能可靠、支持485通讯等特点,足以完成集中控制的功能,配合组态软件实现复杂的工厂监控、数据查询、打印、报表等DCS系统的功能。
现代的世界是一个高度自动化的世界,各式各样的设备都可以和电脑连线,而简单的自动化连线方式就是使用串列通信。
VB提供了串列通信控制项可以让开发者开发串列通信的系统程序,功能上也提供了不少为用户着想的简便之处。
PLC是现在控制领域不可缺少的部分,已经非常普及,如何简便的与PLC交互已经成为众多厂商新的竞争战场。由此产生了人机接口、组态软件等产品。这些产品的产生大大简化了对PLC的控制,操作,使用更方便。但也有共同的缺点:价格过高和开发性较差。VB作为“原始"的编程语言在这两方面无疑有着明显的优势。
本文结合一个简单的案例,用比较基础的概念为大家展示如何通过VB实现PC-PLC的通信,对于初涉这个领域的工程师,也会受益与本文提供的基本概念。
一、串列通信基本概念
1、 通信的种类:通常通信的形式可以分为两种,并行通信(Parallel Communication)和串列通信(Serial Communication)。所谓并行,既是一次传输量为8位;而串列一次只传1位。这两种不同的通信方式如图
2、 串列通信
常用的串列通信也有两种。分别位RS-232和RS-485
2-1 RS-232
RS-232的信号准位乃是参考地线而来的,如图,传输端参考接地端1来传送资料;接收端则参考接地端2还原出传送端的信号准备。
由图可知,由于两个接地端准位不一定一样,而且很容易受到干扰,所以信号在RS-232线路传输时,很容易产生错误。
2-2 RS-485
RS-485的信号传输方式如图。
RS-485的信号将被传送出去时会分成正负两条线路,当到达接收端后,在将信号相减还原成原来的信号;如果将原始的信号表示成(DT),而被分成的信号分别标示成(D+)及(D-),则DT= (D+)-(D-)
同样地,接收端在接收到信号后,也依据上式还原成原来的样子。如果线路受到干扰,两条线路的信号分别为(D+)+Noise (D-)+Noise。接收端还原信号为
(DT)= [(D+)+Noise]-[ (D-)+Noise]
与先前结果一样,所以RS-485可以有效的防止杂讯的干扰。
二、Visual Basic基本概念
1、 VB是微软的视窗软件,提供了很多介面成员。物件、属性、事件、方法就是四个重要的介面。
2、 VB常用控制项。
2-1标签控制项
此控制项专用于显示文字,数位用,显示如图
2-2 按钮控制项
此控制项使用率很高,提供一个供系统用户操作用的按钮
2-3 计时器控制项
此控制项的大作用在于固定的时间内会执行所设置的程序码一次。
VB提供了大量的控制项,在此不一一叙述