SQL数据库和事务管理器在工业生产中的应用
供稿:Softing 中国
- 关键词:SQL,事务管理器
- 摘要:本文介绍了关系数据库在工业生产中的应用以及如何使用事务管理器将生产参数下载到PLC,以简化OT/IT融合过程。
本文介绍了关系数据库在工业生产中的应用以及如何使用事务管理器将生产参数下载到PLC,以简化OT/IT融合过程。
一 什么是配方(Recipe)
我们以一家汽车零件制造商的应用举例,该企业专业从事汽车轮毂生产制造。假设该轮毂的型号是“高级镁合金”,而关于其制造方式的描述则有多达数千个参数,例如尺寸、颜色、钻孔位置、孔的大小、轮毂辐条等等,这就是所谓的配方(Recipe)。
如果客户订购“黑色高级镁合金”或“灰色高级镁合金”,则其配方都会有所不同。因为配方是一组参数的集合,而这些数据的值是不固定的,并会根据生产线或客户订单进行调整。与用于执行重复任务的传统PLC的静态数据相比,这些可根据生产需求而实时变化的数据更为复杂。
配方不仅是一组参数的集合,还是处理复杂数据的一个优秀工具。然而,对于PLC而言,配方是以什么形式提供?答案是一张表格(如图1)。对于该轮毂制造示例,表格的每一行是一个配方,每一列都有配方的参数:油漆类型(PAINTTYPE)、油漆级别(PAINTLEVEL)等。
图1 通过配方,这种表格形式的参数集合,可以很好地处理复杂数据。而PLC在处理表格数据方面则面临了一些挑战,对此可使用SQL数据库来处理这种复杂数据。
为什么PLC在处理表格数据时会面临一些挑战?因为PLC的内存和性能是经过优化的,专门用于处理简单数据:生产流程、移动机器、移动产品、制造产品,而处理复杂数据则需更多内存,PLC难以满足——在PLC中,内存是相当珍贵的。
那么,什么平台能够很好地处理复杂的表格数据并减轻PLC的负担和风险呢?——SQL数据库。
二 SQL数据库的功能
什么是SQL数据库?您可将其想象为一张表格,而且您很可能已经拥有这样一个表格——您的IT部门经理或许已使用企业SQL数据库以在整个组织中共享信息(如图2)。因为企业需要在整个公司范围内共享信息,而SQL数据库正是为此而设计的。
例如,当接收到新订单后,该订单将被存入SQL数据库中。如果销售经理想要一份销售报告,他可从SQL数据库中获取该报告;如果生产部门需生产该订单产品,他们可从SQL数据库中获得订单的详细信息。此外,在零件生产完成后,其性能、质量等指标均可被存储在SQL数据库中。通过从SQL数据库中提取这些指标并分析数据之间的关系,可生成报告并优化生产流程。
图2 公司使用企业SQL数据库在整个组织中共享信息。(图片来源:https://www.youtube.com/watch?v=s4BwNbnsjm0)
SQL数据库经过安全优化,可严格限制数据存储与读取权限,因此只有经过批准的用户才能访问某些数据。SQL数据库运行在功能强大的PC服务器上,这些设备往往具有大内存、大存储等特点,不仅支持冗余、故障转移等功能,而且还支持从多个位置访问,以确保整个公司始终处于在线状态。
一般情况下,您可能会将配方或生产关键绩效指标(KPIs)和质量参数直接以常数的形式存储在PLC中,然而,PLC是专门处理业务逻辑的设备,若使用PLC来处理复杂数据,则将导致其性能达到极限,容易出现故障,发生计划外的中断。对此,您完全可利用工厂中现有的这些服务器和数据库,来减轻PLC的重负。
如何充分利用这一庞大资源——企业SQL数据库或设施中已有的其他数据库来减轻PLC的负担?接下来我们将从以下这三个方面来进行阐述:准备PLC、准备SQL数据库和准备事务管理器。
| 准备PLC
您需要在PLC中做一些准备工作,而无需在PLC中创建常数配方,比如,在您的PLC中有1000个常数×10种不同的车轮类型,您需要将这些常数更改为在PLC中的变量或用户定义数据类型(UDTs),用于存放从SQL数据库下载的配方,这样您将拥有一个逻辑代码库。当需要制造不同的零件时,您可从SQL数据库中下载新的配方到PLC,且这些新建的变量都将自动更新。
您如何更新PLC中的这些变量来制造10种轮毂中的任意一种呢?——这便需要发挥SQL数据库的作用。您可把1000个常数乘以10个车轮的数据存储在一个SQL数据库表中,并仅在需要时,才将SQL数据库中的数据下载到PLC,由此您的数据库服务器和事务管理器将承担存储和响应信息请求的任务,而PLC只需在读取到数据后进行它所擅长的逻辑控制处理即可。
如何准备企业SQL数据库呢?这就需要由工程师来引导管理SQL数据库的IT部门经理进行接下来的操作。以下将介绍IT部门经理需操作的内容。
| 创建SQL关系数据库
您的配方将存储在所谓的关系数据库中。为了让您的IT部门经理在SQL数据库中创建合适的表格,您需要向他/她提供三条信息:1)表头;2)配方名称;3)配方数据(如图3)。
图3 为了让IT经理创建SQL数据库,您需要向IT经理提供三部分信息:表头、配方名称和配方数据。
表头位于每一列的顶部,其只是您数据的一个简短描述或说是一个列标题。如果您使用Microsoft Excel作为建立模板的工具,则可从定义电子表格中的表头开始,然后将其放在每一列的顶部。
在SQL数据库中,每一行被称为一条记录(Record)。配方名称放在每一行的第一个单元格中,如图2所示。如果您有10个配方,那您将有10行或说10条记录。
为什么称之为记录?在关系数据库中,我们有四个主要的任务:插入(Insert)记录、选择(Select)记录、更新(Update)记录和删除(Delete)记录。
在我们的例子中,由于我们要从数据库里获取配方并将配方下载到PLC中,因此我们将使用“Select”命令。在您的配方电子表格中,需将配方名称放在每一行的第一个单元格中,最后需填写您的配方电子表格数据。这意味着,对于每个配方,您都要填写每一列的常数数据。至此,您的电子表格已包含有配方名称、列描述和数据——而这就是IT经理构建SQL表格所需的全部信息。
目前,我们已引导您完成了最难的部分——SQL数据库模板构建过程。SQL数据库的另一个极其实用的应用是“Insert”命令,而这恰好也是最容易使用的命令,因为无需修改PLC程序。通过使用“Insert”命令,我们可将PLC的值上传到数据库中。“Insert”主要用于在SQL数据库中存储PLC变量,例如,当我们需要查看KPI(关键绩效指标)或产品质量时,可将这些变量上传到SQL数据库中。
在PLC标签和SQL表格被创建后,如何在PLC和SQL数据库之间进行数据的双向传输?如何将配方从SQL数据库下载到PLC?对此,可通过使用事务管理器来轻松解决。
| 准备事务管理器(Transaction Manager)
事务管理器有什么作用?如果您需要下载一个配方到PLC,则可使用“Select”命令,从SQL数据库中获取配方......
请点击此处,查看剩余30%精彩内容!
| 往期回顾