自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【上位机入门常见问题】SQLServer2019 安装指导

【新阁教育】0基础小白系统学习C#智能上位机,带你成为高价值上位机工程师加Q2398943126领取更多C#入门课程资料

2023-03-03 14:15:09 1247 1

原创 【上位机入门常见问题】Visual Studio 2022安装指导

【新阁教育】0基础小白系统学习C#智能上位机,带你成为高价值上位机工程师加Q2398943126领取更多C#入门课程资料

2023-03-02 14:12:46 1039

原创 如何巧妙使用7段码数码管?

关于7段数码管,最早接触应该是学习单片机的时候,它可以将数字或者字母以7段字符来呈现,所以有时候也叫7段LED数码管显示。这个提及一下项目应用,如果我们开发好项目,把程序放到其他电脑上使用,由于其他电脑没有安装7SEG的字体,效果肯定会不一样。也许你们也想到了,就是通过代码自动完成,思路就是检测字体是否存在,存在则继续,不存在则通过代码安装字体。使用7SEG字体,前提要安装这个字体,安装也很简单,双击下载的7SEG.ttf即可。一种方法就是提前手动安装好字体,然后再运行程序,但是也没有其他好的方法呢?

2022-12-19 15:24:30 1232 1

原创 PLC、运动控制卡、运动控制器,傻傻分不清

最近有不少做PLC开发的小伙伴,在一些咨询运动控制卡、运动控制器相关的问题,很多人不清楚它们之间有什么区别和联系,今天跟大家就PLC、运动控制卡、运动控制器区别及选型做个分享。

2022-12-09 17:32:24 4771

原创 S7-1200能不能仿真通信?

最近有一些小伙伴留言问:开发上位机的项目,PLC是西门子S7-1200,采用S7通信,不想一直带着PLC跑来跑去,能不能搭建一个S7-1200的仿真?

2022-10-08 17:39:36 4332 2

原创 上位机开发之三菱PLC通信

三菱MC协议是开发三菱系列PLC必须掌握的一种通信协议,其目的是让外部设备,可以通过串行通信模块C24或以太网接口模块E71,实现对可编程控制器CPU的数据访问。MC协议是Melsec协议的简称。

2022-09-20 16:33:11 5600

原创 C#实现Windows服务安装卸载开启停止

前面一篇文章,我们讲解了如何创建Windows服务,并说明了如何使用installutil.exe来实现服务的安装和卸载。基于C#实现Windows服务今天这篇文章,我们讲解一下如何通过C#来安装、卸载、启动、停止Windows服务。

2022-09-17 17:58:14 1320

原创 基于C#实现Windows服务

在实际应用过程中,有时候我们希望开发的程序,不需要界面,直接开机就可以长时间运行,这时候,我们可以考虑做成一个Windows服务。这篇文章跟大家介绍一下,如何基于C#实现Windows服务的创建、安装、启动、停止和卸载。Microsoft Windows 服务能够创建在它们自己的 Windows 会话中可长时间运行的可执行应用程序。这些服务可以在计算机启动时自动启动,可以暂停和重新启动而且不显示任何用户界面。

2022-09-14 14:27:27 5112 1

原创 上位机开发之三菱Q系列PLC通信实践

在上位机开发中,我们会经常使用西门子PLC,其实对于其他品牌的PLC,我们都会讲到,包括三菱、欧姆龙、基恩士、松下及国产台达、信捷等,之所以使用西门子PLC为例,一方面是因为学员当中使用西门子PLC居多,而且西门子的市场占有率也比较高,再者,我觉得做上位机开发,其实对PLC品牌并不太注重,你掌握了西门子PLC的上位机开发,其他品牌也都大同小异,只不过会存在一些规则和存储区的区别而已。(3)值得注意的是,当设置完成,并将程序下载到PLC后,一定要重启PLC!...

2022-08-12 17:43:33 3456

原创 上位机与MES对接的几种方式

在实际应用过程中,经常有学员问道上位机怎么与MES进行信息交互?今天跟大家介绍一下,上位机与MES对接的几种常用的方式。

