MES、SCADA下的数据采集—C#实现扫码器的串口通讯实例

[复制链接]
查看63237 | 回复0 | 2024-8-13 21:04:43 | 显示全部楼层 |阅读模式

前面我们介绍了西门子、罗克韦尔施耐德、达索等的MES/MOM平台:

最全解读西门子MES/MOM平台Opcenter,100多亿美金的数字化之路

体系解读罗克韦尔MES平台FTPC-跟我入门MES/MOM系列特别篇

Wonderware MES—施耐德MES/MOM平台解读

也介绍了很多MES相关的方案、数据集成等:

一份MES系统整体解决方案

企业IT系统集成之PLM、ERP、MES/MOM...

详解ERP系统与MES系统的数据传递
MES/MOM与WMS系统集成应用案例-系统接口、交互数据分析

今天来聊一聊MES项目中的一个简单数据采集案例~

00 工业通讯

01 项目简介

02 参数设置与介绍

03 C#编程串口通讯介绍

00 工业通讯

说到工业通讯,其实是个非常大的话题,我想大家肯定避免不了想到下面的话题~

各种各样的接口,协议:

最全整理工业通讯上的领域各种总线+协议+规范+接口—数据采集与控制

PROFINET、ETHERNET/IP等工业以太网:

技术解读PROFINET、Ethernet/IP等7种主流工业以太网

工业网络架构:

工业通讯网络层级全解读,解析工业网络的自动化金字塔

工业无线:

比较工业物联网中的几种主流无线技术

还有安全等:

工业控制系统安全入门与实践—从五层架构和安全标准说起

不论如何,在众多MES、SCADA项目中,数据采集都扮演着重要的角色,其中通讯更是数字化进程中迈不开的坎儿~

01 项目简介

在很多MES项目中,会有很多地方需要用到一维码,二维码或者是RFID,因此扫码器是必不可少的硬件,配合着扫码器的硬件,我们需要通过编程将扫码的数据采集上来,便于后续追溯和管理,对于现场而言~

数据采集相关

自动化设备数据采集项目中S7-1500和PC的时间同步

自动化设备数据采集与PLC联网方案实例-迈向工厂数字化的第一步

条形码、二维码和RFID三种数据采集方法的比较!

物流自动化的底层技术—信息流、数据采集与信息管理

从零开始基于西门子PLC用C#通过OPC编写一套简易车间能源信息系统(附代码)

C#通过OPC UA+MQTT将设备数据采集至云端-自动化工程师的数字化之路

下面我先来介绍下所使用的扫码器(固定式),环境如下:



接着看看测试环境用的是二维码,二维码目前已经深入到我们生活中的方方面面,但是对于其原理和起源,我想并不是所有人都清楚,推荐大家先看看

工业中的视觉识别 | 三分钟了解二维码的前世今生

一个简短的视频,却深入浅出的讲述了一维码和二维码的原理。                                      



本次采用的扫码器是DATALOGIC的CBX100,先配置扫码器的模式:连上调试软件





设置合适的曝光时间和增益,从而使扫码枪能清晰的识别二维码。

02 参数设置与介绍

下面重点介绍下如何设置串口通讯的参数(这些参数要和编程中设置的参数一致)





波特率,校验位,数据位,停止位是串口通讯的4个重要的参数。正确设置这几个参数是能正确通讯的前提~

波特率:波特率是一个衡量传输速度的参数。通俗的讲,波特率就是每秒传多少位。

数据位:衡量通讯中实际数据位的参数。当计算机发送一个信息包,实际的数据往往不会是8位的,标准的值是6、7和8位。如何设置取决于你想传送的信息。

停止位:是数据包的最后一位。典型的值为1,1.5和2位。由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。

奇偶校验位:在串口通信中一种简单的检错方式。有四种检错方式:偶、奇、高和低。当然没有校验位也是可以的。对于偶和奇校验的情况,串口会设置校验位(数据位后面的一位),用一个值确保传输的数据有偶个或者奇个逻辑高位。例如,如果数据是011110,那么对于偶校验,校验位为0,保证逻辑高的位数是偶数个。如果是奇校验,校验位为1,这样就有3个逻辑高位。高位和低位不是真正的检查数据,简单置位逻辑高或者逻辑低校验。这样使得接收设备能够知道一个位的状态,有机会判断是否有噪声干扰了通信或者是否传输和接收数据是否不同步。



03 C#编程串口通讯介绍

介绍完串口通讯的参数后和如何配置扫码枪后,就开始调试代码,本次采用C#,我们直接使用微软已经封装好的System.IO.Ports

       开发的界面:



把读到的数据写入到数据库中(本次采用Oracle):



在构造函数中实例化串口:



设置串口参数:



打开串口,绑定串口事件:



串口监听事件:



本次串口通讯就是这么多,有些乱,大家海涵,最近有点忙,下一次再和大家分享ModbusTCP,也是从硬件软件的角度给大家分享,项目上刚开发完了这一块,趁着还热乎给大家分享一波。

硬核专辑

工业热点 | 数据采集 | 应用与库(西门子、罗克韦尔、倍福等)

WinCC技术 | 工业网络 | MES技术相关| 工业巨头战略布局 | 工业通讯案例

仿真与虚拟调试 | 职业感悟、认知提升 | 自动化控制标准合集



IT融合OT:数据、网络与WMS、MES如何贯穿五层自动化金字塔?

2020-10-20



全球视野下的MES(深度报告):7大海外巨头,6家中国领军企业全梳理

2020-10-19



工业巨头罗克韦尔的软件全家桶,RA的数字化之旅

2020-10-14



MES、SCADA网络项目中的三个案例,详解路由器的各种组网方式

2020-10-07



2020工业软件行业深度研究报告:细数全球工业软件各细分领域巨头

2020-10-03



工业软件:一文讲透国内外MES/MOM市场格局,主流厂商及其优势行业

2020-09-19



工业网络的两层与三级-从PLM、MES到SCADA、PLC的连接

2020-09-15



工业互联网平台核心技术之一:数据集成与边缘处理

2020-09-12



智能制造体系中的工业互联网解决方案

2020-09-14



深度解析SCADA、物联网IOT和MES之间的联系与区别

2020-08-14




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则