自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(155)
  • 资源 (1)
  • 收藏
  • 关注

原创 C#MQTT编程10--MQTT项目应用--工业数据上云

这个系列文章已经完成了9个内容,由浅入深地分析了MQTT协议的报文结构,并且通过一个有效的案例让伙伴们完全理解理论并应用到实际项目中,这节继续上马一个项目应用,作为本系列的结束,奉献给伙伴们,真是帅呆了,我也是醉了,特别是第9节内容,那绝对是项目的经典,将技术应用到完美。

2024-03-10 15:30:04 833

原创 C#上位机与欧姆龙PLC的通信13----【又爆肝】上位机应用开发(云端版)

随着物联网技术的快速发展,工业互联网应运而生。工业互联网云平台作为连接智能制造和智慧工厂的重要技术手段,为制造业提供了更高效、更安全、更便捷的生产模式。工业互联网是指将互联网和物联网技术应用于工业生产和制造过程中,实现设备、工厂、企业和供应链等各种资源的智能互联。而云平台是指一种提供虚拟化计算资源和服务的互联网基础设施。工业互联网云平台是将工业互联网与云计算相结合的平台,旨在为制造业提供全生命周期服务。工业互联网云平台在各个领域都有广泛的应用,其中包括工业制造、物流运输、能源与环保、医疗健康、智慧城市等。

2024-03-10 14:50:04 577

原创 WPF真入门教程31--WPF版房屋租售系统

项目后端采用.NET多层框架,并且采用了权限系统来实现不同角色拥有不同操作菜单,前端采用WPF技术,可以说是用到了wpf的很多技能知识点,数据库采用SQLSERVER2012,可以让你的WPF开发技术杠杠的上个级别。

2024-03-01 13:46:40 836

原创 WPF真入门教程30--顺风物流单据管理系统

到现在为止,真入门系列教程已完成了29刺由浅入深地讲解,当然不可能讲到了WPF的所有技能点,但读者看到了wpf的内部各种功能及之间的联系,在此基础上,提供一个完整有效的综合项目,以此为实战,并作为本教程的结束。

2024-03-01 11:06:36 1282 2

原创 WPF真入门教程29--MVVM常用框架之MvvmLight

在WPF中,有几个常用的MVVM(Model-View-ViewModel)开源框架,这些框架提供了方便的工具和模式来帮助开发人员实现MVVM架构。以下是几个常用的MVVM开源框架:1. Prism:Prism是一个由微软模式和实践团队开发的开源框架,它提供了一套用于开发可扩展、可测试和可维护的WPF应用程序的工具和指南。Prism提供了解耦视图、模型和视图模型的机制,以及用于导航、命令、事件聚合等常用功能。

2024-02-24 15:27:50 1397

原创 C#上位机与三菱PLC的通信11---开发自己的通讯工具软件(WPF版)

viewmodel是视图模型,wpf采用的是mvvm的渲染模式,即控件绑定对象的属性,属性发生更改时,驱动控件的数据显示,而控件动作是由命令command执行。CommonResource.xaml完整代码。PLCMemoryModel.cs代码。MainWindow.xaml完整代码。ViewModelBase.cs代码。MainViewModel.cs代码。RelayCommand.cs代码。

2024-02-23 12:16:06 1026

原创 C#上位机与三菱PLC的通信10---开发自己的通讯工具软件(Winform版)

上节2篇文章已经完成了通讯库的开发,可以看到封装的通讯库还是蛮厉害的,通讯库封装好后就是一个dll文件,那么可以在项目中就可以直接拿来应用,这节要做的就是做一个工具软件,形成自己专业的通讯工具,也是对通讯库的直接利用,本节要写的工具软件是一个winform程序,因为控制台程序是单调的,不方便操作,不直观。

2024-02-23 10:55:17 1153 2

原创 C#上位机与三菱PLC的通信09---开发自己的通讯库(A-3E版)