2022-07-25 16:53:55 4029

原创 上位机开发——数据库系列问题一网打尽

前面已经给大家总结了一些关于数据库的问题,基本上大家遇到的数据库问题,都能从下面的文章中找到答案,希望大家可以收藏一下,遇到问题,可以一一对照去查找原因。数据库系列之特定实例错误数据库系列之sa账户登录失败数据库系列之常见语法错误数据库系列之App.config配置文件错误其实,大家在学习数据库的时候,可能还会遇到各种奇奇怪怪的问题,今天我们针对这些零散的问题,做一下具体的分析。希望可以为大家学习数据库铺平道路。错误提示:不支持关键字“sever”。《C#程序》的错误提示:【问题分析】:只要是在连接对象创建

2022-07-14 15:26:29 972

原创 再也不用担心窗体变形了

今天跟大家分享的这个问题,是很多人都曾遇到的,也一直有很多人在问。窗体或控件在编辑状态下,是正常的,但是一旦运行起来是变形了。如果大家遇到这种问题,可以先从以下两个方面进行检查:显示器的显示设置是不是100%窗体或控件和其所在的容器字体是否一致1、显示器的显示设置不是100%由于现在很多电脑或笔记本的分辨率都是高于1920 * 1080 的,如果设置100%,会导致字体或图标很小,所以厂家会在显示设置里推荐设置125%、150%,甚至200%显示。这样就会导致运行变形,如果希望按照推荐的百分比运行,又不希望

2022-06-24 16:55:46 497

原创 智能上位机框架

今年技术文章写的比较少,因为一直在忙于新课程的录制和研发,现在终于告一段落了。框架这个词,我相信大家都不陌生,C#框架有很多,主流的框架有Json.NET、NPOI、Log4Net、NLog、SuperWebSocket、SuperSocket、Quartz.NET等等,还包括ORM、图表制作、WebGis等等,使用过框架的小伙伴都知道,框架最大的好处在于快速、高效。但是很多时候,我们都处于一个框架使用者的角色,很少去真正地开发框架、设计框架,而且关于上位机开发的框架,市面上更是寥寥无几。我们既然学习上位机

2022-06-16 11:58:57 1861 3

原创 数据库之App.config配置文件错误

在连接数据库的过程中,如果大家使用 配置文件App.config 的方式获取连接字符串的话,很有可能会遇到一些问题,我们今天就针对这些问题做一下归纳总结,并给出解决方法。

2022-06-14 16:47:08 834

原创 MAUI + MVVM + SIEMENS 跨平台应用实战

