C#样例程序:华为星闪技术与西门子PLC通信的应用探索
"三阶段"工程师之路
1、基础阶段:博途PLC的系统化与专项学习。
2、中级阶段:博途实例与C#基础学习视频,完成OT与IT融合化学习。
3、阶段:博途的标准化编程方法学习。
标准化方法之路!
一、星闪技术概述
星闪(NearLink)是一种新型短距离无线通信技术,旨在弥补传统蓝牙和Wi-Fi技术的不足。通过整合5G的关键技术,星闪实现了在传输速率、时延、距离、安全性和可靠性方面的全面提升。
对于自动化工程师来说,星闪技术的引入可能意味着在工业自动化和智能制造领域内的通信能力将得到显著增强。星闪的低时延特性能够支持实时控制系统的快速响应,而高数据传输速率则适合于传输大量传感器数据,这对于提高生产效率和系统监控的实时性至关重要。
星闪技术采用了分层的协议栈架构,其中包括基础应用层、传输与网络层、基础服务层和接入层。这种分层设计使得星闪能够灵活地适应不同的应用场景需求,从高速大带宽的工业环境到低功耗的消费电子产品都能得到良好的支持。星闪接入层,为特别。它提供了SLB(基础接入)和SLE(低功耗接入)两种无线通信接口,分别对应于高速大带宽(对标Wi-Fi)和低功耗(对标蓝牙)两种不同类型的网络场景需求。
星闪技术的安全性特征,如128位AES加密和双向认证机制,为数据安全提供了坚固的保障,这在连接密集的工业环境中尤其重要,能够有效防止数据泄露和未授权访问。
星闪技术不仅是一种通信技术的升级,更是向高效、安全、可靠的未来工业和消费电子通信环境迈进的关键一步。对于自动化工程师而言,了解和掌握星闪技术将成为提升系统性能和创新能力的重要资产。
请注意,这些信息是根据现有技术的发布资料进行的概括,具体参数可能因实际应用环境和设备而异。星闪作为新兴技术,其具体性能参数在实际应用中仍然在验证和完善中。
这次尝鲜测试的是华为海思Hi2821,是一款基于32位RISC-V架构的高性能微处理器芯片,核心频率可达64MHz,支持浮点运算。这款芯片特别适合需要快速处理和高计算精度的自动化及物联网(IoT)应用。它提供了多种外设接口,包括SPI、UART、I2C、PWM、GPIO、USB2.0、NFCTag、PDM、I2S/PCM、QDEC和KEYSCAN,非常适合连接各种传感器和外部设备,极大地提升了系统的灵活性和扩展性。
在无线技术方面,Hi2821支持新的BLE5.4和SLE1.0标准,使其能够在2.4GHz频段提供的BLE与SLE双模通信性能。芯片内置的RF模块包括功率放大器、低噪声放大器、TX/RX切换以及电源管理功能,支持1M/2M/4M三种带宽,高传输速率可达12Mbit/s,旨在提高能源效率和通信质量。安全性方面,Hi2821搭载了硬件安全引擎,支持AES和SM4加密标准及真随机数生成器(TRNG),为数据传输提供强化的安全保障。芯片内置了160KBSRAM和512KBFlash,可直接在Flash上运行程序,便于开发者实现复杂的应用程序。Hi2821未来支持的操作系统包括LiteOS和OpenHarmony,提供了灵活的开发和调试环境。这使得Hi2821在多种IoT应用场景中,如智能家居、可穿戴设备、医疗监测等领域,都能够提供强大的支持,帮助开发者构建高效、低功耗的智能系统。Hi2821是面向未来物联网设备开发的理想芯片,具备高集成度、多功能性和高安全性。
二、华为星闪技术与西门子PLC的应用
在之前的文章中,我们已共同探讨了工业系统中融入AI大模型、语音识别技术、文字转语音功能以及云服务器(基于云监控的B/S架构)的应用。如今,我们将目光转向另一前沿领域,聚焦星闪技术的探究。
西门子PLC1214利用CM1241模块(支持RS485/422通信)发送'I AMPLC'数据,随即这些数据通过MAX485芯片模组从RS485信号转换为TTL信号。转换后的TTL信号被传递至从站Hi2821模块,并通过星闪技术与主站Hi2821建立连接。一旦连接建立,主站Hi2821通过串口与电脑相连,电脑上运行的WPF(C#程序)负责读取串口信息并在用户界面进行展示。该程序也可以发送'IAMPC'数据回传至PLC,实现双向通信。这个整合流程不仅体现了星闪技术在工业自动化中的关键作用,还显示了它在尚未完全公开SDK的情况下如何支持数据的可靠传输和实时显示。
在这次的技术尝鲜探索中,我们遇到了一个特别的提醒:华为的海思Hi2821芯片展现了巨大潜力,但由于其软件开发套件(SDK)尚未向公众开放,我们目前只能通过AT指令来控制连接到西门子PLC1214的星闪模组。这意味着我们不能使用LiteOS和OpenHarmony等操作系统进行开发。使用AT指令的方式较为简单,但这也带来了一定的局限性——一旦出现bug,我们无法深入调查其根本原因。
我们来一步步实现,在西门子PLC1214实现利用CM1241模块(支持RS485/422通信)发送'I AMPLC'数据,及接收电脑上运行的WPF(C#程序) 发送'I AM PLC'数据回传至PLC,实现双向通信。
组态PLC,如下所示:
又因为手上只有CM1241(RS422/485)模块,需要使用MAX485芯片组转换成TTL信号。CM1241模块支持RS422/485通信协议,而RS422/485信号是差分信号,不同于TTL(晶体管-晶体管逻辑)信号,后者是单端信号且通常用于与微控制器等数字电路直接通信。MAX485是一种常用的芯片,它能将RS485差分信号转换成TTL信号,从而使得不具备RS485直接接口的设备(如某些微控制器)能够与RS485设备通信。
1、PLC程序编写
在编写PLC程序时,我们使用了简单直观的梯形图(LAD)编程语言,并特别使用了SEND_PTP与RCV_PTP这两种通讯指令。整体程序如下:
使用到通讯中的SEND_PTP与RCV_PTP:
使用AT指令设置从站Hi2821模块:设置MAC地址及进入从站模式
AT+SLEMAC? //查询MAC地址
AT+SLEMAC=abcdef000000 //设置MAC地址为abcdef000000(12位)
AT+SLEMODE=0 //进入从站模式
使用AT指令设置主站Hi2821模块:设置为主站模式并连接从机
AT+SLEMODE=1 //设置为主站模式
AT+SLESCAN //进入主站模式后,扫描附近从站
AT+SLECONNECT=abcdef000000 //连接扫描到的从站MAC地址
2、编写WPF(C#)程序接收和发送数据
初始化串口:
定义serialPort对象,配置为COM4端口,波特率115200,无奇偶校验,数据位8,停止位为1。
构造函数 MainWindow():
界面初始化时,调用OpenSerialPort()函数打开串口。
打开串口 OpenSerialPort():
尝试打开串口,设置一个事件处理程序SerialPort_DataReceived,该处理程序在收到串口数据时会被触发。
如果打开串口时发生异常,会捕获这个异常并显示错误消息。
数据接收事件 SerialPort_DataReceived():
当串口接收到数据时,读取数据并获取当前时间。
在WPF的UI线程中,将接收到的数据和时间添加到一个文本框(假设为SerialDataTextBox)中,以便在界面上显示。
文本框会自动滚动到新的消息处。
发送按钮点击事件 SendButton_Click():
当用户点击发送按钮时,从一个输入框(假设为InputTextBox)中读取要发送的数据。
如果输入框不为空且串口是开启状态,那么将数据通过串口发送出去。
发送后,清空输入框。
关闭窗口时的处理 OnClosed():
当用户关闭窗口时,如果串口对象不为空且串口是开启状态,则关闭串口,以确保资源被正确释放。
完整程序如下:
3、操作界面
三、操作视频
时长00:36
四、
星闪技术的发展得到了产业链的支持,出现了如Hi2821这样的专用处理器芯片,它们集成2.4GHz SoCBLE&SLE,具备高性能微处理器(MCU)、硬件安全引擎以及丰富的外设接口,支持星闪与蓝牙双模共存,兼容OpenHarmony等轻量级操作系统,为开发者提供了易于使用的开发工具、AT指令集、固件资源以及开发板等硬件平台,加速了星闪技术在各领域的商业化应用。星闪技术作为一项中国原生的、具有竞争力的近距离无线通信技术,通过技术创新和标准体系建设,打破了传统蓝牙和Wi-Fi在特定应用领域的一些局限性,为物联网、车联网、工业互联网等场景带来了更高性能、更安全、更具成本效益的无线连接解决方案。随着相关产品的不断推出和生态系统的持续完善,星闪技术有望在全球范围内产生深远影响,成为未来短距离无线通信领域的重要力量。