php发展

首页 » 常识 » 诊断 » 从零开始基于西门子PLC用C通过OPC
TUhjnbcbe - 2021/7/4 20:31:00
北京治疗白癜风的费用多少钱 https://mjbk.familydoctor.com.cn/bjbdfyy/zn/

前面讲了很多汽车行业的案例,也讲了很多汽车行业的标准,比如西门子SICAR,戴姆勒Integra,大众VASS等(见文末)~

对于汽车四大工艺(冲、焊、涂、总)而言,车间的能源管控起着至关重要的作用~

而节能通常意味着设备运行状态的优化,而优化通常意味着大量的数据分析。在这个过程中,数据的采集和分析就变得越来越重要

今天分享的内容是来自一汽大众一个朋友做的内部真实项目案例~

01项目背景与目的

02实现思路与分析

03五步详述数据采集与简易能源管理系统的实现

04总结

01PART项目背景与目的项目背景:在汽车四大工艺中,笔者所在车间能耗极高,每年都有一定节能指标,如何科学有效的使用技术和数字化手段节能是车间考虑的首要因素之一

通过这个系统实现以下目的:

车间水电气的消耗(瞬时、累计)记录

相同设备参数对比分析、优化设备运行状态

同一设备不同时期的对比分析、优化设备运行状态

设备运行时的(水、气)理论的消耗值和实际消耗值的偏差

02PART实现思路,系统结构与步骤分析

以下示意图即为整个过程的大概思路:

系统结构:

实施步骤:

Step-1

主要涉及到仪表数据的读取,如(流量、压力、温度、PH、电导率等等),目前所接触到的这些仪表都是通过模拟量或数字量信号输入给PLC。PLC通过FB或FC对这些信号进行处理。

Step-2

涉及到上位机和PLC的通讯,通常采用OPC的方式,也可以通过高级语言(C#、VB.net、JAVA)等实现和PLC的通讯。snap7.dll、sharp7.cs、libnodave.dll等都是免费开源的,这些也都可以配合高级语言实现与PLC的通讯。

Step-3

实现和PLC通讯后,将DB块中的数据存入数据库中。在Step-1中可以设置采样周期等相关参数。数据库可以采用mysql、sql-server、oracle等。

Step-4

Web-Server和数据库的交互,这里我们用PHP语言

Step-5

前端网页展示,主要是美观,涉及到css、javascript等。会用到一些好看的图表库,如echarts、jscharts等。

系统架构

03PART

五步详述数据采集与简易能源管理系统的实现

Step1

如图片所示,这个阶段主要针对现场仪表和PLC的编程。

这里的仪表主要针对的是流量计、压力传感器、液位传感器、温湿度传感器等。

关于流量计之前有写过关于流量计的两篇文章,附上链接

数据采集与可视化-Siemensnbsp;Plc-流量计-瞬时流量的一种统计方法-学习笔记-1

数据采集与可视化-Siemensnbsp;Plc-流量计-瞬时流量的一种统计方法-学习笔记-2

关于温度的信号转换,可参考之前的一篇文章

传感器-温度传感器-FC通过取整指令,将对应的数值转换为整数

这里我们定义一下数据的存放标准

数据统一转换为整数型。数据存储在特定的DB块中,举例如下,我有台PLC,每台PLC和现场仪表相关的数据都存放于DB中。

数值读取与清零的两种方式

1-PLC周期性的给出清零指令,如定义在每天的23:59:59。获取系统时间,分别对时分秒进行比较。

2-上位机读取完数值后,直接将db.dbw0的数值写入0

Step2Step3

本文主要内容为步骤2和步骤3,计划实现方法:

1-C#通过sharp7.cs读写PLC,C#操作数据库

2-C#通过KepWare读写PLC,C#操作数据库

3-C#通过Libnodave.dll读写PLC,C#操作数据库

4-KepWare直接访问PLC

5-Java通过Snap7.dll访问PLC

以上方法中,其中方法-1、3、5是相似的。本文着重讲解方法1。

方法1在之前的文章中也有讲过:

数据采集与可视化-C#-Sharp7学习笔记-1

数据采集与可视化-C#~PLC-Sharp7学习笔记-2

数据采集与可视化-C#~PLC-Sharp7学习笔记-3

数据采集与可视化-C#~PLC-Sharp7学习笔记-4

数据采集-C#通过Sharp7读取西门子PLC-DBW并存入Oracle数据库-(1)

C#+Sharp7实现西门子数据块中字的读写操作-系列终结篇

方法2可参考之前的文章

数据采集与可视化-Win10安装破解版KepWareV4.5

C#KEPServerEX6s7-学习笔记系列1-服务器的连接

C#KEPServerEX6s7-学习笔记系列2-PLC的连接及读取

C#KEPServerEX6s7-学习笔记系列3-单个PLC的连接及读取

C#KEPServerEX6s7-学习笔记系列4-多个PLC的连接及读取

方法4目前还没有尝试成功

方法5,更多信息可在网站中

1
查看完整版本: 从零开始基于西门子PLC用C通过OPC