我们只要引用并调用相关的方法即可实现目的, 但写一个通讯库需要非凡的技术,需要考虑的东西很多,比如扩展性,通用性,等等之类的。通过封装通讯库达到更高的层次, 大师就是这样锻造出来的,接下来马上安排A-3E协议的封装,代码是基于上节的基础上添加。前面开发了自己的A-1E协议的通讯库,实现了数据的读写,对于封装的通讯库,其实是一个dll文件,请看上节的dll文件,有了这个文件,就可以在项目中直接引用。A3E.cs完整代码。

2024-02-21 21:31:59 766

原创 C#上位机与三菱PLC的通信08---开发自己的通讯库(A-1E版)

前面使用了第3方的通讯库实现了与三菱PLC的通讯,实现了数据的读写,对于通讯库,我们只要引用并调用相关的方法即可实现目的,为什么别人可以封装通讯库dll文件,自己能不能做到?当然可以,但写一个通讯库需要非凡的技术,需要考虑的东西很多,比如扩展性,通用性,等等之类的。通过封装通讯库达到更高的层次,想想,别人使用自己的东西,说明自己牛XXXX啊,大师就是这样锻造出来的,接下来马上安排,鸿鹄之志从小事做起,振兴工业自动化,匹夫有责。AreaCode.cs代码。Result.cs代码。

2024-02-21 17:04:23 1250

原创 C#上位机与三菱PLC的通信07--使用第3方通讯库读写数据

mcprotocol 是一个基于 Node.js 的三菱 PLC MC 协议通信库,具有以下特点:支持多种三菱 PLC MC 协议的设备,如 FX3U、Q03UDECPU、QJ71E71 等。支持多种功能码和数据类型,如读取线圈(M)、读取寄存器(D)、写入寄存器(D)、读取扩展寄存器(D*)、读取位寄存器(X/Y)、读取字寄存器(W)等。支持多种通信方式,如 TCP、UDP、串口等。代码结构清晰,易于扩展和二次开发。支持 Promise、async/await 等语法糖,提高开发效率。

2024-02-18 23:50:18 1918

原创 C#上位机与三菱PLC的通信06--MC协议之QnA-3E报文测试

三菱 PLC MC 协议是一种用于三菱 PLC 与上位机之间进行数据通信的协议,也称为 Mitsubishi Communication Protocol。该协议支持串口、以太网等多种通讯方式,可实现实时数据的采集和交换。三菱PLC的MC协议是一种数据通信协议,它用于在计算机和三菱PLC之间传输数据。MC协议是三菱公司独有的一种协议,主要用于控制三菱PLC。三菱MC协议目的是让外部设备实现与PLC的通信,也就数据的读取和写入。

2024-02-18 14:19:07 1101

原创 C#上位机与三菱PLC的通信05--MC协议之QnA-3E报文解析

注意2个问题:1、bit和word,bit就是一个位,二进制中的位bit,0或1算一个位,word叫字,一个字就16位,就是2个字节,一个字节是8位,2个字节就是16位,也就是16个bit,简单讲就是word占2个字节,另外0X是16进制的表示,而float占4个字节。2、小端处理进行数据转换的时候需要注意, 西门子PLC的S7是大端处理,MC协议是小端处理,比如X区的代码是0x58 0x20,发送报文时需要变成0x20 0x58。

2024-02-09 12:01:21 1869 1

原创 C#上位机与三菱PLC的通信04--MC协议之A-1E报文测试

到目前为止,还没有网上有哪个文章有我如此的报文分析,操作实例,一大批都是抄来抄去,没有截图,没有说明,没有实例,有卵用呀,仅以此文章献给最爱的粉丝,希望对各位大师有些启示。

2024-02-08 16:40:18 1445

原创 C#上位机与三菱PLC的通信03--MC协议之A-1E报文解析

可以看到读取数据发送12个字节,响应4个字节,各个字节的意义如下(0x表示16进制),注意响应并不一定是4个字节,如果读取长度不是一个,则响应肯定大于4个字节,具体看后面的实例操作,总之结构就是如下表示:这里我们介绍两个模拟器,所讲的模拟器就是一个三菱的MC服务器,也就是说是一台虚拟的PLC,如果没有模拟器,那就需要一台真实的PLC硬件,但是FX5U之类的PLC价格要好几K以上,屌丝者成本较大,承担不起,对于很多学习者,培训者,爱好者花大洋有些心疼,所以提供2个模拟器,这个模拟器就是一台真实的PLC设备。