很多PLC工程师也开始慢慢意识到,掌握一门编程语言,变得越来越重要。最近.NET圈子最火的一个话题,应该是微软跨平台 UI 框架 .NET MAUI 6 正式发布。.NET MAUI 6 正式发布,标志着我们在统一.NET 平台的多年旅程中的新里程碑。现在,您和超过 500 万其他 .NET 开发人员拥有面向 Android、iOS、macOS 、Windows和Linux(由Github开源社区支持) 的一流跨平台 UI 技术栈,以补充 .NET 工具链 (SDK) 和基础类库 (BC..

2022-05-31 15:25:18 846 3

原创 数据库之App.config配置文件错误

前言初学者做上位机开发,在连接数据库的过程中,如果大家使用 配置文件App.config 的方式获取连接字符串的话,很有可能会遇到一些问题,我们今天就针对这些问题做一下归纳总结,并给出解决方法。错误信息1“未将对象引用设置到对象的实例”。《C#程序》的错误提示:【问题分析】:打开App.config文件,检查name节点中的字符串和当前中括号中是是否一样,对比发现,不一样,多了一个S,请记住,C#读取节点使用的中括号中的名称,和配置文件节点配置的name必须一致!解决方案

2022-05-26 17:49:49 1312

原创 上位机开发——Modbus到底有多快

前言大家好!我是付工!前面写了一篇关于基于Modbus读取运动控制卡的文章,发现很多小伙伴对Modbus的实时性比较感兴趣,想知道上位机开发种Modbus通信能达到多快的速度。首先,我们要明确一点,Modbus本身只是一个应用层的协议规约,意思就是Modbus本身是没有速度一说的,当运行在传输层以太网或者串口介质上的时候,才会存在实时性的说法。那么至于Modbus通信速度到底是多少,本文以ModbusTCP为例,配合西门子200Smart PLC、西门子1200 PLC、西门子1500 PL

2022-05-23 17:48:33 3196 1

原创 上位机开发——我的类为什么使用不了了?

前言在调用类时,如果出现错误信息 “ 当前上下文中不存在名称*** ”,这时候该如何处理,我们来一起总结一下。错误情况1在同一项目中使用“TestClass2”这个类时出现错误。【分析】:这个错误比较明显,图中将“TestClass2”写在了 “TestClass1”中,类在使用中是不允许出现嵌套的,否则就是我们常说的“类中类”,必须杜绝这样的编程失误。解决方案只要将“TestClass2” 从“TestClass1” 中移出来即可。错误情况2在同一项目中

2022-05-19 10:58:26 216

原创 分享一个工业现场常用的运动控制案例

自动化行业,正在慢慢往软件行业靠近。很多PLC工程师也开始慢慢意识到,掌握一门编程语言,变得越来越重要。那么PLC工程师学会编程之后,会是一种什么样的体验?我觉得最直接的体验就是:原理性的东西懂得更多,技术栈更全面,可以自己独立完成项目评估、制图、选型、PLC程序开发调试,到上位机开发,甚至于更上层的WEB端、移动端。言归正传,本文主要是分享一个工业现场常用的运动控制案例,从硬件选型到程序设计,再从本地调试到上位机开发调试。这个案例算是一个比较简单的案例,但是可以有效地将PLC与上位.

2022-05-17 15:42:43 1497 2

原创 上位机开发——Modbus联合运动控制卡实时通信

前言最近有运动控制的学员问到这样的问题,能不能通过Modbus协议,实现运动控制卡的数据读取。经过测试,切实可行。这里采用的是正运动的ECI1408板卡,其他品牌板卡可能不支持,具体咨询供应商。MOdbus协议正运动控制器支持两个存储区,分别是0区和4区。 0区从地址10000开始与输入 IN 口对应。 0区从地址20000开始与输出 OUT 口对应。 4区从地址10000开始对应轴 DPOS 区间。 4区从地址11000开始对应轴 MPOS 区间。

2022-05-06 17:08:51 1545 1

原创 C#/NET上位机开发——SQL语句提交违法数据库约束的错误

最近小伙伴学习数据库真的是掉头发啊,错误一堆堆,总也解决不完,其实对于我们老鸟来说,如果认真总结一下,会发现错误就那么几种,掌握了你就是数据库老鸟,来吧一起看看都有啥。《C#程序》的错误提示:《SQLServer数据库的错误》【问题分析】:以上两种错误都是同一个原因,就是sql语句中“字段的个数”和实际“字段 值”(values里面的)不一样导致的,解决方法就是仔细检查,有多少个字段,然后看给的对应值的个数是不是也是一样的,以上错误就是values后面的字段值...

2022-04-25 17:34:14 1080

原创 一个简单的PLC运动控制项目

自动化行业,正在慢慢往软件行业靠近。很多PLC工程师也开始慢慢意识到,掌握一门编程语言,变得越来越重要。那么PLC工程师学会编程之后,会是一种什么样的体验?我觉得最直接的体验就是:原理性的东西懂得更多,技术栈更全面,可以自己独立完成项目评估、制图、选型、PLC程序开发调试,到上位机开发,甚至于更上层的WEB端、移动端。言归正传,本文主要是分享一个工业现场常用的运动控制案例,从硬件选型到程序设计,再从本地调试到上位机开发调试。这个案例算是一个比较简单的案例,但是可以有效地将PLC与上位.

2022-04-21 17:17:48 4565

原创 【文末彩蛋】国产PLC通信实例

大家好!最近很忙,更新慢了,大家见谅!本文主要针对台达DVP-ES3系列PLC,实现上位机与PLC之间的ModbusTCP通信。一、硬件说明DVP-ES3 系列为高阶应用可编程控制器, CPU 内置4 组高速计数器输入、4组轴输出(脉冲型)或支持8轴单脉冲输出;以及8 轴总线(CANopen)定位输出。提供多样性的网络通讯选择,提供用户强大的网络功能,透过便利的软件设置,快速建立各式网络装置链接。DVP-ES3系列PLC内置通信端口:RS-485 * 2、Ether.

2022-04-16 16:22:37 1342

原创 新阁上位机开发——这四个错误,90%的人都有遇到过

前言今天跟大家分享一下,上位机开发中关于SQL语句的四种常见的语法错误。常见错误1错误提示:“(”附近有语法错误。《C#程序》的错误提示:解决方案【问题分析】:只要是有SQL语句的地方,提示“附近有语法错误的”解决方法都是一个思路,那就是调试SQL语句!所谓调试SQL语句,就是运行程序,在错误出来后,不要停止程序,直接观察SqlCommand对象里面封装的sql语句具体是什么,比如我们观察:把鼠标放到sql上面,然后点击“放大镜”图标,选择“文本可视化工具”,打开窗口:

2022-04-12 17:59:12 1178

原创 串口通讯及SQLite数据库应用

随着工业智能自动化的不断推进,越来越多的电气工程师开始学习高级开发语言,自主开发上位机程序应用到自己的项目中。还有更多的人在门外徘徊,想入门,但是不知道怎么进入。关于学习方式,咱们前面已经说了很多了,这里就不再赘述了,今天我主要说说上位机开发中常用的串口通讯和SQLite数据库。串口通讯在上位机开发中,属于入门级别的,我们常用的RS232、RS485都是串口通讯。具体到项目中,有些传感器,还有常用的扫码枪等等,都是用串口通讯。SQLite数据库在使用中,不需要单独配置,是轻量级的数据库,不需要任何外

2022-04-08 15:00:32 875

原创 新阁上位机开发---数据库系统之sa账户登录失败

前言在学习上位机开发的时候,用户登录失败,是小伙伴学习SQLServer和C#连接数据库的时候经常难受的问题,如何快速解决这个问题呢?新阁教育的老师们早就给大家准备好了应对这个问题的几种方法,大家往下看:错误信息01无法打开登录所请求的数据库“****”。登录失败。用户“sa”登录失败。《C#程序》的错误提示:提醒:用红色边框标出来的,是告诉大家,这个是问题的重点,后面的包括用户“sa”登录失败,都是因为这个导致的。错误信息01分析既然打不开数据库,就说明实例连接没问题,只是

2022-04-02 16:24:35 4766

原创 新阁上位机开发--10年工程师的Modbus总结

前言大家好,我是新阁上位机开发付老师。我算了一下,今年是我跟Modbus相识的第10年,从最开始的简单应用到协议了解,从协议开发到协议讲解,这个陪伴了10年的协议,它一直没变,变的只是我对它的理解和认识。我一直认为Modbus协议的存在有它的历史意义,也就是说即使没有Modbus,也可能会出一个ABUS、DBUS之类的协议,因为控制器与控制器之间通信,一个标准协议,会大大提供开发效率。因此,现在国产的各种品牌PLC,比如台达、汇川、信捷等,这些PLC都是支持Modbus协议,也就是说

2022-03-29 15:16:55 801

原创 学习上位机开发,没有你想象中那么难

这两天有不少的同学,私聊我,说学习上位机开发好难。对于电气工程师来说,C# 上位机的编程逻辑和PLC是完全不一样的,大家要改变平时的编程习惯,还有思维方式,肯定是不适应的。首先学习上位机,你要有个好的编程习惯,一定要做规范化编程,不能说只把功能实现了,就完事了,因为以后你还要维护你的程序,规范化编程,有利于你的后期维护。其次,代码一定要多敲多练。写代码,是越写越熟练,你用的多了,原理清楚了,做项目的时候,就知道从哪里入手了。学习没有一蹴而就的,从简入繁,每天记住一个小小的知识点,坚持几个月,你就

2022-03-26 16:40:02 9989 4

原创 数据库系列之特定实例错误

前言初学上位机开发的同学,大家在学习数据库的时候,以上两个错误基本上是不可避免的,图1是使用SSMS登录时出现的错误,图2是通过C#代码连接数据库时出现的错误。今天就这个错误,跟大家做一些具体的分析,希望大家可以彻底解决这个问题。分析以上两个错误是完全一样的,是同一个问题导致的。其实错误提示已经清晰地说明了原因:网络相关或特定于实例的错误。网络相关的我们先不用管,先说“特定于实例的错误”,换句更加明白的话就是“数据库的实例名称有错误”。那数据的实例名是哪部分呢?很清楚上面数据

2022-03-25 11:47:24 1870

原创 新阁上位机开发---C#实现对象序列化的三种方式

前言最近有一些学员问到了一些关于序列化的问题,今天这篇文章,跟大家分享一下在C#上位机开发中,常用的三种序列化的方式。很多小伙伴一提到序列化,都会想到二进制序列化,但其实序列化并不仅仅只是二进制序列化,我们常说的对象序列化有三种方式,分别是二进制序列化、XML序列化及JSON序列化,这三种方式各有各自的优势和不足,实际应用中,大家自己根据实际情况,选择适合的。准备在实现之前,先要做一些准备工作,序列化其实是对象和字符串(文件)之间的互相转换,所以首先我们准备好一个实体类,很简单的Studen

2022-03-22 18:55:10 941

原创 新阁上位机开发---手把手教你开发圆盘仪表控件

前言大家好,我是新阁教育韩工,前几天在网上看到了一个比较好看的环形控件,今天我们来尝试使用GDI+的方式来绘制一下。创建项目上位机自定义控件库其实本质上就是一个类库,所以我们在创建项目时直接创建类库项目。在创建好的类库项目中添加“用户控件”。实现思路整个控件其实是由四个部分组成的。第一个部分为一个固定颜色的底圆,第二部分是一个渐变色的扇形,第三部分是一个颜色与窗体背景色相同的上圆,第四部分是显示百分比的文字。最后将这四个部分叠加起来就得到了我们最终想要得到的控件。

2022-03-16 17:18:51 1817

原创 VS2022安装教程和使用说明来了

我看很多上位机小伙伴已经开始迫不及待的安装VS2022了,虽然我也安装了VS2022,但是我依旧使用VS2019。因为我觉得适合我的才是最好的,并非是最新的,所以大家在使用的时候,根据实际需求选择开发工具,不要一味追求最新,要考虑是否符合你当下的开发。下面我把VS2022开发工具安装教程分享给大家,同时大家想去下载这个,可以在公众号中输入“VS2022”,我提供的是社区版本。如需其它版本,自行去到微软官方下载。下面我就将VS2022的安装过程和使用过程给喜欢的小伙伴分享一下,首先我们来看一下他的安装

2022-03-09 11:26:02 16696

原创 新阁上位机---comboBox控件的数据绑定方法

前言大家好,我是新阁教育韩工,这几天有小伙伴问我关于上位机开发中,comboBox控件如何绑定数据的问题,我们今天简单来看一下C#中几种不同的绑定方法。绑定List集合首先创建数据绑定方法,在方法中创建一个string类型的List集合。并将集合赋值给控件的DataSource(数据源)完成数据绑定。//数据绑定方法1,绑定list集合privatevoidDataBinding1(){List<string>list=newList<string&...

2022-02-24 11:43:51 4027

原创 新阁上位机软件开发---基于Log4Net实现日志信息存储至数据库

1、引言 在上位机开发中,日志记录是必不可少的,我们可以通过日志记录做日志分析及错误追踪。初学者会采用txt文本写入来实现日志保存,但是文本写入不是线程安全,当存在多个线程同时写入日志时,就会出现一些问题。Log4net库是.Net下一个非常优秀的开源日志记录组件,是一个帮助开发者将日志信息输出到各种目标(控制台、文件、数据库等)的工具。本节主要采用开源组件Log4Net来实现错误ERROR信息文本存储,并结合SQLite数据库,将日志INFO信息存储到数据库中,便于后续的查询。2、开发准...

2022-02-14 15:23:21 625 2

原创 上位机软件开发-----C#实现USB插拔检测

前言最近有学员咨询,如何实现串口设备的插拔检测。传统的方式是不断地通过SerialPort.GetPortNames方法获取所有串口,判断是否有变化。但是更合适的方式,应该是通过Windows消息来实现。代码#region检测USB插拔publicconstintWM_DEVICECHANGE=0x219;publicconstintDBT_DEVICEARRIVAL=0x8000;publiccons...

2022-02-12 16:49:43 1635

原创 委托的前世今生

-Begin-起因很多C#初学者,都遇到过这样的问题——线程间操作无效,从不是创建控件的线程访问它。今天就这个问题,展开分析。溯源先说下这个问题产生的根源。大家都知道,程序运行起来之后,首先会有一个主线程,主线程用于处理控件生成、界面渲染、事件响应、逻辑处理等操作,因此我们可以理解为窗体里的控件是属于主线程的。我们也知道多线程,如果我们想实现与主线程同时执行另一件事,一般会去使用多线程。因此多线程,从某种意义上来说,它和主线程都属于“线程”这个家族,他们的身份是“平等”的

2022-02-08 14:58:24 368

原创 手把手教你搭建一个OPCDA/UA服务器

-Begin-前言很多小伙伴在学习OPC的时候,不知道如何创建一个OPC服务器的环境,今天这篇文章跟大家分享一下,如何基于KEPServer结合Modbus快速搭建一个OPCDA/OPCUA的环境,便于后续学习OPC通信。Modbus从站首先搭建一个Modbus从站,这里需要用到两个软件,一个是VSPD(Virtual Serial Port Driver),一个是Modbus Slave软件。通过VSPD软件虚拟出一对串口,这里是COM19和COM20,切记不要和已有的物理串口冲突,尽

2022-01-25 14:45:18 13228

原创 这篇文章告诉你自定义特性能做什么?

前言各位小伙伴,大家周末愉快。最近这段时间比较忙,所以文章更新节奏有点慢,请见谅!今天跟大家分享的主题是基于自定义特性实现DataGridView全自动生成。实现过程这里是在上一篇文章《给你的属性加个说明》的基础上,对其做进一步应用。给你的属性加个说明首先创建一个窗体应用,在窗体里拖放一个DataGridView控件和一个生成数据的按钮,将DataGridView控件的启用添加、启用编辑、启用删除的勾选都去掉。(想了解更多的内容,欢迎加VX:xiketang777)后台编

2022-01-21 17:27:42 802

原创 给你的属性加个说明

-Begin-前言我们都知道,类是对象的抽象,主要包含属性和方法,属性是用来描述和反映对象特征的参数,方法是用来描述对象的行为,那如果我想对类、属性、方法做进一步的描述呢?这时候我们可以使用特性。自定义特性我们可以通过自定义特性,自由地实现对属性方法的描述。创建并使用自定义特性可以分为以下四个步骤:需要相关资料可以加VX:xiketang6661、声明自定义特性:创建一个类,取名为CustomAttribute,必须以Attribute结束,并继承System.Attribute

2022-01-19 11:23:53 831

原创 手把手教你搭建温湿度传感器项目

不少同学私信我这个项目怎么做,从今天开始用三天的时间,我重新讲一次对这个项目感兴趣的同学可以加VX:xiketang666

2022-01-18 16:08:48 437

C#.NET工控上位机编程基础课程.rar

0基础小编入门,专为PLC转行上位机人员量身定制!

2021-01-28

空空如也

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

TA关注的人

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