2024-02-08 11:15:45 2038

原创 C#上位机与三菱PLC的通信02--MC协议介绍

PLC是在继电器控制路线基础上发展起来的,继电器控制线路有时间继电器、中间继电器等,而PLC内部也有类似的器件,由于这些器件以软件形似存在,故称为软元件。PLC程序由指令和软元件组成,指令的功能是发出命令,软元件是指令的执行对象,比如,SET为1指令,Y000是PLC的一种软元件(输出继电器),“SET Y000”就是命令PLC的输出继电器Y000的转台变为1。由此可见,编写PLC程序必须了解PLC的指令级软元件。软元件就是存储区软元件就是存储区软元件就是存储区。

2024-02-07 17:17:49 2701

原创 C#MQTT编程09--MQTT项目实战--数据实时采集

近年来物联网的发展如火如荼已经渗透到我们生活的方方面面。从智能家居到工业自动化从智慧城市到智慧农业物联网,正在以前所未有的速度改变着我们的生活。大家现在可能已经习惯了通过手机控制家里的灯光、空调和电视,这就是物联网在智能家居领域的应用,如果在10年前看到这种设备的应用肯定觉得很牛批,而现在只要是个设备都能上云这种家电设备的远程控制,已经成了大家习以为常的配置了。而在工业领域物联网技术可以帮助企业实现自动化生产、设备监控和预防性维护提高生产效率和产品质量。

2024-01-17 16:13:51 2050

原创 C#MQTT编程08--MQTT服务器和客户端(cmd版)

前面完成了winform版,wpf版,为什么要搞个cmd版,因为前面介绍了mqtt的报文结构,重点分析了【连接报文】,【订阅报文】,【发布报文】,这节就要就看看实际报文是怎么组装的,这也是之前详细每个报文的结构,含义的目的,使用mqttnet这个组件实现mqtt通信是直接应用,不涉及到底层报文的结构内容,用户是看不到报文内容的,这节的目的就是为加深理解而干的。这节不安装任何mqtt的组件,而是直接使用socket的原始方式通信。

2024-01-17 09:34:18 1876

原创 WPF真入门教程28--项目案例--MQTT服务器和客户端

这个案例还是布局加视图模型,样式应用,业务逻辑,该项目是一个mqtt服务器和客户端的通信工具,这里不去分析mqtt的通信原理,关注在于wpf技能的应用,能够掌握这个例子,离项目开发也差不多了,只是没有跟db打交道,本项目重点在于理解mvvm模式,开发环境依然是vs2022,.netframework 4.8,wpf应用程序。默认启动的效果最大化的效果,控件没有变形没有走样,说明wpf的技术还是不错的,界面没有变形,不象winform,控件会走样。

2024-01-16 15:25:00 1362

原创 C#MQTT编程07--MQTT服务器和客户端(wpf版)

上篇完成了winform版的mqtt服务器和客户端,实现了订阅和发布,效果666,长这样这节要做的wpf版,长这样,效果也是帅BBBB帅,wpf技术是cs程序软件的福音。wpf的基础知识和案例项目可以看我的另一个专栏系列文章,这里直接干搞,开发环境依然是vs2022,.netframework 4.8,mqttnet3.x。

2024-01-16 14:41:16 1429

原创 C#MQTT编程06--MQTT服务器和客户端(winform版)

介绍完基础理论部分,下面在Windows平台上搭建一个简单的MQTT应用,进行简单的应用,整体架构如下图所示;消息模型:运用MQTT协议,设备可以很方便地连接到物联网云服务,管理设备并处理数据,最后应用到各种业务场景,如下图所示前面介绍过,MQTT可以运行在几乎所有的平台,windows,linux什么的都可以,各种语言都有实现MQTT的组件,.net也好,Java也好,都有封装好的mqtt服务器和客户端组件或插件来实现,本系列是在.net平台下实现mqtt的服务器和客户端。

2024-01-15 23:18:59 2458 3

原创 C#MQTT编程05--发布报文

发布报文的格式比较单简。即然是发布报文那么主题和发布的内容是一定少了的。所以相对于别的报文来讲,发布报文对固定报头,可变报头,还有有效载荷都有需要这里只介绍Qos0和Qos1的回应报文介绍,Qos2的回应报文复杂得多,不去搞它。

2024-01-15 09:56:30 937

原创 C#MQTT编程04--订阅报文

第1个字节报文类型,固定值为8,从上面的14种报文类型看到是固定的8.注意一个问题,为什么是82,我来给你讲透彻,估计很多人搞不懂这里为什么是16进制的82,明明是表中所说的8?查报文类型中得到确实是8,换成二进制就是1000,用一个字节来表示,就是00101000,前面的0010是高位,1000是低,但在MQTT是用大端表示的,即要将原来的高位变低位,原来的低位变高位,所以00101000就要变成10000010(1000高低,0010低位),换成10进制就是130,用16进制表示就是0x82。

2024-01-14 14:45:00 1233

原创 C#MQTT编程03--连接报文

本节来讲连接报文(CONNECT)。可以说他是所有报文的基础,“所有报文的基础”这句话的意思就是说不管你做什么操作,订阅也好,发布也好,都必须先连接,你说对不对,电话都没有接通还谈什么爱情谈什么生意?俗话说,要致富先通路。所有的动作都必须在连接之上操作,MQTT是基于TCP/IP网络协议的,并且以字节流传输的。那这句话说明了2个意思:1)MQTT通信时客户和服务器都必须有IP地址2)通信是以字节流,在网络通信中IO流中按类型有字节流和字符流,字节流是以byte方式,并且是16进制的表现形式。

2024-01-14 10:52:10 983

原创 C#MQTT编程02--报文格式

在MQTT协议中,一个MQTT数据包由:固定头(Fixed header)、可变头(Variable header)、消息体(Payload)三部分构成。

2024-01-13 22:08:01 1151

原创 C#MQTT编程01--MQTT介绍

通信协议MQTT(Message Queuing Telemetry Transport)是一种轻量级的通信协议,被广泛应用于物联网和分布式系统中。它以其简单、可靠和高效的特性而备受推崇,成为连接设备和应用程序的首选协议。MQTT的重要性不言而喻,它为实时通信提供了可靠的解决方案,使得设备之间的数据交换和控制变得更加便捷。MQTT广泛应用于工业物联网、智能家居、各类智能制造或各类自动化场景等。

2024-01-13 16:06:47 1681 1

原创 WPF真入门教程27--项目案例--设备数据实时监测

今天要做的一个案例是这样的效果,它能实时监测车间设备有关数据,并以表格和图形显示在界面上,这个比上个案例要复杂些,颜值也高些,通过这个来巩固wpf的技能,用到了命令绑定,样式资源,表格数据,图形控件livechart。将前面25的内容熟悉起来,就可以自己动手做这个案例了。

2024-01-12 11:54:27 931

原创 C#上位机与欧姆龙PLC的通信12----【再爆肝】上位机应用开发(WPF版)

继上节完成winform版的应用后,今天再爆肝wpf版的,看看看。可以看到,wpf的确实还是漂亮很多,现在人都喜欢漂亮的,颜值高的,现在是看脸时代,作为软件来说,是交给用户使用的,UI自然是要讲究,可以看出,wpf比winform漂亮多了,因为wpf使用样式css来美化界面,虽然这只是抛砖引玉,但说明作为软件工程师,特别是应用软件开发者,颜值一定要有,才有吸引力。这个例子应用了表格控件datagrid和LiveCharts控件,前者呈现数据表格,后者图形展示数据。

2024-01-12 10:19:26 1545

原创 C#上位机与欧姆龙PLC的通信11----【爆肝了】上位机应用开发(Winform版)

这里经过与PLC电气硬件工程师沟通,明确了这3个区的寄存器代表的含义,具体哪些寄存器存放的是什么数据,需要与他们仔细沟通,并用excel记录下来,现在只是举例,说明现场有4个窑炉,每个窑炉有温度,水位,转速,转角,状态,分别是CIO区的BOOL,H区的SHORT,W区的FLOAT数据类型,这个关键,需要一个个数据地址要明确清晰,不出差错。修改下数据,将H100.0,100.1改为65,看看实时读取了没有,数据有变化了,界面有实时监测。对比下PLC的数据,一致的,成功的。稍等一下,自动读取数据。

2024-01-11 16:22:35 806

原创 WPF真入门教程26--项目案例--欧姆龙PLC通讯工具

通过这个案例,将前面25讲内容贯通起来了,能够掌握这个例子就说明入门了,真入门,真入门,难的地方是mvvm模型的意义,命令如何绑定实现的,最后精武英雄装B起来。

2024-01-09 11:08:25 1713

原创 C#上位机与欧姆龙PLC的通信10----开发专用的通讯工具软件(WPF版)

​上节开发了一个winform版的通讯测试工具,这节再搞个wpf版的,wpf是什么?请自行百度,也可以看前面的博客,WPF真入门教程,wpf的界面效果是比winform漂亮,因为wpf使用了web项目中的css样式来美化界面,在这个例子中用到wpf的控件,资源样式,命令绑定等,采用的是mvvm的渲染模式​

2024-01-05 16:05:45 1633 1

原创 C#上位机与三菱PLC的通信01--搭建仿真环境

三菱PLC是三菱电机生产的主力产品。它采用一类可编程的存储器,用于其内部存储程序,执行逻辑运算、顺序控制、定时、计数与算术操作等面向用户的指令,并通过数字或模拟式输入/输出控制各种类型的机械或生产过程。三菱PLC在中国市场常见的有以下型号: FR-FX1N FR-FX1S FR-FX2N FR-FX3U FR-FX5U FR-FX2NC FR-A FR-Q)。三菱FX系列PLC:特点是小型化、一体式结构,可控制IO点数相对少,三菱FX系列PLC适合简单小型的应用环境,经济又实惠,一块fx就能组建控制回路。

2024-01-03 16:28:47 1933

原创 C#上位机与欧姆龙PLC的通信09----开发专用的通讯工具软件(Winform版)

上节文章已经完成了通讯库的开发,可以看到库还是蛮厉害的,在项目中就可以直接拿来应用,这节要做的就是做一个工具软件,形成自己专业的通讯工具,也是对通讯库的直接利用,本节要写的工具软件是一个winform程序,因为控制台程序是单调的,不方便操作,不直观。

2023-12-29 14:49:52 942

原创 C#上位机与欧姆龙PLC的通信08----开发自己的通讯库读写数据

这当中,06是重点的重点,需要非常熟悉才能自己写通讯库,封装自己的库需要掌握socket通讯,串口通讯,同步异步,集合数组,字节序列等技能点,这是走向武林高手的必经之路,这样才能强大自己,丰满的肌肉需要一步步啃。

2023-12-29 12:18:59 1934

原创 C#上位机与欧姆龙PLC的通信07----使用第3方通讯库读写数据

FINS (factory interface network service)通信协议是欧姆龙公司开发的用于工业自动化控制网络的指令/响应系统。运用FINS指令可实现各种网络间的无缝通信,通过编程发送FINS指令,上位机或PLC就能够读写另一个PLC数据区的内容,甚至控制其运行状态,从而简化了用户程序。FINS协议支持工业以太网,这就为OMRONPLC与上位机以太网通信的实现提供了途径。在上节内容。

2023-12-28 15:09:52 2364

原创 C#上位机与欧姆龙PLC的通信06---- HostLink协议(FINS版)

对于上位机开发来说,欧姆龙PLC支持的主要的协议有Hostlink协议,FinsTcp/Udp协议,EtherNetIP协议,本项目使用Hostlink协议。Hostlink协议是欧姆龙PLC与上位机链接的公开协议。上位机通过发送Hostlink命令,可以对PLC进行I/O读写、可以对PLC进行I/O读写、改变操作模式、强制置位/复位等操作。由于是公开协议,即便是非欧姆龙的上位设备(软件),都可以通过该协议和欧姆龙PLC实现通信链接,Hostlink通讯协议有两种模式:C-mode和FINS。

2023-12-28 12:44:19 1944 6

原创 C#上位机与欧姆龙PLC的通信05---- HostLink协议(C-Mode版)

欧姆龙PLC与上位机连接时一般采用的是Hoslink协议,它是一种简易经济的通讯方式,比较适合一台上位机和一台PLC或者多台PLC进行通讯。上位机可对PLC进行程序传送和读写等操作。HOSTLINK系统允许一台上位机通过上位机链接命令向HOSTLINK系统的PLC发送命令,PLC处理来自上位机的每条指令,并把结果传回上位机。

2023-12-21 15:56:53 2516

原创 C#上位机与欧姆龙PLC的通信04---- 欧姆龙plc的存储区

AR:特殊辅助继电器区;HR:保持继电器区;IO:CIO区,用作控制I/O点的数据,也可以用作内部处理和存储数据的工作位;LR:链接继电器区TR,暂时存储继电器区;DM:动态数据存储器区;EM:扩展数据存储区;CNT:计数器区;TIM:定时器区;IR:变址寄存器;DR:数据寄存器。欧姆龙采用通道概念存储数据,所存储数据的单元称为通道(CH),也叫字。每个存储单元都有一个地址,就叫做首地址,简称通道号,用3位数字表示。

2023-12-21 14:10:41 1725

原创 C#上位机与欧姆龙PLC的通信03----创建项目工程

这是一款CP1H-X40DR-A的PLC,呆会后面创建工程的时候需要与这个类型的PLC类型一致,否则程序下载不到PLC上。

2023-12-20 15:46:10 573

原创 C#上位机与欧姆龙PLC的通信02----搭建仿真环境

在没有硬件的情况下,创建仿真环境非常必要,买硬件需要花大几K的大洋,这是不好的,对于学习培训者来说,有仿真环境就特别漂亮,现在CX-ONE已经集成了欧姆龙的编程软件,能够实现仿真PLC及编程,对小伙伴来说真是帅呆了,本项目采用CX-ONE的4.6版本。

2023-12-15 15:34:27 635

原创 C#上位机与欧姆龙PLC的通信01----项目背景

欧姆龙PLC是工控领域市场率较高的品牌之一,有低端CP/CH系列,中端CJ系列,高端NX/NJ系列。对于上位机开发来说,主要的协议有Hostlink协议、FinsTCP/UDP协议、EtherNetIP协议,今天主要跟大家分享一下,在没有真实硬件的条件下,如何通过软件来搭建仿真环境, 也可以进行协议测试,特别是软件开发工程师需要仿真环境,不可能去买真家伙。

2023-12-15 14:29:03 3001 3

WinForm中嵌入外部exe程序

WinForm中嵌入外部exe程序

2023-07-11

基于C#的串口扫描枪通信实战

基于C#的串口扫描枪通信实战

2023-05-30

微信小程序快速开发讲义,详细介绍小程序各个组件,接口并实战项目

小程序的项目结构,框架,组件的使用,包括自定义组件,api接口的调用,并且实际开发了一个完整的项目,涉及前后端开发各种技能细节,技巧。

2023-04-29

2020年下半年软件设计师真题答案及解析完整版

2020年下半年软件设计师真题答案及解析完整版,还有免费的视频讲解,全强大了。播放地址: https://www.bilibili.com/medialist/play/687267960?from=space&business=space_series&business_id=2813177&desc=1&spm_id_from=333.999.0.0

2022-12-09

easycode代码生成工具

easycode代码生成工具,与动软等代码生成器都是同类型的,轻松简单解决代码问题。

2013-08-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除